vue使用xlsx读取Excel文件
<template>
<el-upload
action="#"
:auto-upload="false"
:on-change="onChange"
:limit="1"
:show-file-list="false"
accept=".xls,.xlsx">
<el-button size="medium" :type="type == undefined ? 'primary' : type">{{button}}</el-button>
</el-upload>
</template>
<script>
import xlsx from 'xlsx';
export default {
props: ['button', 'type'],
methods: {
async onChange (file) {
let dataBinary = await new Promise(resolve => {
let reader = new FileReader();
reader.readAsBinaryString(file.raw);
reader.onload = ev => {
resolve(ev.target.result);
}
});
let workBook = xlsx.read(dataBinary, { type: 'binary', cellDates: true });
let workSheet = workBook.Sheets[workBook.SheetNames[0]];
const data = xlsx.utils.sheet_to_json(workSheet);
this.$emit('get-data', data);
}
}
}
</script>