поэтому у меня есть это приложение, в которое я загружаю CSV-файл с помощью FileUploader. Однако теперь мое требование состоит в том, чтобы также разрешить файлы Excel. Проблема в том, что FileUploader не поддерживает excel, так как читает мусор. Это моя попытка проанализировать файл Excel на основе этого примера http://oss.sheetjs.com/js-xlsx/
Код:
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)—K¹rú ¸3Õ`c[1]Þ0†½ ÝÎß»¾7 M4²©ŠôªZÆk+¿|\|z¿(Ž‹ôPúº6 h_-[ž@!‚ÒØPk‹´¬2nÏ}Ä? £LËð Ýû%á ÄßdºždN"m, à¥ÇžDO97‚~§Èɸ8ÀOic |n¦Сä Eøÿ ö éºóÀBÉÀ!$}‡íàÈé;{ìÐå[ƒîñ–é2þÿÿ
что я делаю не так, или что мне здесь не хватает?
Изменить: после выполнения var workbook = XLSX.read(arr, {type: 'base64'}); Я получаю null для обоих типов файлов. Приведенный выше журнал мусора поступает из console.log(arr);