如何在 JavaScript 中创建 250MB 到 750MB 的 xlsx 文件?

How to create 250MB to 750 MBs xlsx file in JavaScript?

我正在尝试从 json 创建 XLSX 文件,但是当我尝试此代码时:

const convertJsonToExcel = () => {
    

    //var objeto=JSON.parse(JSON.stringify(jsonData))
    console.log(typeof(bigJson))

    const workSheet = XLSX.utils.json_to_sheet(bigJson['titulo']);
    const workBook = XLSX.utils.book_new();

    XLSX.utils.book_append_sheet(workBook, workSheet, "students")
    // Generate buffer
    XLSX.write(workBook, { bookType: 'xlsx', type: "buffer" })

    // Binary string
    XLSX.write(workBook, { bookType: "xlsx", type: "binary" })

    XLSX.writeFile(workBook, "studentsData.xlsx")
}

我得到:FATAL ERROR: Reached heap limit Allocation failed - JavaScript heap out of memory

此 json 文件大小为 132MB,但我会保留 250MB 以内的文件。我寻找 ExcelJS 库,但它也有一些问题:https://github.com/exceljs/exceljs/issues/709

什么是好的策略?

编辑:

const convertJsonToExcel = () => {

var arr=bigJson['titulo']

// arr2=arr.slice(arr.length/2, arr.length-1)
// arr=arr.slice(0, arr.length/2)
// arr3=arr.slice(0, 1)

console.log(typeof(bigJson))

const workSheet = XLSX.utils.json_to_sheet(arr);

//XLSX.utils.sheet_add_json(workSheet,arr2,{origin: -1});

const workBook = XLSX.utils.book_new();
XLSX.utils.book_append_sheet(workBook, workSheet, "students")
XLSX.writeFile(workBook, "studentsData.xlsx")
}

我试图从 500MB 的 json 创建一个 xlsx 文件,但它只是一直工作而没有响应。这适用于 250MB 的文件。

我尝试将 json 文件的注释部分分成两块,但没有再次收到响应

您是否尝试过 运行 您的带有参数的脚本来增加您的最大堆大小?您可能会达到节点的堆限制。

node --max_old_space_size=4096 app.js

参考:https://nodejs.org/api/cli.html#--max-old-space-sizesize-in-megabytes