我想上传ecel,阅读内容,并将这些内容添加到数据表中.
这就是我试图使用这个参考文献https://javacodepoint.com/convert-excel-file-data-to-json-in-javascript/来做的事情
$('#uploadFile').on('click', async function () {
var files = document.getElementById('stocksform').files;
if(files.length==0){
alert("Please choose any file...");
return;
}
var filename = files[0].name;
var extension = filename.substring(filename.lastIndexOf(".")).toUpperCase();
if (extension == '.XLS' || extension == '.XLSX') {
var jsonResult = excelFileToJSON(files[0]);
console.log(jsonResult);
}else{
alert("Please select a valid excel file.");
}
$('#exampleModal').modal('toggle');
});
EXCELELFileToJSON
function excelFileToJSON(file){
try {
var reader = new FileReader();
reader.readAsBinaryString(file);
reader.onload = function(e) {
var data = e.target.result;
var workbook = XLSX.read(data, {
type : 'binary'
});
var result = {};
workbook.SheetNames.forEach(function(sheetName) {
var roa = XLSX.utils.sheet_to_row_object_array(workbook.Sheets[sheetName]);
if (roa.length > 0) {
result[sheetName] = roa;
}
});
console.log(result);
return result ;
}
}catch(e){
console.error(e);
}
}
问题是,当我运行它时,下面的代码(来自上面的代码)在控制台中使用‘unfined’执行
var jsonResult = excelFileToJSON(files[0]);
console.log(jsonResult);
然后,我可以看到从exelFileToJSON中的这一行打印的结果.
console.log(result);
Reader.onLoad有一些问题,它返回未定义的结果,但过了一段时间它就会提供结果.这可能是什么问题.