私はFileUploaderを使用してcsvファイルをアップロードするこのアプリを持っています。しかし、今私の要件は、Excelファイルを許可することです。問題は、FileUploaderがゴミを読み込む際にExcelをサポートしていないことです。これは、この例に基づいてExcelファイルを解析する時、私の試みですhttp://oss.sheetjs.com/js-xlsx/SAPUI5でExcelファイルをアップロードする方法は?
コード:私はすべてが正常に動作します。このコードを使用してCSVファイルをアップロードした場合
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);
。私は、Excelファイルを使用している場合は、私が取得するには、次
[1] [CONTENT_TYPES]の.xml¢[1]([1]¬」ËNÃ0E÷HüCä-Jܲ@5í,ÇQ> AA「ƪc[žiiÿž‰ ▲▼▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▼▲▼▲▼▲▲▲▼▲▼▲▲▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲ "{Üv^¥P!XS}bR1rú-K¾s(¸3Õ`c[1]Þ0†½ ÝÎß»¾7M4²©ŠôªZÆk+¿| \ |z¿(Ž<ôPúº6h _- [ž@、ÒØPk<' ?¬2nÏ}Ä£レダゆう%áÄßdºždN「メートル、à¥ÇžDO97、〜§Èɸ8ÀOíc|n|ÑäEOYöéºóÀBÉÀ$}‡íàÈé; {IDA [ƒîñ-é2þÿÿ
私は何!間違っている、または私はここで何が不足していますか?
編集:var workbook = XLSX.read(arr、{type: 'base64'})を実行した後、両方のファイルタイプでnullが返されます。上記のガベージログは、console.log(arr)から取得されます。
あなたの答えのおかげで、私はあなたのコメントの前に考え出したと私は次の reader.readAsArrayBuffer(ファイル)を使用。 次にonload関数 var arr = String.fromCharCode.apply(null、new Uint8Array(strCSV)); 残りのコードは、あなたと同じように見えますが、 'binary64'の代わりに 'base64'を使用するという違いがあります。 – polaris