如何在 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
我正在尝试从 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