使用JavaScript操作Excel:SheetJS全面指南

概述

在现代Web开发中,Excel文件的处理是常见需求。借助JavaScript,开发者可以在浏览器或Node.js环境中高效操作Excel。SheetJS(即xlsx库)是最流行的开源解决方案之一,支持多种格式(如xlsx、xls、csv)。本文将从安装开始,逐步讲解其核心API和实际应用。

安装与导入

在浏览器中

<script src="https://cdn.sheetjs.com/xlsx-0.20.0/package/dist/xlsx.full.min.js"></script>

在Node.js中

npm install xlsx
const XLSX = require('xlsx');

创建Excel文件

创建一个包含数据的工作簿并导出:

const workbook = XLSX.utils.book_new();
const data = [['姓名', '年龄'], ['Alice', 30], ['Bob', 25]];
const worksheet = XLSX.utils.aoa_to_sheet(data);
XLSX.utils.book_append_sheet(workbook, worksheet, 'Sheet1');
XLSX.writeFile(workbook, 'example.xlsx');

读取Excel文件

读取现有文件并获取数据:

const workbook = XLSX.readFile('data.xlsx');
const sheetName = workbook.SheetNames[0];
const worksheet = workbook.Sheets[sheetName];
const jsonData = XLSX.utils.sheet_to_json(worksheet);
console.log(jsonData);

样式和格式化

SheetJS支持单元格样式设置,例如合并单元格、设置字体颜色:

const ws = XLSX.utils.aoa_to_sheet([['Head', 'Data'], ['Value', 123]]);
ws['!merges'] = [{ s: {r:0, c:0}, e: {r:0, c:1} }]; // 合并A1到B1
ws['A1'].s = { font: { bold: true, color: { rgb: "FF0000" } } };

高级功能

  • 流式处理大文件:使用XLSX.stream逐行读取。
  • 公式支持:单元格中可以写入公式,如{ t: 'n', f: 'SUM(A1:A10)' }
  • 自定义表格:通过!rows!cols设置行高列宽。

总结

SheetJS以其轻量、跨平台和强大的功能成为JavaScript操作Excel的首选。无论是简单的数据导出还是复杂的报表生成,它都能胜任。结合其他工具(如lodash、moment)可以进一步提升效率。现在开始,用JavaScript解放你的Excel工作流吧!