使用ExcelJS读取xlsx文件遇TypeError错误,求排查方案
解决TypeError: Cannot read properties of undefined (reading 'F_OK')错误
这个错误的核心原因是你使用了Node.js端的文件读取方法在浏览器环境运行,或者Node.js环境下exceljs依赖的fs模块出现异常。
情况1:前端网站(浏览器环境)
exceljs的readFile方法依赖Node.js的fs模块,而浏览器没有这个模块,自然找不到fs.constants.F_OK,所以会报错。你需要改用浏览器端的文件读取方式,通过文件上传控件获取文件后,用load()方法读取文件的ArrayBuffer:
<input type="file" id="excelUpload" accept=".xlsx"> <script> // 确保exceljs已通过CDN或打包工具引入(比如webpack、vite) const workbook = new Excel.Workbook(); document.getElementById('excelUpload').addEventListener('change', async (event) => { const selectedFile = event.target.files[0]; if (!selectedFile) return; // 读取文件为ArrayBuffer const fileBuffer = await selectedFile.arrayBuffer(); // 加载到workbook await workbook.xlsx.load(fileBuffer); // 示例:读取第一个工作表的第一行数据 const firstSheet = workbook.getWorksheet(1); console.log('第一行数据:', firstSheet.getRow(1).values); }); </script>
情况2:Node.js环境
如果是在Node.js里运行仍报错,尝试以下步骤:
- 重新安装exceljs依赖:
npm uninstall exceljs && npm install exceljs - 检查Node.js版本,确保是exceljs支持的版本(建议v14及以上)
- 排查代码中是否有修改、覆盖
fs模块的逻辑
内容的提问来源于stack exchange,提问作者Ole Nedderhoff
相关产品推荐
相关产品推荐

