JavaScript无法直接读写本地Excel文件,但可通过SheetJS(适合解析与轻量生成)和exceljs(适合高样式导出与模板填充)等库在前端或Node.js后端实现Excel操作。
JavaScript 本身不能直接读写本地 Excel 文件(如 .xlsx、.xls),因为浏览器出于安全限制,无法随意访问文件系统。但通过合适的库和前端+后端配合的方式,可以高效完成 Excel 的生成、解析、修改等操作。
这些库不依赖服务器,适合在用户浏览器中解析上传的 Excel 文件,或导出数据为 Excel:
xlsx)。Node.js 环境没有浏览器限制,可直接读写本地或上传的 Excel 文件,适合服务端批量处理:
选型要看具体需求:
readFile + sheet_to_json 分片,后端用流式读取(如 exceljs 的 stream 模式)。HTML 中放一个文件输入框:
JS 中处理:
document.getElementById('excelFile').addEventListener('change', function(e) {
const file = e.target.files[0];
const reader = new FileReader();
reader.onload = function(e) {
const data = new Uint8Array(e.target.result);
const workbook = XLSX.read(data, { type: 'array' });
const sheetName = workbook.SheetNames[0];
const jsonData = XLSX.utils.sheet_to_json(workbook.Sheets[sheetName]);
console.log(jsonData); // 得到数组形式的表格数据
};
reader.readAsArrayBuffer(file);
});
不复杂但容易忽略:记得在项目中安装对应库(npm install xlsx 或 npm install exceljs),并注意浏览器兼容性(如 IE 不支持某些 API,需 polyfill)。