首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Nodejs中JSON到Excel的转换

Nodejs中JSON到Excel的转换
EN

Stack Overflow用户
提问于 2015-08-27 05:37:02
回答 3查看 26.6K关注 0票数 5

我正在尝试将大量的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系统上尝试过

EN

回答 3

Stack Overflow用户

发布于 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文件中,请使用要保存的文件中的特定列。

票数 6
EN

Stack Overflow用户

发布于 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
票数 1
EN

Stack Overflow用户

发布于 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')

构建缓冲区有助于处理大量数据。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32237121

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档