node excel采集数据

前言

个人写过无数的脚本,但是一直没有整理,后续整理脚本。

需求:

生成一堆激活码。

业务:
需要拿到一个token,
然后调用某个api获取激活码。

正文

思路:
1.http请求 axios

2.excel 操作使用 node-xlsx

代码如下:

const axios = require("axios").default;
const xlsx = require("node-xlsx");
var fs = require("fs");
axios.post("url", {
    //你的数据
}).then(function (response) {
    var sToken = response.data.sKCLLToken;
    //表格式
    let xlsxObj = [
        {
            name: 'firstSheet',
            data: [
            ]
        },
    ];
    (async function (sToken) {
        var data = [];
        var finished=true;
        for (var i = 0; i < 100; i++) {
            await axios.post("url",
                //你的数据
            ).then(function (response1) {
                if (response1.data.GenericMsg.bIsSuccess == true || response1.data.GenericMsg.bIsSuccess == 'true') {
                    data.push([response1.data.GenericMsg.sSuccessValue]);
                }
            }).catch(function (error) {
                //分情况
                //1.如果该错误不影响数据采集就放过,单纯打印,后做分析优化
                console.log(error);
                //2.如果错误影响数据采集就return
                if(error)
                {
                   i=100;
                   finished=false;
                }
            })
        }
        if(finished)
        {
            xlsxObj[0].data = data;
            fs.writeFileSync('hello.xlsx', xlsx.build(xlsxObj), "binary");
        }
    })(sToken);
}).catch(function (error) {
  console.error(error);
})

上述脚本并不难,需要的是查看 axios、node-xlsx文档,如何处理按照业务来,里面也有我的一些业务标注,值得注意的是axio并不支持非常高的高并发。

猜你喜欢

转载自www.cnblogs.com/aoximin/p/13364431.html