前言

前端在开发过程中若是管理系统之类的业务系统,则大多都会涉及到表格的处理,其中最为常见的就是表格的导入导出。有很多办法都可以实现,其中最简单的还是使用插件xlsx。

实现目标

1、对表格数据进行增加、删除。

2、表格数据的导出、导入。

具体逻辑

增加、删除功能比较简单,直接利用vue数据的响应式即可完成。导入、导出相对麻烦一点,但利用插件xlsx也可方便的实现。

1、增加。先构造一些表格数据。



同时添加el-table绑定表格数据。



然后在表格下面添加输入框,v-model绑定输入数据。



具体效果如下,输入数据后,敲击回车即可将数据添加到表格中(三个是之前有的数据,最后一个是添加的数据)。



2、删除。同添加一样,也是利用vue的响应式完成的。在dom中绑定事件传入需要删除的数据条目序号后,直接对表格列表数据进行splice(第一个参数是截取的开始下标,第二个参数是截取的长度)操作即可。



3、导出。最关键的就是对二维数组的处理,二维数组的第一个元素为表头数组,后面的依次为表格数据的数组元素。XLSX导出的步骤为:将二维数组添加到工作表、创建工作薄、将工作表添加到工作簿、写入文件。值得注意的·是XLSX.writeFile可直接写入文件数据,同时下载文件,第二个参数即为下载的文件名,无需使用file-saver之类的文件保存导出插件。



4、导入。导入的数据格式必须是事先约定好的。导入是在文件读取完成之后进行的,所以必须先创建文件读取器new FileReader(),读取完成后使用XLSX.read读取返回的结果,然后使用XLSX.utils.sheet_to_json将结果转换为json,最后直接将json处理成自己想要的格式即可。需要注意的是,我这里导入方法触发的事件是使用的input的change,所以数据导入完成后必须将input的值置空,防止二次选取相同文件时方法不能触发。



结语

在导入时,需要注意在new FileReader()的加载事件中不使用箭头函数的话,this是不会生效的。

vue+xlsx实现表格的导入导出的更多相关文章

  1. vuecli创建项目-vue项目目录介绍-es6导入导出语法-小练习登录功能-scoped

    目录 vuecli创建项目-vue项目目录介绍-es6导入导出语法-小练习登录功能-scoped 今日内容概要 今日内容详细 1 vue-ci创建项目 2 vue项目目录介绍 3 es6导入导出语法 ...

  2. vue中excal表格的导入和导出

    注意:vue中要实现表格的导入与导出,首先要install两个依赖, npm install -S file-saver xlsx  和  npm install -D script-loader.其 ...

  3. vue + element-ui实现简洁的导入导出功能

    1.安装ElementUI模块 cnpm install element-ui -S 2.在main.js中引入 import ElementUI from 'element-ui' import ' ...

  4. QTP 表格的导入导出异常信息 笔记

    0 环境 系统环境:win7 1 操作 1.1 前言 与异常遍历结合 需要表格记录下来(读写) 代码大概跑了一下 若细节有错 请自行更改 1.2 导出 systemutil.Run "D:\ ...

  5. EasyExcel对大数据量表格操作导入导出

    前言 最近有个项目里面中有大量的Excel文档导入导出需求,数据量最多的文档有上百万条数据,之前的导入导出都是用apache的POI,于是这次也决定使用POI,结果导入一个四十多万的文档就GG了,内存 ...

  6. excel表格数据导入导出

    /** * 导出数据到excel表格 * Created by shenjianhua on 2018-12-28 */ package com.luer.comm.excel; import jav ...

  7. Excel表格的导入导出

    Excel文件的组成: 01.一个Excel文件由N个Sheet组成的 02.一个Sheet由N个Row组成 03.一个Row由N个Cell组成 需求: 把内存中的数据 写入到指定的excel表格中! ...

  8. 网页表格导入导出Excel

    用JS实现网页表格数据导入导出excel. 首先是JS文件中的代码 (function($){ function getRows(target){ var state = $(target).data ...

  9. EXCE 表格导入导出遇到问题(easypoi)

    使用Easypoi进行excel表格的导入导出遇到的问题: 1.导出时候打开文件一直遇乱码,主要的原因就是我在实体类没有进行给每个字段进行注解,就会导致每个字段找不到对应的汉字表头,所以一定不要忘了导 ...

  10. 【Vue】vue项目目录介绍 es6的导入导出语法 vue项目开发规范 Vue项目编写步骤

    目录 昨日回顾 今日内容 0 vue-cli创建项目 node.js环境 创建vue-cli项目 1 vue项目目录介绍 node_modules index.html app.vue package ...

随机推荐

  1. 记一次aspnetcore发布部署流程初次使用k8s

    主题: aspnetcorewebapi项目,提交到gitlab,通过jenkins(gitlab的ci/cd)编译.发布.推送到k8s. 关于gitlab.jenkins.k8s安装,都是使用doc ...

  2. 怒肝半月!Python 学习路线+资源大汇总

    Python 学习路线 by 鱼皮. 原创不易,请勿抄袭,违者必究! 大家好,我是鱼皮,肝了十天左右的 Python 学习路线终于来了~ 和之前一样,在看路线前,建议大家先通过以下视频了解几个问题: ...

  3. [oeasy]python0133_[趣味拓展]颜文字_流石兄弟_表情文字_2ch_kaomoji

    颜文字 回忆上次内容 上次我们了解unicode 里面有各种字体 甚至还有emoji   emoji 本质上也是文字 按照unicode的方式编码 存储时按照utf-8的方式编码 显示时按照系统定义的 ...

  4. 美团VS饿了么,到底谁更胜一筹?

    最近啊,收到一个粉丝的投稿,我发现他在美团和饿了么都去面试过. 这俩企业大家应该都经常用吧,咱点外卖的时候,我有时候就琢磨,到底他俩谁更厉害点. 今天咱们就瞅瞅,在面试这块儿谁更难一些. (目前都只有 ...

  5. 解决react native打包apk文件安装好之后进入应用闪退的问题

    这个是我一个前端前辈帮我弄的,自己解决的时候不行,她去官网找了相关的问题,然后发给我的. react-native android 的release安装包运行闪退,但是debug运行正常 环境:0.6 ...

  6. 涨见识了!脱离vue项目竟然也可以使用响应式API

    前言 vue3的响应式API大家应该都特别熟悉,比如ref.watch.watchEffect等.平时大家都是在vue-cli或者vite创建的vue项目里面使用的这些响应式API,今天欧阳给大家带来 ...

  7. Java编程指南:高级技巧解析 - Excel单元格样式的编程设置

    最新技术资源(建议收藏) https://www.grapecity.com.cn/resources/ 前言 在Java开发中,处理Excel文件是一项常见的任务.在处理Excel文件时,经常需要对 ...

  8. sql语句排序无效的问题

    数据可视化时因为数据类型排序无效的问题:这是由于你要排序的类型是String类型的而ORDER BY 方法排序要求整数型. 这就需要在ORDER BY 后加 CAST(需要排序的字段 AS UNSIG ...

  9. js实现动态表格的添加

    <!DOCTYPE html> <html lang="en"> <head> <title>Table_Simple CSS fo ...

  10. Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=os&infra=stock error was 14: curl#6 - "Could not resolve host: mirrorlist.centos.org; 未知的错误"解决yum下载报错

    报错信息 │ (SSH client, X server and network tools) │ │ │ │ ⮞ SSH session to root@192.168.117.166 │ │ • ...