Vue.JS实现导出Ecxcel功能(vue-json-excel)

简介: Vue.JS实现导出Ecxcel功能(vue-json-excel)

在项目开发时免不了有时会用到表格数据导出Excel的功能,那么我们可以使用vue-json-excel来实现此功能,而且vue-json-excel使用起来非常简单。

官方地址:vue-json-excel - npm

主要参数:

Name Type Description Default
data Array

要导出的数据。

fields Object

要导出的 JSON 对象内的字段。如果未提供,则 JSON 中的所有属性都将被导出。

export-fields (exportFields) Object

用于解决使用变量字段的其他组件的问题,例如 vee-validate。exportFields 的工作方式与字段完全相同

type string

Mime 类型 [xls, csv]

xls
name string

要导出的文件名。

data.xls
header string/Array

数据的标题。可以是字符串(一个标题)或字符串数组(多个标题)。

title(deprecated) string/Array

与标头相同,保留标题是出于复古兼容性目的,但由于与 HTML5 标题属性冲突,不建议使用它。

footer string/Array

数据的页脚。可以是字符串(一个页脚)或字符串数组(多个页脚)。

default-value (defaultValue) string

当行没有字段值时用作后备。

''
worksheet string

工作表选项卡的名称。

'Sheet1'
fetch Function

下载前回调以获取数据,如果已设置,则在按下鼠标后和下载过程之前立即运行。

重要提示:仅在未定义数据道具时才有效。

before-generate Function

在生成/获取数据之前回调调用方法,例如:显示加载进度

before-finish Function

在下载框弹出之前回调调用方法,例如:隐藏加载进度

stringifyLongNum Boolean

stringify long number and decimal(解决丢失数字精度的问题),默认:false

escapeCsv Boolean

这会转义 CSV 值,以解决数字字段的一些 excel 问题。但这将用="和"包装每个 csv 数据,以避免您必须将此道具设置为 false。默认值:真

安装、配置

npm install vue-json-excel

image.png

接下里在main.js中进行全局配置

import JsonExcel from 'vue-json-excel'
Vue.component('downloadExcel', JsonExcel)

开始使用

运行界面

image.png

核心代码

我这边是前后端分离的项目,直接调用接口API来获取列表数据,然后返回。

注意:我这里因为自己的界面样式需要才这样改的,你开发时根据自己的界面情况来定义样式。

.export-excel {
  display: inline !important;
}
     <download-excel
            class="export-excel"//样式自己定义
            :fields="json_fields"
            :fetch = "fetchData"
            title="用户统计"
            name="统计列表.xls">
       <el-button type="primary" size="mini" round>
            导出Excel
         </el-button>
      </download-excel>
  export default {
     data() {
       return {
          json_fields: {
          姓名: "memberName", // 这里的表头字段可以自由指定
          会员号: "memberNum",
          性别: "memberSex",
          年龄: "memberAge",
          注册日期: "date",
          电话: "phone",
          审核状态: "status",
          地址: "memberAddr"
      },
      json_meta: [
        [
          {
            " key ": " charset ",
            " value ": " utf- 8 "
          }
        ]
      ]
   }
}
 methods: {
      async fetchData(){
      const response = await this.axios.post('/api/member/list');
      console.log(response);
      return response.data;
    }
}

效果如下图:

image.png


相关文章
|
JSON 自然语言处理 前端开发
【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡
【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡
863 72
【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡
|
存储 JavaScript 前端开发
基于 ant-design-vue 和 Vue 3 封装的功能强大的表格组件
VTable 是一个基于 ant-design-vue 和 Vue 3 的多功能表格组件,支持列自定义、排序、本地化存储、行选择等功能。它继承了 Ant-Design-Vue Table 的所有特性并加以扩展,提供开箱即用的高性能体验。示例包括基础表格、可选择表格和自定义列渲染等。
1328 6
|
前端开发 JavaScript
【Javascript系列】Terser除了压缩代码之外,还有优化代码的功能
Terser 是一款广泛应用于前端开发的 JavaScript 解析器和压缩工具,常被视为 Uglify-es 的替代品。它不仅能高效压缩代码体积,还能优化代码逻辑,提升可靠性。例如,在调试中发现,Terser 压缩后的代码对删除功能确认框逻辑进行了优化。常用参数包括 `compress`(启用压缩)、`mangle`(变量名混淆)和 `output`(输出配置)。更多高级用法可参考官方文档。
1185 11
|
JavaScript 前端开发 安全
盘点原生JS中目前最没用的几个功能API
在JavaScript的发展历程中,许多功能与API曾风光无限,但随着技术进步和语言演化,部分功能逐渐被淘汰或被更高效的替代方案取代。例如,`with`语句使代码作用域复杂、可读性差;`void`操作符功能冗余且影响可读性;`eval`函数存在严重安全风险和性能问题;`unescape`和`escape`函数已被`decodeURIComponent`和`encodeURIComponent`取代;`arguments`对象则被ES6的剩余参数语法替代。这些变化体现了JavaScript不断优化的趋势,开发者应紧跟技术步伐,学习新技能,适应新技术环境。
417 10
|
JavaScript 容器
带方向感知功能的js图片遮罩层插件
带方向感知功能的js图片遮罩层插件
|
JavaScript 前端开发
【Vue.js】监听器功能(EventListener)的实际应用【合集】
而此次问题的核心就在于,Vue实例化的时机过早,在其所依赖的DOM结构尚未完整构建完成时就已启动挂载流程,从而导致无法找到对应的DOM元素,最终致使计算器功能出现异常,输出框错误地显示“{{current}}”,并且按钮的交互功能也完全丧失响应。为了让代码结构更为清晰,便于后续的维护与管理工作,我打算把HTML文件中标签内的JavaScript代码迁移到外部的JS文件里,随后在HTML文件中对其进行引用。
425 8
|
存储 JavaScript 前端开发
介绍一下Vue的核心功能
介绍一下Vue的核心功能
666 17
|
数据可视化 数据处理 Python
使用Pandas实现Excel中的数据透视表功能
本文介绍了如何使用Python的Pandas库实现Excel中的数据透视表功能,包括环境准备、创建模拟销售数据、代码实现及输出等步骤。通过具体示例展示了按地区和销售员汇总销售额的不同方法,如求和、平均值、最大值等,帮助读者掌握Pandas在数据处理上的强大能力。
782 12
|
JavaScript 前端开发 容器
jQuery多功能滑块插件r-slider.js
r-slider.js是一款jQuery多功能滑块插件。使用该插件,可以制作出滑块、开关按钮、进度条、向导步骤等多种效果。
339 5
|
JSON 前端开发 JavaScript
聊聊 Go 语言中的 JSON 序列化与 js 前端交互类型失真问题
在Web开发中,后端与前端的数据交换常使用JSON格式,但JavaScript的数字类型仅能安全处理-2^53到2^53间的整数,超出此范围会导致精度丢失。本文通过Go语言的`encoding/json`包,介绍如何通过将大整数以字符串形式序列化和反序列化,有效解决这一问题,确保前后端数据交换的准确性。
644 4

热门文章

最新文章