使用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 xlsxconst 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工作流吧!