在 JavaScript (Node.js) 中处理 Excel:库与代码示例

面向初学者的在线Python训练器

轻松学习Python,无需理论负担。在浏览器中直接解决带自动检查的实践任务,无需安装任何东西。

开始课程

在 JavaScript (Node.js) 中处理 Excel:库概览与代码示例



尽管 PythonLib 专注于 Python 语言,但在 Node.js 环境中也经常需要处理 Excel 电子表格。JavaScript(尤其是在服务器端)被广泛用于报表自动化、从 CRM 系统导入数据以及生成价目表。在本文中,我们将介绍三个用于在 Node.js 中处理 Excel 的主要库、它们的功能,并提供实用的代码示例。



为什么要在 Node.js 中处理 Excel?

Node.js 是处理大量数据的微服务和脚本的理想选择。Excel 库可以实现以下功能:

  • 读取现有的 .xlsx 和 .xls 文件。
  • 从头创建新的表格。
  • 格式化单元格(颜色、字体、边框)。
  • 处理公式、样式和合并单元格。
  • 将数据导出为 CSV。


Node.js 中处理 Excel 的三大库



1. ExcelJS — 功能最全面

ExcelJS 是一个功能强大的库,完全支持 xlsx 格式。它支持流式处理,这对于大文件至关重要。支持样式、条件格式、图表和工作表保护。

安装:

npm install exceljs


示例 1:读取现有文件

const ExcelJS = require('exceljs');

async function readExcel(filePath) { const workbook = new ExcelJS.Workbook(); await workbook.xlsx.readFile(filePath); const worksheet = workbook.getWorksheet(1); // 第一个工作表 worksheet.eachRow((row, rowNumber) => { console.log(`行 ${rowNumber}: ${row.values.join(', ')}`); });}

readExcel('data.xlsx');


示例 2:创建带格式的文件

const ExcelJS = require('exceljs');

async function createStyledExcel() { const workbook = new ExcelJS.Workbook(); const sheet = workbook.addWorksheet('报表'); // 标题:粗体并带填充色 const headerRow = sheet.getRow(1); headerRow.values = ['姓名', '年龄', '城市']; headerRow.font = { bold: true, size: 12 }; headerRow.fill = { type: 'pattern', pattern: 'solid', fgColor: { argb: 'FFFF00' } // 黄色背景 }; // 数据 sheet.addRow(['安娜', 28, '莫斯科']); sheet.addRow(['伊万', 35, '圣彼得堡']); // 列宽 sheet.getColumn(1).width = 15; sheet.getColumn(2).width = 10; await workbook.xlsx.writeFile('output.xlsx'); console.log('文件已创建!');}

createStyledExcel();


2. xlsx (SheetJS) — 轻量且快速

xlsx 库(也称为 SheetJS)是执行简单操作的“主力军”。它不支持高级格式化,但在读取/写入数据方面表现出色。支持 xlsx、xls、csv、ods 格式。

安装:

npm install xlsx


示例 3:读取并转换为 JSON

const XLSX = require('xlsx');

function readToJSON(filePath) { const workbook = XLSX.readFile(filePath); const sheetName = workbook.SheetNames[0]; const sheet = workbook.Sheets[sheetName]; // 将工作表转换为对象数组 const data = XLSX.utils.sheet_to_json(sheet); console.log(data);}

readToJSON('data.xlsx');


示例 4:写入数据数组

const XLSX = require('xlsx');

function writeFromArray() { const data = [ { Name: '奥尔加', Age: 30, City: '喀山' }, { Name: '彼得', Age: 42, City: '叶卡捷琳堡' } ]; const worksheet = XLSX.utils.json_to_sheet(data); const workbook = XLSX.utils.book_new(); XLSX.utils

推荐