ExcelJS:轻松实现Excel文件的读取、操作与写入

06-02 1068阅读

在前端开发中,操作 Excel 文件是一个常见的需求,尤其是在生成报告、数据导入导出等场景中。ExcelJS 是一个非常强大的 Node.js 库,可以帮助我们在 JavaScript 中轻松处理 Excel 文件。无论是读取、修改,还是生成新的 Excel 文件,ExcelJS 都能提供高效且灵活的支持。

本文将介绍如何使用 ExcelJS 实现 Excel 文件的读取、操作和写入,帮助你在项目中更好地处理 Excel 文件。

一、ExcelJS 安装与配置

首先,我们需要在项目中安装 ExcelJS。可以通过 npm 来安装:

npm install exceljs

安装完成后,我们就可以开始在 Node.js 环境中使用 ExcelJS 进行 Excel 文件的操作了。

二、读取 Excel 文件

通过 ExcelJS,我们可以轻松读取 Excel 文件中的数据,包括读取 Excel 中的工作表、行、列以及单元格的内容。接下来,我们将展示如何读取一个 Excel 文件并获取其中的内容。

代码示例:读取 Excel 文件

const ExcelJS = require('exceljs');
async function readExcel() {
  const workbook = new ExcelJS.Workbook();
  await workbook.xlsx.readFile('example.xlsx'); // 读取 Excel 文件
  
  const worksheet = workbook.getWorksheet(1); // 获取第一个工作表
  worksheet.eachRow((row, rowNumber) => {
    console.log(`Row ${rowNumber}:`, row.values); // 打印每一行的数据
  });
}
readExcel();
解释:
  • workbook.xlsx.readFile('example.xlsx'):读取指定路径的 Excel 文件。
  • workbook.getWorksheet(1):获取第一个工作表,可以根据需要调整索引,选择不同的工作表。
  • worksheet.eachRow:遍历工作表的每一行,并打印出每一行的值。

    结果示例:

    假设 Excel 文件内容如下:

    NameAgeCity
    Alice24New York
    Bob30London

    执行上述代码后,输出结果将是:

    Row 1: [ , 'Name', 'Age', 'City' ]
    Row 2: [ , 'Alice', 24, 'New York' ]
    Row 3: [ , 'Bob', 30, 'London' ]
    

    三、修改 Excel 文件

    我们还可以修改 Excel 文件的内容,比如更新某个单元格的数据或者插入新的行。接下来,我们将演示如何修改 Excel 文件中的单元格内容。

    代码示例:修改 Excel 文件

    const ExcelJS = require('exceljs');
    async function modifyExcel() {
      const workbook = new ExcelJS.Workbook();
      await workbook.xlsx.readFile('example.xlsx'); // 读取 Excel 文件
      
      const worksheet = workbook.getWorksheet(1); // 获取第一个工作表
      // 修改某一行的某一单元格
      const row = worksheet.getRow(2); // 获取第二行
      row.getCell(2).value = 25; // 将第二列(年龄)修改为 25
      row.commit(); // 提交修改
      // 修改完成后保存文件
      await workbook.xlsx.writeFile('modified_example.xlsx');
      console.log('Excel 文件已修改并保存');
    }
    modifyExcel();
    
    解释:
    • worksheet.getRow(2):获取第二行。
    • row.getCell(2).value = 25:修改第二行第二列的单元格的值为 25。
    • row.commit():提交修改。
    • workbook.xlsx.writeFile('modified_example.xlsx'):保存修改后的文件到指定路径。

      执行后,Excel 文件中的内容将更新为:

      NameAgeCity
      Alice25New York
      Bob30London

      四、写入新的 Excel 文件

      除了读取和修改现有的 Excel 文件外,我们还可以使用 ExcelJS 创建一个全新的 Excel 文件,并将数据写入到新的工作表中。

      代码示例:写入新的 Excel 文件

      const ExcelJS = require('exceljs');
      async function createExcel() {
        const workbook = new ExcelJS.Workbook(); // 创建新的工作簿
        const worksheet = workbook.addWorksheet('Sheet 1'); // 创建新的工作表
        // 设置表头
        worksheet.columns = [
          { header: 'Name', key: 'name', width: 20 },
          { header: 'Age', key: 'age', width: 10 },
          { header: 'City', key: 'city', width: 20 }
        ];
        // 添加数据
        worksheet.addRow({ name: 'Alice', age: 24, city: 'New York' });
        worksheet.addRow({ name: 'Bob', age: 30, city: 'London' });
        // 写入 Excel 文件
        await workbook.xlsx.writeFile('new_example.xlsx');
        console.log('新的 Excel 文件已创建');
      }
      createExcel();
      
      解释:
      • workbook.addWorksheet('Sheet 1'):创建一个新的工作表,并命名为 Sheet 1。
      • worksheet.columns:设置工作表的表头,并指定每列的宽度。
      • worksheet.addRow():向工作表中添加一行数据。
      • workbook.xlsx.writeFile('new_example.xlsx'):将内容保存到新的 Excel 文件中。

        结果示例:

        创建的 Excel 文件内容将是:

        NameAgeCity
        Alice24New York
        Bob30London

        五、合并单元格与设置样式

        ExcelJS 还支持合并单元格、设置单元格样式等高级功能。

        代码示例:合并单元格与设置样式

        const ExcelJS = require('exceljs');
        async function styleExcel() {
          const workbook = new ExcelJS.Workbook();
          const worksheet = workbook.addWorksheet('Sheet 1');
          // 设置表头
          worksheet.columns = [
            { header: 'Name', key: 'name', width: 20 },
            { header: 'Age', key: 'age', width: 10 },
            { header: 'City', key: 'city', width: 20 }
          ];
          // 添加数据
          worksheet.addRow({ name: 'Alice', age: 24, city: 'New York' });
          worksheet.addRow({ name: 'Bob', age: 30, city: 'London' });
          // 合并单元格
          worksheet.mergeCells('A1:C1'); // 合并A1到C1的单元格
          const cell = worksheet.getCell('A1');
          cell.value = 'User Information'; // 合并后的单元格内容
          cell.alignment = { horizontal: 'center', vertical: 'middle' }; // 设置内容居中
          cell.font = { bold: true, size: 14 }; // 设置字体加粗,大小为14
          // 写入文件
          await workbook.xlsx.writeFile('styled_example.xlsx');
          console.log('包含样式的 Excel 文件已创建');
        }
        styleExcel();
        
        解释:
        • worksheet.mergeCells('A1:C1'):合并 A1 到 C1 的单元格。
        • cell.alignment:设置单元格内容的对齐方式。
        • cell.font:设置单元格字体的样式。

          六、总结

          通过本文的学习,你已经掌握了如何使用 ExcelJS 来实现 Excel 文件的读取、修改、创建以及样式设置等功能。无论是处理数据导入导出,还是生成动态报告,ExcelJS 都是一个强大的工具。

          本文总结:

          • 安装并配置 ExcelJS
          • 读取、修改 Excel 文件
          • 创建新的 Excel 文件
          • 设置单元格样式与合并单元格

            希望你能在实际项目中高效地使用 ExcelJS,轻松应对各种 Excel 文件处理需求!

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们。

相关阅读

目录[+]

取消
微信二维码
微信二维码
支付宝二维码