我试图通过单击按钮而不使用input来加载xlsx文件。文件“ seedFile”在我的项目结构中。当我使用输入时,逻辑运行正确,但是对于内部文件,我遇到了这个问题并遇到了错误。
var excelToJson =function (file) {
return new Promise(function (resolve, reject) {
var xlData = {};
var reader = new FileReader();
reader.readAsBinaryString(seedFile);
reader.onload = function (e) {
var data = e.target.result;
var workbook = XLSX.read(data, {
type: 'binary'
});
workbook.SheetNames.forEach(function (sheetName) {
xlData[sheetName] =
XLSX.utils.sheet_to_row_object_array(workbook.Sheets[sheetName]);
})
};
reader.onprogress = function (data) {
if (data.lengthComputable) {
var progress = parseInt(((data.loaded / data.total) * 100), 10);
console.log(progress);
}
}
reader.onerror = function (ex) {
reject(ex);
};
reader.onloadend = function () {
resolve(xlData)
}
})
}
var handleFiles = function (files) {
var file = seedFile
return excelToJson(file)
}
$("#seedFile").click(async () => {
handleFiles(this.files).then(function success(data) {
console.log(data);
grid.setData(data.Sheet1).getInstance().loadData()
}, function error(err) {
alerts.error(err);
})
})
TypeError:无法在'FileReader'上执行'readAsBinaryString':参数1不是'Blob'类型。有什么简单的方法可以在内部将文件制成blob吗?