Uncaught TypeError报错求助:无法读取json_to_sheet属性
问题解决:Uncaught TypeError: Cannot read properties of undefined (reading 'json_to_sheet')
先给你讲清楚相关基础概念,再给你能直接用的解决方案:
关于Node.js和node_modules
Node.js是让JavaScript能在浏览器外运行的环境(比如本地跑脚本、搭服务器),npm是它自带的包管理工具,用来下载第三方库,下载的库会存在node_modules文件夹里——但你完全可以不用这套,直接在浏览器里用CDN引入库,不用碰node_modules。
报错原因
你用fetch引入xlsx的方式不对:xlsx的浏览器版本需要作为脚本加载到全局环境,直接fetch回来的是文件内容,不是能直接调用的库对象,所以找不到json_to_sheet方法。
直接可用的解决方案(无需node_modules)
步骤1:在HTML里添加CDN脚本
把这段代码放在你的自定义脚本之前,确保库先加载:
<script src="https://cdn.jsdelivr.net/npm/xlsx@0.18.5/dist/xlsx.full.min.js"></script>
步骤2:编写导出Excel的代码
直接用全局对象XLSX调用方法,示例代码:
// 你的对象数组数据 const userData = [ { id: 1, name: "Abinesh", email: "abinesh@example.com" }, { id: 2, name: "Test User", email: "test@example.com" } ]; // 把对象数组转成工作表 const worksheet = XLSX.utils.json_to_sheet(userData); // 创建新工作簿 const workbook = XLSX.utils.book_new(); // 把工作表添加到工作簿,命名为"用户数据" XLSX.utils.book_append_sheet(workbook, worksheet, "用户数据"); // 导出为Excel文件 XLSX.writeFile(workbook, "用户数据.xlsx");
排查你之前操作的问题
如果按上述步骤还是报错,检查这几点:
- 打开浏览器控制台的「Network」标签,确认CDN脚本的HTTP状态码是200(加载成功)
- 你的自定义脚本必须在CDN脚本之后执行,否则会出现
XLSX is not defined的错误 - 检查拼写:是
XLSX.utils.json_to_sheet,注意大小写和下划线,别写错
内容的提问来源于stack exchange,提问作者Abinesh.co
相关产品推荐
相关产品推荐

