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

Node.js中用FileReader读Excel文件遇找不到bufferjs/concat模块错误求助

解决Node.js中使用xlsx读取Excel时的bufferjs/concat缺失问题

嘿,我来帮你搞定这个报错!首先得说清楚:你完全没必要在Node.js环境里用FileReader这个npm包——它是为了在Node里模拟浏览器的FileReader API,但这个包依赖的bufferjs/concat是个早就被废弃的模块,现在根本没人维护,这就是你报错的根源。而且更重要的是,Node.js服务器端处理上传文件时,直接用xlsx就能搞定,不需要额外的FileReader。

问题根源

浏览器里的FileReader是用来读取本地用户上传的文件,但在Node.js服务器上,当文件上传过来时,它已经是以Buffer或者可读流的形式存在了,xlsx模块本身就支持直接读取这些格式,完全绕开了FileReader的需求。那个npm的FileReader包不仅多余,还带了过时的依赖,导致你遇到这个错误。

修正后的代码

直接用xlsx读取上传文件的Buffer就行,假设你用的是类似multer的上传中间件,上传的文件Buffer存在body.file里(或者req.file.buffer,取决于你的上传处理逻辑):

const xlsx = require('xlsx');

// 直接读取文件Buffer,xlsx原生支持这种类型
const workbook = xlsx.read(body.file, { type: 'buffer' });

// 示例:获取第一个工作表并转为JSON
const firstSheetName = workbook.SheetNames[0];
const worksheet = workbook.Sheets[firstSheetName];
const excelData = xlsx.utils.sheet_to_json(worksheet);

console.log('解析后的Excel数据:', excelData);

后续步骤

  1. 先卸载那个没用的FileReader包,避免后续依赖混乱:
npm uninstall FileReader
  1. 确保你的上传中间件(比如multer)正确解析了上传文件,拿到的是Buffer类型的文件内容
  2. 用上面的代码替换原来的FileReader逻辑,直接让xlsx处理Buffer

这样就能彻底解决bufferjs/concat找不到的问题,同时代码更简洁高效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 06:23:11