這兩天遇到大難題了,就是這個 ? xlsx ? 導入問題研铆,之前用的xlsx.full.min.js埋同,寫的導入,結(jié)果不兼容ie瀏覽器棵红,研究這個也好長時間凶赁,網(wǎng)上居然還沒有搜到合適的,自己寫從xlsx官網(wǎng)上找了個大例子逆甜,改了改虱肄,
在引入
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);
})();