怎么实现el-upload上传excel后支持预览
时间: 2023-07-19 08:28:17 浏览: 283
要实现el-upload上传excel后支持预览,需要以下步骤:
1. 使用el-upload组件上传excel文件,并将上传成功后的文件保存在一个data变量中。
2. 使用xlsx.js库解析excel文件,将数据转换为json格式。
3. 使用el-table组件展示解析后的json数据,从而实现预览功能。
具体实现步骤可以参考以下代码:
```
<template>
<div>
<el-upload
class="upload-demo"
:action="uploadUrl"
:on-success="handleUploadSuccess"
:before-upload="beforeUpload">
<el-button slot="trigger">上传文件</el-button>
</el-upload>
<el-table :data="tableData">
<el-table-column v-for="col in columns" :prop="col.prop" :label="col.label"></el-table-column>
</el-table>
</div>
</template>
<script>
import xlsx from 'xlsx';
export default {
data() {
return {
uploadUrl: '/api/upload',
data: null,
tableData: [],
columns: []
};
},
methods: {
beforeUpload(file) {
const fileType = file.type;
if (fileType !== 'application/vnd.ms-excel' && fileType !== 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet') {
this.$message.error('只能上传Excel文件');
return false;
}
},
handleUploadSuccess(response, file) {
this.data = response.data;
this.parseExcel();
},
parseExcel() {
const workbook = xlsx.read(this.data, {type: 'binary'});
const sheetName = workbook.SheetNames[0];
const worksheet = workbook.Sheets[sheetName];
this.tableData = xlsx.utils.sheet_to_json(worksheet);
this.columns = Object.keys(this.tableData[0]).map(key => ({prop: key, label: key}));
}
}
};
</script>
```
在这个例子中,我们使用el-upload组件上传Excel文件,并在上传成功后将文件内容保存在data变量中。然后我们使用xlsx.js库解析Excel文件,并将数据转换为JSON格式。最后,我们使用el-table组件展示JSON数据,并动态生成表头。这样,我们就实现了上传Excel文件后的预览功能。
阅读全文
相关推荐


















