您现在的位置是:首页 > 前端 > 前端开发 JavaScript
Nodejs获取网络数据并生成Excel表格_node.js
博主
添加时间:2017-05-11 23:50:30
【JavaScript】
热度:473人已围观
首先,先安装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表格
以上就是本文的全部内容,希望对大家的学习有所帮助。
-
用JS判断浏览器类型的代码
一般的浏览器类型都可以通过js来判断出来,当然,少数例外(例如:360浏览器,它会隐藏自己的外壳,原因我就不解释,明白人都懂的)。今天给大家分享的是一个通过原生js写的判断浏览器类型的小例子。 原理大致如下:每一个浏览器的UA不同,例如火狐浏览器的UA是Firefox,IE浏览器的UA是MSIE,Chrome浏览器的UA是Chrome,搜狗浏览器的UA是SE,遨游浏览器的UA是Maxthon,然后通过UA就可以判断出来。代码也很容易看懂,大家请看:你现在的类型是(可以换个浏览器打开这个页面试试效果):Safari浏览器
-
JavaScript跨域的问题父子页面之间跨域通信的方法
由于同源策略的限制,JavaScript跨域的问题,一直是一个比较棘手的问题,为了解决页面之间的跨域通信,大家煞费苦心,研究了各种跨域方案 ...
-
JavaScript继承学习笔记【新手必看】_javascript技巧
下面小编就为大家带来一篇JavaScript继承学习笔记。小编觉得挺不错的,现在分享给大家,也给大家做个参考 ...
-
JavaScript根据CSS的Media Queries来判断浏览设备的方法_javascript技巧
这篇文章主要介绍了JavaScript根据CSS的MediaQueries来判断浏览设备的方法,主要思路是通过CSSMediaQueries改变一个类的某个属性值(例如z-index),然后用JavaScript读取判断,需要的朋友可以参考下 ...
-
原生javascript实现分享到朋友圈功能 支持ios和android_javascript技巧
本文主要介绍网上一个牛人写的js可以实现在UC浏览器和QQ浏览器中调用浏览器内置的分享组件进行分享。 ...
文章评论
标签云 更多
-
PHP(35)
MySQL(0)
Linux(1)
前端(0)
SEO优化(0)
随笔(9)
PHP基础(1)
PHP类库(5)
PHP实例(56)
PHP函数(518)
PHP高级(0)
PHP与数据库(0)
PHP进阶(0)
PHP应用(0)
PHP安全(0)
PHP框架专栏(0)
PHP开放平台(0)
PHP面试题(62)
SEO专栏(569)
基础教程(120)
环境(154)
语法(15)
变量(13)
字符串(15)
运算符(6)
流程控制(13)
数组(188)
表单(4)
开发经验(120)
日期(31)
引用(11)
文件处理(39)
文件上传(21)
Cookie&Session(107)
E-mail(1)
点击排行
站长推荐
打赏本站
- 如果你觉得本站很棒,可以通过扫码支付打赏哦!
- 微信扫码:你说多少就多少~
- 支付宝扫码:你说多少就多少~