我正在尝试将大量的json数据转换成excel,并尝试了以下几个模块是我的发现,如果有人使用更好的节点模块来处理更多的数据,请让我知道,以便我可以探索。
json2xls
具有100000
长度的JSON数组采用402574ms
一旦超过200000
,就会失败,并显示以下错误FATAL ERROR: CALL_AND_RETRY_2 Allocation failed - process out of memory
节点-xls
具有100000
长度的JSON数组采用了444578ms
我在8 8GB内存,英特尔酷睿i7,2.10 CPU 2.70 CPU处理器的Windows7系统上尝试过
发布于 2015-10-05 19:50:14
首先将你的数据推送到一个需要列的临时数组中,然后将它转换成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文件中,请使用要保存的文件中的特定列。
发布于 2019-12-22 23:54:21
如果它是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
发布于 2021-10-28 15:59:57
在Ratul Das的答案中,下面一行有一个拼写错误:
var newWB = xlsx.book_new()
代码应为:
var newWB = xslx.utils.book_new()
下面的代码片段是我用来从名为imageList的JSON对象数组生成Excel电子表格的代码:
const workSheet = XLSX.utils.json_to_sheet(imageList);
const workBook = XLSX.utils.book_new();
XLSX.utils.book_append_sheet(workBook, workSheet, "Product Image Catalog");
// Generate buffer
XLSX.write(workBook, {bookType: 'xlsx', type: 'buffer'})
// Binary String
XLSX.write(workBook, {bookType: 'xlsx', type: 'binary'})
XLSX.writeFile(workBook, 'image-catalog.xlsx')
构建缓冲区有助于处理大量数据。
https://stackoverflow.com/questions/32237121
复制相似问题