Nodejs 有没有能够直接 append 数据的 Excel 库

发布于 1周前 作者 nodeper 来自 nodejs/Nestjs

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库。其中,xlsxexceljs是两个较为常用的库,它们均提供了丰富的功能来操作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文件的读取、写入和数据追加等操作。

回到顶部