Node.js Nodejs中JSON到Excel的转换

Node.js Nodejs中JSON到Excel的转换,node.js,excel,Node.js,Excel,我正在尝试将大量json数据转换为excel,并尝试了几个模块 下面是我的发现,如果有人使用更好的节点模块来处理更多的数据,请让我知道,以便我可以探索 json2xls 长度为100000的JSON数组花费了402574ms 一旦我超过200000,它就会失败,并出现此错误致命错误:CALL_AND_RETRY_2分配失败-处理内存不足 节点xls 长度为100000的JSON数组花费了444578ms 我在windows 7系统中使用8GB RAM、Intel Core i7、CPU@2.10

我正在尝试将大量json数据转换为excel,并尝试了几个模块 下面是我的发现,如果有人使用更好的节点模块来处理更多的数据,请让我知道,以便我可以探索

json2xls

长度为
100000
的JSON数组花费了
402574ms
一旦我超过200000,它就会失败,并出现此错误
致命错误:CALL_AND_RETRY_2分配失败-处理内存不足

节点xls

长度为
100000
的JSON数组花费了
444578ms


我在windows 7系统中使用8GB RAM、Intel Core i7、CPU@2.10Ghz-2.70Ghz尝试了这一点。首先将数据推送到一个带有所需列的临时数组中,然后将其转换为xls,我以以下方式完成:

// use the below package to convert json to xls
var json2xls = require('json2xls');

json.forEach(function(instance, indexx,record){
        var tempArry = {
            'ColoumnName1' : record[indexx].columnNameVlaue,
            'ColoumnName2' : record[indexx].columnNameVlaue,
            'ColoumnName3' : record[indexx].columnNameVlaue,
            'ColoumnName4' : record[indexx].columnNameVlaue
        }
        jsonArray.push(tempArry);
    });
//this code is for sorting  xls with required value
    jsonArray.sort(function(a, b) {
        return parseFloat(b.ColoumnName4) - parseFloat(a.ColoumnName4);
    });
    var xls = json2xls(jsonArray);

    fs.writeFileSync('yourXLName.xlsx', xls, 'binary');

不要尝试将所有数据添加到excel文件中,请使用要保存的文件中的特定列。

如果是nodejs项目,请执行此操作

const xlsx = require("xlsx")//npm install xlsx
const fs = require("fs")//npm install fs
var rawFile = fs.readFileSync("./datas.json")//dir of your json file as param
var raw = JSON.parse(rawFile)
var files  = []
for (each in raw){
    files.push(raw[each])
    }  
   var obj = files.map((e) =>{
        return e
       })

   var newWB = xlsx.book_new()

   var newWS = xlsx.utils.json_to_sheet(obj)

   xlsx.utils.book_append_sheet(newWB,newWS,"name")//workbook name as param

   xlsx.writeFile(newWB,"Sample-Sales-Data.xlsx")//file name as param

到目前为止,我已经试过了,效果很好。我试过写
1048576
,花了
2分钟
试试这个!你能告诉我你导出了多少数据吗?正如我所说,我们总共有大约300万条记录。我不知道如何处理300万条记录。xlsx.book_new不是一个函数