el-upload 上传EXCEL
时间: 2023-11-09 21:02:03 浏览: 135
upload-excel
el-upload 是 Element UI 中的一个上传组件,可以用于上传各种类型的文件,包括 Excel 文件。使用 el-upload 上传 Excel 文件需要注意以下几点:
1. 需要设置 accept 属性为 '.xls,.xlsx',表示只能上传 Excel 文件。
2. 需要设置 before-upload 属性为一个函数,在函数中判断上传的文件是否为 Excel 文件,如果不是则返回 false,阻止上传。
3. 在上传成功后,需要通过 FileReader 对象读取 Excel 文件内容,并将其转换为 JSON 格式进行处理。
下面是一个使用 el-upload 上传 Excel 文件并将其转换为 JSON 的示例代码:
```html
<template>
<el-upload
class="upload-excel"
:action="uploadUrl"
:before-upload="beforeUpload"
:on-success="onSuccess"
:show-file-list="false"
accept=".xls,.xlsx"
>
<el-button>上传 Excel</el-button>
</el-upload>
</template>
<script>
export default {
data() {
return {
uploadUrl: '/api/upload',
excelData: null
}
},
methods: {
beforeUpload(file) {
const isExcel = file.type === 'application/vnd.ms-excel' || file.type === 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
if (!isExcel) {
this.$message.error('只能上传 Excel 文件')
return false
}
},
onSuccess(response) {
const reader = new FileReader()
reader.onload = e => {
const data = e.target.result
const workbook = XLSX.read(data, { type: 'binary' })
const sheetName = workbook.SheetNames[0]
const worksheet = workbook.Sheets[sheetName]
const json = XLSX.utils.sheet_to_json(worksheet)
this.excelData = json
}
reader.readAsBinaryString(response.file)
}
}
}
</script>
```
阅读全文