所以我有这个应用程序,我使用 FileUploader 上传 csv 文件。但是现在我的要求是也允许 excel 文件。问题是 FileUploader 在读取垃圾时不支持 excel。这是我基于此示例http://oss.sheetjs.com/js-xlsx/解析 excel 文件的尝试
代码:
var fileUpload = this.getView().byId("fileUploader");
var domRef = fileUpload.getFocusDomRef();
var file = domRef.files[0];
var XLSX = new ExcelPlus();
XLSX.createFile(["CT_MAIN"]);
var reader = new FileReader();
reader.onload = function(e) {
var strCSV = e.target.result;
var arr = String.fromCharCode.apply(null, new
Uint8Array(strCSV));
// var arr = fixData(strCSV);
console.log('data');
console.log(arr);
var workbook = XLSX.read(arr, {type : 'base64'});
console.log('output');
console.log(workbook);
//var output = toCsv(workbook);
//each one of the rows in the csv file
//var rows = arr;//strCSV.split("\n");
var rows = arr.split("\n");
.....
};
//reader.readAsText(file);
reader.readAsArrayBuffer(file);
//reader.readAsBinaryString(file);
如果我使用此代码上传 csv 文件,一切正常。如果我使用 excel 文件,我会得到以下信息
[1][Content_Types].xml ¢ [1]( [1]¬”ËNÃ0E÷HüCä-Jܲ@5í,Ç Q>Àēƪc[žiiÿž‰ûB¡ j7± ÏÜ{2ñÍh²nm¶,ˆÆ»R‹ÈÀU^ 7/ÅÇì%¿'rZYï @1__f›~q·ÃR4DáAJ¬h >€ãÚÇV ßƹ ªZ¨9ÈÛÁàNVÞ 8Ê©ÓãÑ Ôji){^óã-I‹"{Üv^¥P!XS)bR¹rú—K¾s(¸3Õ` c[1]Þ0†½ ÝÎß»¾7 M4²©ŠôªZÆk+¿|\|z¿(Ž‹ôPúº6 h_-[ž@!,ÒØPk‹´¬2nÏ}Ä? £LËð Ýû%á ÄßdºždN"m,à¥ÇžDO97 ‚~§Èɸ8ÀOíc |n¦Ñä Eøÿ ö éºóÀBÉÀ!$}‡íàÈé;{ìÐå[ƒîñ–é2þÿÿ
我做错了什么,或者我在这里错过了什么?
编辑:在做 var workbook = XLSX.read(arr, {type : 'base64'}); 两种文件类型都为空。以上垃圾日志来自console.log(arr);