You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用ExcelJS调用readFile时出现Cannot read properties of undefined (reading 'F_OK')错误

解决ExcelJS v4.3.0 + Node.js v14.18.2中readFile的F_OK未定义错误

错误原因

这个错误源于ExcelJS v4.3.0的文件读取逻辑中,尝试访问fs.constants.F_OK,但该属性在Node.js 14.18.2环境下未被正确识别,属于版本兼容问题。

解决方案

方案1:降级ExcelJS到兼容版本

ExcelJS v4.2.1与Node.js 14.x兼容性更好,执行以下命令降级:

npm install exceljs@4.2.1 --save

降级后原代码无需修改即可正常运行。

方案2:绕开readFile,改用load方法读取文件buffer

如果不想调整ExcelJS版本,可以通过Node.js原生fs模块先读取文件buffer,再用ExcelJS的load方法加载,避免触发内部的错误逻辑:

const fs = require('fs');
const path = require('path');
const ExcelJS = require('exceljs');

async function handleExcel() {
  const wb = new ExcelJS.Workbook();
  const fullPath = path.resolve("excelName.xlsx");
  
  // 用原生fs读取文件buffer
  const fileBuffer = fs.readFileSync(fullPath);
  // 加载buffer到工作簿
  await wb.xlsx.load(fileBuffer);
  
  const buffer = await wb.xlsx.writeBuffer();
  // 此处可添加对buffer的后续处理
}

// 执行并捕获错误
handleExcel().catch(err => console.error(err));

方案3:升级Node.js版本(可选)

如果项目允许,将Node.js升级到v16.x或更高版本,ExcelJS v4.3.0在这些版本中能正常识别fs.constants.F_OK,无需修改代码。

内容的提问来源于stack exchange,提问作者Ligia

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 04:45:35