Nodejs获取网络数据并生成Excel表格

Nodejs的模版中有很多关于Excel表格的,这里我简单介绍一下我使用过的一个模块的使用。

首先,先安装Excel的模块:

npm install node-xlsx

然后,在代码中引入模块:

var xlsx = require('node-xlsx');

最后,获取数据并写入Excel:

var fs = require('fs');
var xlsx = require('node-xlsx');

var ajax = require('./ajax.js');
start();
function start() {
 ajax.ajax({
  url: "http://yuntuapi.amap.com/datamanage/data/list",
  type: "GET",
  data: {
   tableid: "XXX",//53eacbe4e4b0693fbf5fd13b
   key: "XXX"
  },
  success: function (data) {
   var myDatas = [];
   var datas = (JSON.parse(data)).datas;
   var count = 0;
   for (var index in datas) {
    var account = datas[index];
    var colum = [];
    var names;
    if (index == 0) {
     names = [];
    }
    for (var index2 in account) {
     if (index == 0)
      names.push(index2);
     var value = account[index2];
     if (value == null) {
      value = "";
     }
     colum.push(value);
//     console.log(account);
    }
    if (index == 0) {
     myDatas.push(names);
    }
    myDatas.push(colum);

    if (index == datas.length - 1) {
     writeXls(myDatas);
    }
   }
   console.log(myDatas.length);
  }
 });
}
function writeXls(datas) {
 var buffer = xlsx.build({worksheets: [
  {"name": "Group", "data": datas}
 ]});
 fs.writeFileSync("Group.csv", buffer, 'binary');
}
function parseXls() {
 var obj = xlsx.parse('myFile.xlsx');
 console.log(obj);
}

Ajax 部分的代码:

var https = require("https");
var http = require("http");
var Url = require("url");
var querystring = require('querystring');

// 默认值
var defaultSetting = {
 // 如果返回false可以取消本次请求
 beforeSend: function (req) {
 },
 complete: function (req) {
 },
 data: '', // Object, String
 dataType: 'JSON',
 error: function () {
 },
 headers: {}, // {k:v, ...}
 statusCode: {},
 success: function (data) {
 },
 timeout: 10,
 type: 'GET', // GET, POST
 url: "www.baidu.com"
};

/**
 *
 */
function ajax(settings) {
 // ajaxlbs.js(settings)
 if (typeof settings === "object") {
  // 处理默认值继承
  // todo ...
  for (key in defaultSetting) {
   if (settings[key] == null) {
    settings[key] = defaultSetting[key];
   }
  }
 }

 var params = Url.parse(settings.url, true);
 // params 解析出来的参数如下
 // {
 // "protocol":"http:",
 // "slashes":true,
 // "host":"localhost:3000",
 // "port":"3000",
 // "hostname":"localhost",
 // "href":"http://localhost:3000/?d=1",
 // "search":"?d=1",
 // "query":{"d":"1"},
 // "pathname":"/",
 // "path":"/?d=1"
 // }

 var options = {
  host: params.hostname,
  port: params.port || 80,
  path: params.path,
  method: settings.type
 };

 if (settings.data != null) {
  options.path += "?"
  for (var key in settings.data) {
   options.path = options.path + "&" + key + "=" + settings.data[key];
  }
  console.log(options.path);
 }

 var httpUnity = http;
 if (params.protocol == "https:") {
  options.port = 443;
  var httpUnity = https;
 }

 var req = httpUnity.request(options,function (res) {
  var data = '';
  res.on('data',function (chunk) {
   data += chunk;
  }).on('end', function () {
    if (settings.dataType === "json") {
     try {
      data = JSON.parse(data);
     } catch (e) {
      data = null;
     }
    }
    settings.success(data);
    settings.complete(req);
   });
 }).on('error', function (e) {
   settings.error(e);
  });

// if (typeof settings.beforeSend === "function") {
//  if (!settings.beforeSend(req)) {
//   settings.complete(req);
//   req.end();
//   return false;
//  }
// }

 if (settings.type === "POST") {
  var dataStr = querystring.stringify(settings.data);
  req.setHeader("Content-Length", dataStr.length);
  req.write(dataStr);
 }

 req.setTimeout(settings.timeout);
 req.end();
}

exports.ajax = ajax;

生成的Excel内容:

源码下载:Nodejs获取网络数据并生成Excel表格

以上就是本文的全部内容,希望对大家的学习有所帮助。

(0)

相关推荐

  • nodejs导出excel的方法

    本文实例讲述了nodejs导出excel的方法.分享给大家供大家参考.具体如下: nodejs 对查询数据生成excel并下载,采用方式先生成本excel文件,然后再下载:通过比较采用excel-export插件代码如下: excel.js代码: var extend = require("extend"); var fs = require("fs"); var excelExport = require('excel-export'); var guid=req

  • Node.js实现Excel转JSON

    一直在做一个关于网上选课的系统,选用了时下比较流行的node.js.今天在想怎么把学生或者老师的信息导入进去,涉及数量比较多一点,我手边又正好有一部分excel的表格.就想把excel转成json然后倒入到mongodb中去. 搜了下网上的资料,有不少.大部分都是C#或python的,要吗自己编译,要吗各种缺库运行不了.google了一下发现居然node里面是有这个module的.网址是https://www.npmjs.com/package/xls-to-json.. 步骤的话大概记录下吧:

  • Node.js利用js-xlsx处理Excel文件的方法详解

    简介 本文介绍用 Node.js 中的 js-xlsx 库来处理 Excel 文件. js-xlsx 库是目前 Github 上 star 数量最多的处理 Excel 的库,功能强大,但上手难度稍大.文档有些乱,不适合快速上手. 本文对 js-xlsx 库进行一定的总结,并提供几个实用的例子供读者测试,学习,交流. 安装 $ npm install xlsx 一些概念 在使用这个库之前,先介绍库中的一些概念. workbook 对象,指的是整份 Excel 文档.我们在使用 js-xlsx 读取

  • Nodejs获取网络数据并生成Excel表格

    Nodejs的模版中有很多关于Excel表格的,这里我简单介绍一下我使用过的一个模块的使用. 首先,先安装Excel的模块: npm install node-xlsx 然后,在代码中引入模块: var xlsx = require('node-xlsx'); 最后,获取数据并写入Excel: var fs = require('fs'); var xlsx = require('node-xlsx'); var ajax = require('./ajax.js'); start(); fun

  • asp.net中Table生成Excel表格的方法

    本文实例讲述了asp.net中Table生成Excel表格的方法.分享给大家供大家参考. 具体实现方法如下: 复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/19

  • HttpURLConnection和okHttp两种获取网络数据的实现方法

    废话少说,直接上代码.简单易懂. xml如下: <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id

  • python如何获取网络数据

    Retrieving Data over HTTP Python 内置了 sockets 可以实现与网络连接并通过 Python 提取数据的功能. socket 是可以提供双向连接的,我们可以对同一个 socket 进行读写操作.比方说,A 对 socket 写入信息,并且将其发送给 socket 连接另一端 B:那么 B 读取 socket 的内容就可以得到 A 的信息.但是这样会有一个问题,比如说, A端并没有发送任何信息,而 B 端一直在尝试读取 socket 的内容,那么 A 端和 B

  • Asp.Net数据输出到EXCEL表格中

    一.定义文档类型.字符编码 Response.Clear(); Response.Buffer= true; Response.Charset="utf-8"; //下面这行很重要, attachment 参数表示作为附件下载,您可以改成 online在线打开 //filename=FileFlow.xls 指定输出文件的名称,注意其扩展名和指定文件类型相符,可以为:.doc .xls .txt .htm Response.AppendHeader("Content-Disp

  • c# 将Datatable数据导出到Excel表格中

    话不多说,请看代码: public FileResult GetExcelFile() { if (Session["beginDate"] != null) { string bdate = Session["beginDate"].ToString(); DateTime ld = Convert.ToDateTime(Session["lastDate"].ToString()); DateTime ldate = ld.AddDays(1

  • RXjava网络获取图片数据的方法

    本文实例为大家分享了RXjava网络获取图片数据的具体代码,供大家参考,具体内容如下 RXjava // An highlighted block image = findViewById(R.id.tu); Observable.create(new ObservableOnSubscribe<Bitmap>() { @Override public void subscribe(ObservableEmitter<Bitmap> e) throws Exception { e.

  • Java对Excel表格的上传和下载处理方法

    Excel表格文件的上传和下载,java中涉及到文件肯定会有io流的知识. 而excel文件就要涉及到poi技术,而excel的版本包括:2003-2007和2010两个版本, 即excel的后缀名为:xls和xlsx. 这里我是按照正规的项目流程做的案例,所以可能会比网上的一些Demo复杂一些.不过文件的上传和下载基本都是一套固定的流程,只是每个人的实现方式不太相同. 数据库我用的是MySql. 下面是我的项目目录: 按照正常的项目做了分层处理,文件上传的业务我放到了service处理,而文件

  • Python实现将数据库一键导出为Excel表格的实例

    数据库数据导出为excel表格,也可以说是一个很常用的功能了.毕竟不是任何人都懂数据库操作语句的. 下面先来看看完成的效果吧. 数据源 导出结果 依赖 由于是Python实现的,所以需要有Python环境的支持 Python2.7.11 我的Python环境是2.7.11.虽然你用的可能是3.5版本,但是思想是一致的. xlwt pip install xlwt MySQLdb pip install MySQLdb 如果上述方式不成功的话,可以到sourceforge官网上去下载windows

  • android客户端从服务器端获取json数据并解析的实现代码

    首先客户端从服务器端获取json数据 1.利用HttpUrlConnection 复制代码 代码如下: /**      * 从指定的URL中获取数组      * @param urlPath      * @return      * @throws Exception      */     public static String readParse(String urlPath) throws Exception {                  ByteArrayOutputSt

随机推荐