vue3 + vite 的Excel表格的导入导出
一、安装XLSX插件
1 2 3 4 5 | yarn add xlsx 或者 npm i xlsx |
二、引入插件
在你需要的页面或者在main.js中引入
1 | import * as XLSX from 'xlsx' |
三、导出Excel
3.1 核心api
① xlsx.utils.book_new() 新建工作簿
②
xlsx.utils.aoa_to_sheet(二维数组)创建工作表 数组格式
④ xlsx.utils.book_append_sheet(工作簿, 工作表)
⑤ xlsx.writeFile(工作簿,名称,配置项) 下载生成的excel
3.2 实现示例代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | let exportData = () => { // 1 新建工作簿 XLSX.utils.book_new() let workbook = XLSX.utils.book_new() // 处理数据 let newTable = tableData.value.map(item => { return { ID: item.id, 姓名: item.name, 日期: item.date, 地址: item.address } }) // 2 创建工作表 let workSheet = XLSX.utils.json_to_sheet(newTable) // 3 workSheet添加到workbook中 XLSX.utils.book_append_sheet(workbook, workSheet); // 4 下载Excel XLSX.writeFile(workbook, '信息表.xlsx' , { bookType: 'xlsx' }) } |
四、导入Excel
4.1 核心api
①
fileReader.readAsBinaryString(file); 读取文件的内容为二进制
③ fileReader.onload 监听读取文件成功
④ xlsx.read(数据,配置项) 插件读取文件 生成工作簿
⑤ xlsx.utils.sheet_to_json(工作表) 把工作表转化为json
4.2 实现示例代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | let importData = (uploadFile: any) => { let file = uploadFile.raw // 1 cosnt fileReader= new FileReader() Web 应用程序异步读取存储在用户计算机上的文件 let fileReader = new FileReader() // 2 读取文件的内容为二进制 fileReader.readAsBinaryString(file); // 3 fileReader.onload 监听读取文件成功 fileReader.onload = (e: any) => { // console.log(e.target.result); // 二进制文件 xlsx.read(数据,配置项) 插件读取文件 生成工作簿 let workbook = XLSX.read(e.target.result, { type: 'binary' }) // console.log(workbook); let sheetName = workbook.SheetNames[0]; let workSheet = workbook.Sheets[sheetName] // console.log(workSheet); // XLSX.utils.sheet_to_json(工作表) 把工作表转化为json let excelDataJson = XLSX.utils.sheet_to_json(workSheet) // console.log(excelDataJson); tableData.value = excelDataJson.map((item: any) => { return { id: item.ID, name: item.姓名, date: item.日期, address: item.地址 } }) } } |
注:该文档为个人理解所写,有误可建议修改
本文作者:persist_in
本文链接:https://www.cnblogs.com/persistIn/p/17797990.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步