vue项目中导入excel文件(使用element-ui)
需要使用的包有 XLSX
npm安装:
npm install --save xlsx
在element-ui 中有一个组件叫 upload,可以直接拿来用
<el-upload
action=""
:auto-upload="false" // 因为只是读取数据到表格,并不需要上传到服务器
:show-file-list="false" // 因为是直接读到表格,不用展示文件列表
:on-change="import"> // 监听 on-change 事件,具体介绍看element官网
<el-button> inport </el-button>
</el-upload>
method: {
import(file, fileList){
const fileReader = new FileReader();
fileReader.onload = (ev) => {
try {
const data = ev.target.result;
const workbook = XLSX.read(data, {
type: 'binary'
});
console.log(workbook)
let sheet = Object.keys(workbook.Sheets)[0];
const json = XLSX.utils.sheet_to_json(workbook.Sheets[sheet]); //获得以第一列为键名的sheet数组对象
console.log(json)
} catch (e) {
console.log(e)
}
};
fileReader.readAsBinaryString(file.raw);
}
}