Vue:使用vue-json-excel导出数据到excel
vue-json-excel官方文档
使用方法
1. 在项目中安装vue-json-excel
npm install vue-json-excel -S
2. 在main.js中,将vue-json-excel在全局注册
import Vue from "vue";
import JsonExcel from "vue-json-excel";Vue.component("downloadExcel", JsonExcel);
3. API参数解读
参数名 | 参数类型 | 描述 | 默认值 |
---|---|---|---|
data | 数组 | 需要导出的参数 | |
fields | 对象 |
规定导出数据中的字段名称与文件每一列列头名称的关系。 要导出的JSON对象中的字段。如果没有提供,JSON中的所有属性将被导出。 |
|
export-fields (exportFields) | 对象 |
解决与其他组件的命名冲突问题。 用于解决其他使用变量字段的组件(如vee-validate)的问题。exportFields的工作原理与字段完全相同 |
|
type | 字符串 |
文件类型。xls 或者csv
|
xls |
name | 字符串 | 导出文件名称。 | data.xls |
default-value (defaultValue) | 字符串 |
如果某一行没有字段值时候起作用。 当行没有字段值时用作回退。 |
|
header | 字符串/数组 |
导出文件表格标题。 数据的标题。可以是字符串(一个标题)或字符串数组(多个标题)。 |
|
title(deprecated) | 字符串/数组 | 与header一样,为了向后兼容,我们也保留了title,但不建议使用它,因为它会与HTML5的title属性冲突。 | |
footer | 字符串/数组 |
导出文件数据页脚。 可以是字符串(一个页脚)或字符串数组(多个页脚)。 |
’ ’ |
worksheet | 方法 | 工作表选项卡的名称。 | ‘Sheet1’ |
fetch | 方法 |
在点击下载按钮后,开始下载之前执行的函数。 回调以获取数据下载之前,如果它被设置设置了,它将在点击鼠标之后立即执行(这个过程是在开始下载之前的)。重要提示:只有在没有定义数据道具的情况下才有效。 |
|
before-generate | 方法 | 在生成/获取数据之前调用方法,例如:显示加载进度 | |
before-finish | 方法 | 在下载框弹出之前调用方法的回调,例如:隐藏加载进度 | |
stringifyLongNum | 布尔类型 | 长数字和十进制(解决数字精度丢失的问题),默认:false | |
escapeCsv | 布尔类型 | 这将转义CSV值,以修复一些excel数字字段的问题。但这会用=" and "包装所有csv数据,以避免你不得不将这个道具设为假。默认值:真正的 |
4. 关键代码
1. template标签中
<download-excel:fields="exportDataStandard":data="exportData"type="xls":name="exportName":header="exportHeader":footer="exportFooter":defaultValue="exportDefaultValue":fetch="createExportData":before-generate="startDownload":before-finish="finishDownload"worksheet="导出信息"
><el-button icon="el-icon-download">导出</el-button>
</download-excel>
2. script标签中
export default {name: "BMSStationInfo",components: {BMSStationInfoDetailInformation},data() {return {exportDataStandard: {"名称": "name","性别": "sex","地区": {field: "phone",callback: value => {return `他的电话是:${value}`}}},exportData: [{name: "甲", sex: "女", phone: 15521103211},{name: "乙", sex: "男", phone: 15521103222},{name: "丙", sex: "女", phone: 15521103233},{area: "北京市朝阳区"},{name: "丁", sex: "男", phone: 15521103233},{name: "丁", sex: "男", phone: 15521103233},],exportName: "导出数据",exportHeader: ["用户信息页头1","用户信息页头2"],exportFooter: ["用户的信息页脚1","用户的信息页脚2"],exportDefaultValue: "这一行这一列没有数据"}},methods: {createExportData() {// 点击导出按钮之后,开始导出数据之前的执行函数,返回值为需要下载的数据// TODO:构造需要下载的数据返回return [{name: "甲", sex: "女", phone: 15521103211},{name: "乙", sex: "男", phone: 15521103222},{name: "丙", sex: "女", phone: 15521103233},{area: "北京市朝阳区"},{name: "丁", sex: "男", phone: 15521103233},{name: "丁", sex: "男", phone: 15521103233},];},startDownload() {console.log("数据开始")},finishDownload() {console.log("数据下载完成")}}
}
5. 重点参数具体使用
fields:规定导出数据中的字段名称与文件每一列列头名称的关系。可以使用callback回调函数的形式,对字段进行格式化。如果fields没有规定默认格式的话,会把所有的数据都导出。
举例:
data:需要导出的数据参数,数组中存储对象,每一个对象就是导出的一行数据,data中的键对应fields中的值。
default-value:如果某一行中,没有fields中规定的默认数据的话,会导出默认值的值。如图中导出数据中的第三行,没有name、sex和phone,而设置的默认值为:“这一行这一列没有数据”,则导出的样式为:
- header、footer:规定导出信息页头页脚。
① 如果是一个字符串,则导出形式如下:
② 如果是一个字符串数组,则导出形式如下:
- worksheet:规定excel表格下方选项卡名称
- fetch、before-generate 、before-finish 这三个接收三个方法。
① fetch:点击下载按钮后立即执行,会在开始下载数据前执行。返回值为下载的数据。这里可以将函数定义为async函数,并在里面await暂停等待,请求数据,构造下载所需要的的数据。
② before-generate、before-finish这两个分别作用于开始下载之前和开始下载之后,可以用来控制显示下载进度条。
Vue:使用vue-json-excel导出数据到excel相关推荐
- C#利用Microsoft.Office.Interop.Excel导出数据到Excel
添加引用(VS2013位于C:\Program Files (x86)\Microsoft Visual Studio 12.0\Visual Studio Tools for Office\PIA\ ...
- 如何在 Vue 中导出数据至 Excel 表格 - 卡拉云
本文首发:<如何在 Vue 中导出数据至 Excel 表格 - 卡拉云> 我们经常需要在 Vue 搭建的后台管理系统里导出数据到 Excel / CSV ,方便我们将数据共享给其他同学或在 ...
- arcengine遍历属性表_【程序之坑】小程序云开发导出数据到excel表
本文解决了小程序云开发导出数据到excel的bug,并给出了分析的过程,同时简化了程序为一个云函数,一个本地函数,逻辑更简单.文章结尾给出了完整源代码 小程序云开发为没有服务器的小程序开发者提供了便利 ...
- JS 打印 data数据_小程序导出数据到excel表
小程序导出数据到excel表,借助云开发后台实现excel数据的保存 我们在开发小程序的过程中,可能会有这样的需求:如何将云数据库里的数据批量导出到excel表里? 这个需求可以用强大的云开发轻松实现 ...
- django 导出数据到excel表 导出excel表到目标路径及客户端下载
python导出excel表利用的是xlwt模块 学习的网址 大佬教学网址 导出数据到excel表 下面是代码 import os from xlwt import Workbook from inf ...
- phpAdmin6.0 后台导出数据到excel
phpAdmin6.0 后台导出数据到excel的坑之一: 成功导出数据到excel表,必须要满足两个条件: 1,前端代码: 这个后台的前端js部分,因为js接收后台返回的数据data必须是json的 ...
- 踩坑:EasyExcel导出excel导出数据为空
我再java代码中导出excel 导出数据为空如下图 问题探究 经过断点排查数据 发现数据取出来了 那么问题就不在取数据而在数据写入部分 经过排查翻阅博客发现了这么一句话 读写反射对象用到了Cglib ...
- java导出为excel文件_java导出数据到excel文件
有的时候,将一些有用的数据导出到excel是很有必要的.比如说,我现在在做一个学校的在线教学平台,有一个需求是:将学生成绩导出到excel文件中去. 那怎样实现用java导出数据到excel文件呢?? ...
- Excel向数据库插入数据和数据库向Excel导出数据
为了熟悉java里工作簿的相关知识点,所以找了"Excel向数据库插入数据和数据库向Excel导出数据"的功能来实现. 注意事项:1,mysql数据库: 2,需要导入的jar包有 ...
- 百度指数常见php框架,怎么导出数据到excel表格-如何将百度指数数据导出到Excel表格...
如何将百度指数数据导出到Excel表格 第一步:打开CAD.CAD命令行输入"Li"."选择对象"选需要提取坐标的多段线.回车. 第二步:将CAD文本框中的数据 ...
最新文章
- 人工智能和自然智能能否交汇?李飞飞对话斯坦福神经生物学教授Bill Newsome
- 设计模式-简单工厂模式
- 准备换工作了,有2家公司都有吸引的地方,帮忙抉择下
- 【Windows】如何判断当前鼠标是否按下左键或右键
- 拥抱对手 微软崛起或靠“云计算”业务
- 1、ASP.NET MVC入门到精通——新语法
- 关于oracle sql语句查询时表名和字段名要加双引号的问题
- 消息队列MQ如何保证消息的幂等性
- UMeditor上传图片无反应
- androidx86 9.0下载_Surface pro 安装 android x86/chrome OS
- 超简单的内网邮件服务器搭建(CentOS7 postfix+dovecot)
- Keil5最新注册机到2032
- Axure 画原型图
- 网页一直提示flash版本过低升级后还是不行
- 如何把自己打造成为一名金领架构师-基础篇(一)
- Android之高仿记事本、备忘录、便签
- [GXYCTF 2019]Ping Ping Ping
- 离开腾讯首创业,贾佳亚谈人工智能 2.0 革命,技术究竟该如何变革?
- 与贸易有关的知识产权协议 (转)
- 如何提高程序员的生产率 (2)