如何用read-excel-file.js在浏览器读取本地Excel(无需手动上传)
解决方法
方法1:将Excel作为静态资源部署,通过fetch加载
把data.xlsx和你的HTML、JS、CSS文件放在同一个项目文件夹里,然后用本地HTTP服务器(比如VS Code的Live Server插件)启动项目。直接打开本地HTML文件(file://协议)会触发浏览器跨域限制,必须用http://localhost开头的地址访问才能正常读取静态资源。
之后在JS里通过fetch获取文件的ArrayBuffer,再传给readXlsxFile:
fetch('data.xlsx') .then(response => response.arrayBuffer()) .then(buffer => readXlsxFile(buffer)) .then(data => { // 在这里处理Excel数据,生成HTML表格 console.log(data); }) .catch(error => console.error('加载Excel文件失败:', error));
方法2:将Excel数据转成JSON内嵌到JS中
如果Excel数据不经常变动,直接把内容导出为JSON格式,在JS文件里定义成变量即可:
- 打开Excel,将数据复制整理成JSON数组(或用Excel自带的导出工具转成JSON)
- 在JS里直接使用:
const excelData = [ ["姓名", "年龄", "职业"], ["张三", 25, "程序员"], ["李四", 30, "设计师"] ]; // 直接用这个数据生成HTML表格
这种方法完全不需要加载外部文件,适合数据固定的场景。
方法3:用Node.js打包成单文件(进阶)
如果需要动态处理Excel内容,可以用Node.js把Excel数据打包进JS:
- 用
xlsx包在Node.js环境读取Excel并转成JSON - 把JSON数据写入JS文件,作为全局变量
- 前端直接引入使用
示例Node.js脚本:
const XLSX = require('xlsx'); const fs = require('fs'); const workbook = XLSX.readFile('data.xlsx'); const worksheet = workbook.Sheets[workbook.SheetNames[0]]; const data = XLSX.utils.sheet_to_json(worksheet, { header: 1 }); fs.writeFileSync('excel-data.js', `const excelData = ${JSON.stringify(data)};`);
运行脚本后会生成excel-data.js,在HTML里引入它就能直接用excelData变量。
内容的提问来源于stack exchange,提问作者ArjunK01
相关产品推荐
相关产品推荐

