首页 > 编程 > JavaScript > 正文

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

2019-11-20 10:07:57
字体:
来源:转载
供稿:网友

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表格

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

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表