在做一个后台管理系统,使用的naive框架,因此以前用的基于element上传组件的导入excel就不能使用了,特别制作了这一版,做下记录,以后不管是使用什么框架,都可以直接使用。

首先安装插件

npm install --save xlsx file-saver

然后在页面引入

import FileSaver from 'file-saver'
import * as XLSX from 'xlsx';

安装好后可以在package.json查看是否安装成功,以下代表安装成功

"file-saver": "^2.0.5",
"xlsx": "^0.18.5"

然后自定义html标签

 <label for="upload" class="top">导入表格</label><inputtype="file"multipleid="upload"style="display: none"@change="changeExcel($event)"accept=".xls,.xlsx"/>

美化标签样式

<style scoped lang="less">.top {height: 30px;width: 80px;background-color: #2080f0;font-size: 14px;line-height: 30px;cursor: pointer;display: inline-block;text-align: center;color: #fff;border-radius: 3px;margin-right: 20px;}.top:hover {background-color: #4098fc;}
</style>

效果:

最后是js部分点击函数逻辑

const tableData = ref([]); //表格数据const dealExcel = (ws) => {let keymap = {// 转换的开头姓名: 'name',工资月份: 'month',工资总金额: 'money',部门: 'section',职位: 'job',};ws.forEach((sourceObj) => {Object.keys(sourceObj).map((keys) => {let newKey = keymap[keys];if (newKey) {sourceObj[newKey] = sourceObj[keys];delete sourceObj[keys];}});});tableData.value = ws;};const changeExcel = (e) => {const files = e.target.files;if (files.length <= 0) {return false;} else if (!/\.(xls|xlsx)$/.test(files[0].name.toLowerCase())) {return false;}// 读取表格数据const fileReader = new FileReader();fileReader.onload = (ev) => {const workbook = XLSX.read(ev.target.result, {type: 'binary',});const wsname = workbook.SheetNames[0];const ws = XLSX.utils.sheet_to_json(workbook.Sheets[wsname]);// dealExcel(ws);//转换数据格式console.log(ws);tableData.value = ws; //赋值console.log(tableData.value);};fileReader.readAsBinaryString(files[0]);};

dealexcel函数是对excel的表头进行转换,如果标头跟你的标头数据不相符的话。比如你的标头都是英文,而导入的标头是汉语。

我的数据格式是统一的,所以将调用函数注释了。

vue基于原生html标签导入excel表格及标签的美化相关推荐

  1. vue下载excel表格模板和导入excel表格数据

    vue下载excel表格模板和导入excel表格数据 vue制作excel表格模板给前端下载 vue制作excel表格模板给前端下载 最近有个需求,需要导入excel表格,并且还需要制作模板给用户下载 ...

  2. 基于SpringBoot+EasyExcel+vue3实现excel表格的导入和导出

    目录 基于SpringBoot+EasyExcel+vue3实现excel表格的导入和导出 一.导入和导出 二.导出数据为excel实现过程 三.将excel中的数据导入到数据库中 基于SpringB ...

  3. php excel导入数据库显示乱码,php修改excel表格数据库数据格式-使用phpexcel导入excel表格数据到MYSQL,乱码怎么解决...

    PHP 用PHPExcel往数据库导入大量数据 估计0是null,所以不显示了,可以换个思路,让他显示为字符串 $number = 0; echo ''.$number 原生PHP代码实现excel导 ...

  4. php修改excel表格数据,php修改excel表格数据-php怎么导入Excel表格到数据库,根据表格内的字段......

    php怎么导入Excel表格到数据库,根据表格内的字段... 昨天项目里有个新知需求,客户希望把一些数据能导出成为Excel表格道,刚开始用PHP原生输入Excel表格,发现效果不是很理想,于是找到一 ...

  5. 导入Excel表格数据(一)

    开发工具与关键技术:VS+导入Excel表格 作者: 李伙 撰写时间: 2019年6月3日 在学习MVC过程中,如果我们需要录入某条数据时可以利用新增的方法把我们的数据录入进去,而录入的数据比较多的时 ...

  6. pdf导入excel表格_如何将PDF插入Excel

    pdf导入excel表格 Excel provides a plethora of features for organizing, manipulating, and handling your d ...

  7. latex 的列表和表格环境-快速导入excel表格源文件

    latex 的列表和表格环境-快速导出excel表格源文件 列表-1 基本语法 \begin{itemize}\item 列表内容\item 列表内容\item 列表内容 \end{itemiz ...

  8. php导入excel表格数据,php页面导入excel表格数据-php导入excel 怎么获取excel表格数据...

    PHP如何导出当前页面中的表格至Excel 常用的用PHP读取EXCEL的方法有以下三种,各自有各自的优缺点.个人推荐用第三种方法,因为它可以跨平台使用. 1. 以.csv格式读取 将.xls转换成. ...

  9. matlab绘图 excel,『在matlab上如何导入excel表格然后画图』excle表格如何使用绘图笔...

    excel怎样在绘制图形中加入文字 1.在excel表制图形中加入文以添加文字,首先绘制图形,图形绘制好图形,并选择"编辑文字",输入文字即可. 1.1插入图形, 1.2,选择所需 ...

最新文章

  1. VTK:PolyData之DataSetSurfaceFilter
  2. android中图型的阴影效果(shadow-effect-with-custom-shapes)
  3. http协议网络编程
  4. 余弦相似度/卷积核之间的成对余弦相似性
  5. plsql只提交存储过程里的事务_plsql 存储过程 事务
  6. 无痕 PS、读得懂文字,OpenAI 的二代 DALL·E 惊艳亮相
  7. 自定义高效支持点击监听的RecyclerView
  8. JDK8帮助文档生成-笔记
  9. 在线作图|2分钟绘制一张精美的火山图(Volcano Plot)
  10. 微信朋友圈 腾讯服务器,朋友圈@微信能得一面红旗?腾讯服务器一度宕机
  11. python+nodejs+vue大学生心理健康测评管理系统
  12. 回归分析——简单线性回归实例讲解(SPSS)
  13. Python文件读写模式与光标的移动
  14. JavaMail实现邮件的发送
  15. 【論文筆記】MIDAS:Microcluster-Based Detector of Anomalies in Edge Streams
  16. 乐2 乐视X520_官方线刷包_救砖包_解账户锁
  17. iOS微信支付--解析失败
  18. 大数据智慧数字电商第五课 程序整合 可视化和BI分析
  19. ICP备案和ICP许可证区别
  20. 看完《奇葩说》,还有一个千亿级的市场故事可以说说

热门文章

  1. android双栈ipv6优先级,ME60双栈场景无线业务安卓手机无法获取IPV6地址
  2. 【听】像ted一样演讲,论公众场合打鸡血的技巧
  3. ionic3 摄像快门声静音
  4. 【转】Python 量化投资实战教程(2) —MACD策略
  5. Windows 11 跳过启动显示配置偏好设置页面
  6. android布局常用占位符
  7. 阿里这次要“让天下无闲置”,闲鱼推信用速卖
  8. 将纸质的电话号码导入到手机通讯录(一):使用ABBYY FineReader进行数据识别
  9. uni-app 微信小程序 导航栏 隐藏返回 隐藏小房子
  10. 自动驾驶——标注工具(PySide)的开发笔记