打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

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

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

首先,先安装Excel的模块:

npm install node-xlsx
  • 1

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

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

最后,获取数据并写入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);}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58

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;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114

生成的Excel内容:

代码下载地址:http://download.csdn.net/detail/qxs965266509/8896431

如有转载请著名来自http://blog.csdn.net/qxs965266509

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
认识HTML5的WebSocket
纯Java网站开发改造为nodejs混合编程
推荐四款nodejs解析Excel-xlsx文件的开源库 − 生活的美 (cpury.com)
求助:有一个url链接的音频文件,直接打开是直接播放,现在我需要写一个接口,提供下载该wav文件,怎么做?
WebSocket实战 | 新浪UED
什么是socket?什么是websocket?两者有什么区别?
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服