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

时间:2021-05-26

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: "plete(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表格

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

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章