vue3中读取本地excel文件内容
2024-09-08 05:56:32
背景
做后台项目时避免不了excel文件上传,有的还要求对文件内容做校验,或者把文件内容转成数据上传保存.
操作
1.引入xlsx插件,最好安装指定版本,否则会报错
npm i xlsx@0.16.0 -save
2.页面引入
import XLSX from 'xlsx'
3.页面触发
<el-upload class="upload-demo" ref="upload" accept=".xls,.xlsx" action="" :on-change="uploadExcel"
:show-file-list="false" :auto-upload="false">
<el-button slot="trigger" size="large">导入excel</el-button>
</el-upload>
4.使用处理数据
import { ref } from 'vue'
import XLSX from 'xlsx'
const menuData: any = ref([])
const tableData: any = ref([])
const uploadExcel = (file: any, fileList: any) => {
let files = { 0: file.raw }
const fileReader = new FileReader()
fileReader.onload = (e: any) => {
try {
const workbook = XLSX.read(e.target.result, {
type: 'binary'
})
const wsname = workbook.SheetNames[0] // 取第一张表
const ws: any = XLSX.utils.sheet_to_json(workbook.Sheets[wsname])// 生成json表格内容
const data: any = []
ws.map((item: any) => {
let obj: any = {
arr:[]
}
Object.values(item).map((child: any, index: number) => {
obj.arr.push('name' + index)
obj[`name${index}`] = child
})
data.push(obj)
})
tableData.value = data
menuData.value = Object.keys(ws[0])
} catch (err) {
console.log(err)
}
}
fileReader.readAsBinaryString(files[0])
}
excel文件如下:
读取后,处理数据展示如下:
具体代码地址:https://gitee.com/yuexiayunsheng/vue3learn/blob/master/src/views/GetExcelContent.vue
最新文章
- Can I Win
- Leetcode N-Queens
- java8中CAS的增强
- GridView----CustomRowCellEdit 使用注意事项
- PHP配置,php.ini以及覆盖问题
- mtk的安卓手机刷机时出现的错误信息
- 开发版本控制git
- [Bootstrap] 4. Typogrphy
- C# HashSet类(复杂)对象的去重
- LABJS源码浅析
- iOS开展-clang: error: unknown argument: &;#39;-websockets&;#39;解决方案
- 【Unity与23种设计模式】状态模式(State)
- python基础知识练习题(二)
- Liunx网络技术管理及进程管理
- 16、JDBC-DBUtils封装
- TP框架M方法 create方法丢失字段问题
- 20165212 学习基础和C语言基础调查
- java.security.MessageDigest的使用之生成安全令牌!
- Bzoj3510:首都
- mvc路由引起异步调用web服务的问题