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

使用DanfoJS读取本地XLSX文件报错,CSV可正常读取求助

Node.js中DanfoJS读取Excel文件报错的解决方法

问题重现

使用DanfoJS读取本地CSV文件正常,但读取同路径.xlsx文件时触发错误:

Error: ParamError: File not supported. file must be a url or an input File object

涉事代码:

const fileLocation = '/Users/riekus/Documents/notebook (analytics)/E/TIV data /test.xlsx'
let df2 = await dfd.readExcel(fileLocation)
print(df2); 

核心原因

DanfoJS的readExcel和readCSV在Node.js环境下的参数逻辑存在差异:

  • readCSV针对Node环境做了适配,直接支持本地文件路径作为输入
  • readExcel默认适配浏览器场景,仅接受网络URL或浏览器端File对象,无法直接识别Node环境的本地文件路径,这就是报错的根源。

解决方法

在Node.js中需要先通过fs模块将本地Excel文件读取为Buffer,再传入readExcel解析:

  1. 引入依赖模块
const fs = require('fs').promises;
const dfd = require('danfojs-node');
  1. 读取文件并解析
const fileLocation = '/Users/riekus/Documents/notebook (analytics)/E/TIV data /test.xlsx';

// 读取本地文件为Buffer
const excelBuffer = await fs.readFile(fileLocation);
// 传入Buffer解析,可指定工作表(注意语法闭合大括号)
let df2 = await dfd.readExcel(excelBuffer, { sheet: 'Sheet1' });
df2.print();

额外修正点

  • 你尝试指定工作表的代码存在语法错误:{sheet: 'Sheet1') 末尾误用了圆括号,需修正为{ sheet: 'Sheet1' }
  • 注意文件路径的大小写:CSV路径用了小写e/,Excel用了大写E/,部分系统(如Linux)区分路径大小写,可能因此找不到文件,建议保持路径大小写一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 00:15:44