Nodejs 有没有能够直接 append 数据的 Excel 库
Nodejs 有没有能够直接 append 数据的 Excel 库
用 electron 做一个桌面工具
目前找到的 excel 库都是必须先把数据存到一个 excel 的对象里,然后再通过 fs 来生成一个 Excel 文件,
但如果数据量大的话会造成内存不足的问题,客户端卡死
4 回复
或者说有没有其他办法来解决内存不足的问题,目前想到的是数据量大的话,限定一个值,超过的话就先把数据生成 excel 文件
可以根据 Excel 的组成结构 append excel sheet 的 xml 文件,当然要放弃 excel 里面的 sharedStrings.xml 文件,之前有使用 C#写过一个 https://github.com/Itoktsnhc/BufferExcelWriter
csv 也能用 excel 打开
在Node.js环境中,确实存在能够直接append(追加)数据的Excel库。其中,xlsx
和exceljs
是两个较为常用的库,它们均提供了丰富的功能来操作Excel文件,包括读取、写入和追加数据。
以下是一个使用exceljs
库在Node.js中追加数据的示例代码:
const ExcelJS = require('exceljs');
async function appendDataToExcel(filePath, sheetName, data) {
try {
const workbook = await ExcelJS.Workbook.xlsx.readFile(filePath);
const worksheet = workbook.getWorksheet(sheetName) || workbook.addWorksheet(sheetName);
// 假设data是一个二维数组,每行代表要追加的一行数据
worksheet.addRows(data);
await workbook.xlsx.writeFile(filePath);
console.log('数据已成功追加到Excel文件中');
} catch (error) {
console.error('追加数据时出错:', error);
}
}
// 示例调用
const filePath = 'path/to/your/excel/file.xlsx';
const sheetName = 'Sheet1';
const data = [
['新数据1', '新数据2'],
['新数据3', '新数据4']
];
appendDataToExcel(filePath, sheetName, data);
这段代码首先读取一个Excel文件,然后获取指定的工作表或创建一个新工作表,接着将新数据作为行追加到工作表中,最后保存文件。使用exceljs
库可以方便地实现Excel文件的读取、写入和数据追加等操作。