- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
所以我有这个应用程序,我使用 FileUploader 上传 csv 文件。但是现在我的要求是还允许 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)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ÉÀ!$}‡íàÈé;{ìÐå[fîñ–é2þÿÿ
我做错了什么,或者我在这里错过了什么?
编辑:执行 var workbook = XLSX.read(arr, {type : 'base64'}); 后对于这两种文件类型,我都得到 null。上面的垃圾日志来自console.log(arr);
最佳答案
由于您是从 domRef 获取文件,因此不需要 ExcelPlus。您只需使用 xlsx 将文件作为二进制字符串读取即可。您必须在脚本中包含 xlsx.full.min.js。
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();
var name = file.name;
reader.onload = function (e) {
var data = e.target.result;
var workbook = XLSX.read(data, { type: 'binary' });
var result = {};
workbook.SheetNames.forEach(function (sheetName) {
var rObjArr = XLSX.utils.sheet_to_row_object_array(workbook.Sheets[sheetName]);
if (rObjArr.length > 0) {
result[sheetName] = rObjArr;
}
});
var output = JSON.stringify(result, 2, 2);
console.log('output');
console.log(output);
};
reader.readAsBinaryString(file);
关于javascript - 如何在SAPUI5中上传Excel文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45820761/
我正在使用 sapui5 创建一个表。我想知道我是否可以将升序排序和降序排序的默认图标更改为我自己的图标? 补充问题:有没有一种方法可以在标题中显示我的自定义图标而无需先点击它? 最佳答案 只需在 W
我如何在 SapUI5 中构建一个 XML View 来迭代 JSONModel 中的所有元素? 到目前为止,我有一个 Controller : sap.ui.define([ "sap/ui
我是一名优秀的程序员,十分优秀!