这两天遇到大难题了,就是这个 xlsx 导入问题,之前用的xlsx.full.min.js,写的导入,结果不兼容ie浏览器,研究这个也好长时间,网上居然还没有搜到合适的,自己写从xlsx官网上找了个大例子,改了改,
在引入
shim.js jszip.js xlsx.js
的基础上
上代码:
var X = XLSX;
var rABS = false;
var process_wb = function process_wb(wb) {
var result = {};
wb.SheetNames.forEach(function(sheetName) {
var roa = X.utils.sheet_to_json(wb.Sheets[sheetName], {
header: 1
});
if(roa.length) result[sheetName] = roa;
});
var output = JSON.stringify(result, 2, 2);
console.log(JSON.parse(output));
document.write(output);
};
var do_file = function do_file(files) {
var f = files[0];
var reader = new FileReader();
reader.onload = function(e) {
if(typeof console !== 'undefined') console.log("onload", new Date(), rABS);
var data = e.target.result;
if(!rABS){
data = new Uint8Array(data)
}
process_wb(X.read(data, {
type: rABS ? 'binary' : 'array'
}));
};
if(rABS){
reader.readAsBinaryString(f);
}else{
reader.readAsArrayBuffer(f);
}
};
(function() {
var xlf = document.getElementById('xlf');
if(!xlf.addEventListener) return;
function handleFile(e) {
console.log(e.target.files);
// 获取到文件
do_file(e.target.files);
}
xlf.addEventListener('change', handleFile, false);
})();
网友评论