答案:前端可通过SheetJS库实现Excel文件的解析与生成。1. 使用FileReader读取上传文件,结合XLSX.read解析为工作簿,再用sheet_to_json将工作表转为JSON数据;2. 导出时通过json_to_sheet创建工作表,book_new生成工作簿,writeFile触发下载;3. 注意大文件用Web Worker避免阻塞,处理日期类型需parse_date_code转换,中文字段保持结构一致。

处理Excel文件在前端JavaScript中越来越常见,尤其是在数据导入导出场景中。通过合适的库,我们可以轻松实现Excel文件的解析与生成,无需依赖后端。以下是主流方案和实用操作方法。
常用库介绍:SheetJS (xlsx.js)
目前最流行的JavaScript库是SheetJS(也叫xlsx),支持读写多种电子表格格式(XLSX、XLS、CSV等),兼容浏览器和Node.js环境。
安装方式:
npm install xlsx或通过CDN引入:
立即学习“Java免费学习笔记(深入)”;
解析Excel文件
从用户上传的文件中读取数据,通常使用FileReader配合SheetJS。
示例代码:
const input = document.getElementById('file-input');input.addEventListener('change', (e) => {
const file = e.target.files[0];
const reader = new FileReader();
reader.onload = (event) => {
const data = event.target.result;
const workbook = XLSX.read(data, { type: 'array' });
const sheetName = workbook.SheetNames[0];
const worksheet = workbook.Sheets[sheetName];
const jsonData = XLSX.utils.sheet_to_json(worksheet);
console.log(jsonData); // 输出为数组对象
};
reader.readAsArrayBuffer(file);
});
关键点:
- type: 'array' 适用于ArrayBuffer输入
- sheet_to_json 自动将行转为对象,首行为列名
- 可指定选项如 { header: 1 } 强制以数字索引返回
生成Excel文件
将JSON数据导出为可下载的Excel文件。
示例代码:
function exportToExcel(data, filename) {const worksheet = XLSX.utils.json_to_sheet(data);
const workbook = XLSX.utils.book_new();
XLSX.utils.book_append_sheet(workbook, worksheet, 'Sheet1');
XLSX.writeFile(workbook, filename);
}
// 使用
const exportData = [
{ 姓名: '张三', 年龄: 25, 部门: '技术' },
{ 姓名: '李四', 年龄: 30, 部门: '销售' }
];
exportToExcel(exportData, '员工信息.xlsx');
说明:
- json_to_sheet 将数组对象转为工作表
- book_new 创建新工作簿
- book_append_sheet 添加工作表
- writeFile 触发浏览器下载
注意事项与优化建议
实际使用中需注意以下几点:
- 大文件解析可能阻塞UI,考虑用Web Worker异步处理
- 中文字段名需确保JSON结构一致,避免错位
- 日期类型在Excel中为序列值,需用 XLSX.SSF.parse_date_code 转换
- 支持样式和公式,但配置较复杂,简单场景建议只处理纯数据
基本上就这些。掌握SheetJS的核心API后,前端处理Excel变得非常直接。解析和生成都不再是难题。










