import XLSX from 'xlsx'; //导入包
beforeUpload(file) {
let vm = this;
vm.files = file;
const loading = this.$loading({
lock: true,
text: 'Loading',
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
});
const extension = file.name.split('.')[1] === 'xls'
const isLt2M = file.size / 1024 / 1024 < 5
if (!extension) {
vm.$message.warning('上传模板只能是 xls格式!')
return false
}
if (!isLt2M) {
vm.$message.warning('上传模板大小不能超过 5MB!')
return false
}
var excelFile;
var reader = new FileReader();
reader.readAsBinaryString(file);
reader.onload = function(e) {
var data = e.target.result;
excelFile = XLSX.read(data, {
type: "binary"
});
var headers_key = new Array();
var headers = new Array();
var optionList = new Array();
var str = XLSX.utils.sheet_to_json(
excelFile.Sheets[excelFile.SheetNames[0]]
);
for (var key in str[1]) {
headers_key.push(key); //获取表头key
}
for (var i = 0; i < headers_key.length; i++) {
headers.push(str[1][headers_key[i]]); //获取表头
}
for (var i = 0; i < headers_key.length; i++) {
var str = {"id":i+'',"value":headers_key[i]}
optionList.push(str)
}
}
vm.centerDialogVisible = true;
loading.close();
return // 返回false不会自动上传
},