ExcelJS for JavaScript (Node.js):创建与解析 Excel 文件的完整指南
1. 什么是 ExcelJS?为什么需要它?
ExcelJS 是一个功能强大且灵活的 JavaScript 库,专门用于处理 Excel 格式的电子表格(XLSX、XLSM、CSV 等)。它既可以在 Node.js 环境中运行,也可以在浏览器中使用(通过 Webpack 或 Browserify 等模块打包工具)。ExcelJS 让开发者能够以编程方式创建、读取、修改和解析 Excel 文件,而无需安装 Microsoft Excel 应用程序。
为什么需要 ExcelJS?在现代 Web 开发和业务流程自动化中,Excel 仍然是数据交换最流行的格式之一。报表、数据库导出、财务文档、价格表、统计数据——这些经常需要导出为 Excel 文件。ExcelJS 库提供了完整的工具集来解决这些任务:从创建简单的数据表格,到包含合并单元格、样式、公式、图表和条件格式的复杂报表。此外,它还能解析(读取)现有的 Excel 文件,从而实现从表格中自动导入数据。
ExcelJS 相比同类库(例如 SheetJS 的 xlsx)的核心优势:
- 样式支持:颜色、字体、边框、对齐、填充。
- 公式处理:读取和写入公式。
- 条件格式:根据单元格值改变外观。
- 图表:创建图形和图表。
- 图片:在工作表中插入图片。
- 流式处理:处理大文件时无需将整个文件加载到内存。
- 活跃维护:库定期更新,拥有庞大的社区支持。
2. 安装 ExcelJS
在 Node.js 项目中安装 ExcelJS,只需使用 npm 包管理器。在项目根目录打开终端,执行以下命令:
npm install exceljs
安装完成后,您可以在代码中导入该库:
const ExcelJS = require('exceljs');
如果您使用 ES 模块(现代 import/export 语法),请确保 package.json 中设置了 "type": "module",或使用 .mjs 文件扩展名:
import ExcelJS from 'exceljs';
3. 快速上手——最小工作示例
让我们创建一个简单的 Excel 文件,包含一个表格并保存到磁盘。这个示例展示了基本步骤:创建工作簿、添加工作表、写入数据并保存。
const ExcelJS = require('exceljs');
async function createSimpleExcel() {
// 1. 创建一个新的工作簿
const workbook = new ExcelJS.Workbook();
// 2. 添加一个名为"我的数据"的工作表
const worksheet = workbook.addWorksheet('我的数据');
// 3. 定义列(表头)
worksheet.columns = [
{ header: 'ID', key: 'id', width: 10 },
{ header: '姓名', key: 'name', width: 30 },
{ header: '年龄', key: 'age', width: 10 },
{ header: '城市', key: 'city', width: 20 }
];
// 4. 添加数据行
worksheet.addRow({ id: 1, name: '张三', age: 28, city: '北京' });
worksheet.addRow({ id: 2, name: '李四', age: 35, city: '上海' });
worksheet.addRow({ id: 3, name: '王五', age: 22, city: '深圳' });
// 5. 将工作簿保存到文件
await workbook.xlsx.writeFile('output.xlsx');
console.log('文件 output.xlsx 已成功创建!');