使用xls-parser解析非空CSV文件返回空对象的问题求助
解决xls-parser解析CSV返回空对象的问题
兄弟,我看你在用xls-parser解析CSV时每次都拿到空对象,帮你捋捋几个关键问题点:
首先先看你代码里的低级错误,这很可能是问题根源之一:
var file = _.get(event, 'taget.files[0], null);
这里有两个明显的问题:
taget拼写错了,应该是target;- 字符串参数的引号没闭合,正确写法是
_.get(event, 'target.files[0]', null)。
这个错误会导致你拿到的file是null,解析空文件自然返回空对象。
然后,就算你拿到了正确的file对象,还要注意xls-parser的onFileSelection是异步方法,它不会同步返回解析结果!你现在直接同步赋值var data = xlsParser.onFileSelection(file),拿到的肯定是未完成的空对象——因为文件解析还在后台进行,结果还没生成呢。
正确的调用方式应该用回调函数(这个库的标准用法):
handleFileChange(event) { // 先修复获取文件的代码 var file = _.get(event, 'target.files[0]', null); if (!file) return; // 先判断文件是否存在,避免无效调用 // 用回调处理异步解析结果 xlsParser.onFileSelection(file, function(err, data) { if (err) { console.error('解析出错:', err); return; } console.log('解析结果:', data); // 这里才能拿到正确的解析数据 }); }
另外还要确认你选择的文件确实是CSV或者xls/xlsx格式,要是选了不支持的文件类型,解析器也可能返回空对象。必要的话可以检查下xls-parser的版本,有些旧版本可能存在兼容性问题,更新到最新版试试。
内容的提问来源于stack exchange,提问作者Gopal Garg
相关产品推荐
相关产品推荐

