vue 导入excel解析_vue 导入excel功能

chooseFile(){

this.excelData = [];

document.getElementById(this.fileId).value = null;

this.imFile.click();

},

importf(obj) {

let _this = this;

this.file = this.$refs.imFile.files[0];

// this.$refs.imFile.value = null;

var rABS = false; //是否将文件读取为二进制字符串

var file = this.file;

FileReader.prototype.readAsBinaryString = function(f) {

var binary = "";

var rABS = false; //是否将文件读取为二进制字符串

var pt = this;

var workbook; //读取完成的数据

// var excelData;

var reader = new FileReader();

reader.onprogress = function(e) {

let total = file.size;

_this.progress = (e.loaded/total)*100;

console.log( _this.progress);

};

reader.onload = function(e) {

try {

var bytes = new Uint8Array(reader.result);

var length = bytes.byteLength;

for(var i = 0; i < length; i++) {

binary += String.fromCharCode(bytes[i]);

}

if(rABS) {

workbook = XLSX.read(btoa(fixdata(binary)), { //手动转化

type: 'base64'

});

}else {

workbook = XLSX.read(binary, {

type: 'binary'

});

}

// excelData = [];

} catch(e) {

layer.toptip("文件类型不正确")

return;

}

var fromTo = '';

for (var sheet in workbook.Sheets) {

if (workbook.Sheets.hasOwnProperty(sheet)) {

fromTo = workbook.Sheets[sheet]['!ref'];

_this.excelData = _this.excelData.concat(XLSX.utils.sheet_to_json(workbook.Sheets[sheet]));

}

}

_this.$emit("fileUpload",_this.excelData)

};

reader.readAsArrayBuffer(f);

}

var reader = new FileReader();

if(rABS) {

reader.readAsArrayBuffer(file);

}else {

reader.readAsBinaryString(file);

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值