【发布时间】:2016-08-03 19:36:53
【问题描述】:
我正在尝试解析一个已有 URL 的 Excel 文件。尝试访问文件以使其可读时,我不断收到不同的错误。现在,这是我的代码:
const input_file = doc.input_file;
const extension = input_file.split('.').pop();
let XMLHttpRequest = require("xmlhttprequest").XMLHttpRequest;
let oReq = new XMLHttpRequest();
oReq.open("GET", input_file, true);
oReq.responseType = "arraybuffer";
oReq.onload = function(e) {
let arraybuffer = oReq.responseText;
/* convert data to binary string */
let data = new Uint8Array(arraybuffer);
let arr = new Array();
for(let i = 0; i != data.length; ++i) arr[i] = String.fromCharCode(data[i]);
let bstr = arr.join("");
/* Call XLSX */
let workbook = XLSX.read(bstr, {type:"binary"});
/* DO SOMETHING WITH workbook HERE */
let firstSheet = workbook.SheetNames[0];
let parsed = XLSX.utils.sheet_to_csv(firstSheet);
console.log(parsed);
}
oReq.send();
当我尝试读取位于let workbook = XLSX.read(bstr, {type:"binary"});的文件时,我得到的当前错误是:Error: Unsupported file NaN
我不确定阅读该外部链接的最简单方法。有任何想法吗?如果有帮助,我正在使用 Meteor。
【问题讨论】:
-
这个错误暗示
bstr是NaN,所以可能没有收到任何东西。如果有东西被退回,请与console.log(oReq.responseText)联系。另外,使用oReq.response而不是oReq.responseText作为arraybuffer 类型。
标签: javascript excel meteor amazon-s3 xmlhttprequest