首页 > 其他分享 >vue-json-excel 导出功能

vue-json-excel 导出功能

时间:2024-06-12 14:33:23浏览次数:12  
标签:vue return res excel 导出 value json

导出功能

1.在vue中使用以下命令安装excel插件

npm install vue-json-excel -S 

2.在main.js 文件中配置全局组件

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

3.在需要导出的.vue页面使用 <download-excel ></download-excel>

<download-excel style="display:inline-block;margin-left:10px;" :data="DetailsForm" :fields="json_fields"
				:header="title" :name="title" >
				<el-button class="order-btn" type="success" size="small" @click="download">导出</el-button>
			</download-excel>

4.在<script>中的data中,定义DetailsForm、json_fields、title,tableData是已有表格中存放数据的数组,对时间进行格式转换

data() {
	return {
	    DetailsForm:[],//存放表格容器
		json_fields:{
			"订单编号":"code",
			"下单人":"ordername",
			"所属单位":"company",
			"联系方式":"phone",
			"预定时间":"yudingTime",
			"订单总价格":"price",
			"汇总状态":"huizongStatus",
		},//表头
		title:'首客生鲜订单列表数据',//标题
    }
}
// 导出
			download(){
				let arr = [...this.tableData]
				arr.forEach(res =>{
					res.yudingTime = dayjs(res.yudingTime).format('YYYY-MM-DD HH:mm:ss');
					res.huizongStatus = res.huizongStatus ==1?'未汇总':'已汇总';
				})
				this.DetailsForm = arr;
			},

ps:如果数据存在过长导出文件打开后无法全部显示,在相应位置加上以下代码

json_fields:{
					"订单编号":{
						field:"code",
						callback:value=>{
							return '&nbsp;'+value
						}
					},
					"下单人":"ordername",
					"所属单位":"company",
					"联系方式":{
						field:"phone",
						callback:value=>{
							return '&nbsp;'+value
						}
					},
					"预定时间":{
						field:"yudingTime",
						callback:value=>{
							return '&nbsp;'+value
						}
					},
					"订单总价格":"price",
					"汇总状态":"huizongStatus",
				},//表头

标签:vue,return,res,excel,导出,value,json
From: https://blog.csdn.net/qq_55961367/article/details/139523103

相关文章

  • Vue配置项之生命周期(组件生命周期)
    LifecycleHooks首先说明一下,本人是前端小学生级别的菜鸡,吐槽的话请口下留情,在评论区指出错误或者补充不足,我会很喜欢,互喷不会进步,相互指点才会。。。。谢谢大家啦目录LifecycleHooks目录创建阶段(CreationPhase)beforeCreate(创建前):created(创建后):挂载阶段(MountingPha......
  • Vue全局组件
    全局组件首先说明一下,本人是前端小学生级别的菜鸡,吐槽的话请口下留情,在评论区指出错误或者补充不足,我会很喜欢,互喷不会进步,相互指点才会。。。。谢谢大家啦目录全局组件目录内置模板引入模板优点场景缺点......
  • Vue3——ref定义响应式数据
    ref作用ref:定义响应式变量,既可定义基础类型数据,也可以定义对象类型。语法格式:lettemp=ref(初始值)返回值:temp是一个RefImpl的实例对象,简称ref对象,ref对象的value属性是响应式。注意点:JS/TS中使用变量temp操作数据时,需要temp.value,但是在模板中不需要temp.value,直接......
  • vue3 dom ref 实现,子组件ref实现,defineExpose暴露子组件作用域
    示例代码App.vue<template><header><imgalt="Vuelogo"class="logo"src="@/assets/logo.svg"width="125"height="125"/><divclass="wrapper"><HelloWorld......
  • 在Vue3中高级前端是这样给按钮添加loading效果的
    前言一个页面有多个按钮,每个按钮都要添加loading效果,高级前端是如何在Vue3控制按钮是否显示loading效果的呢?普通前端我们先来看看初级普通前端平常是怎么给按钮添加loading效果的:<scriptsetup>import{ref}from'vue'constasyncFn=()=>newPromise(resolve=>......
  • excel中加水印以及二维码
    1.如何给excel添加二维码其实二维码就是一张图片,把生成的二维码作为图片返回给excel对应的栏位就可以达到目的,代码如下:点击查看代码publicBitmapGetBitmap(stringcode,ExcelPackagepackage){varsheet=package.Workbook.Worksheets[0];//创建QR码生成器......
  • 升级babel7后,直接引用element-ui中没有暴露出来的组件image-viewer.vue导致的打包错误
    问题&解决方案升级babel7后,原先代码中像这样直接引用element-ui组件的地方,出现了报错Moduleparsefailed:Unexpectedtoken(1:0)Youmayneedanappropriateloadertohandlethisfiletype.经过一番排查,我发现问题出在element-ui并未直接暴露该组件,导致直接引用时......
  • vue tree展开自动获取焦点
     打开弹窗设置默认焦点html代码重点:设置 node-key="id"  ref="table_dedh"<el-tree:data="dedhtreeData"node-key="id"ref="table_dedh":props="{children:'children',label:'label'}"@no......
  • ThingsBoard前端Vue版本开源啦!!!!
    ThingsVue......
  • Excel甘特
    1、数据 2、全选日期(从8到22的所有日期) 3、为全选日期新增规则 规则1(当前日期>=开始日期,当前日期<=结束日期) 公式里面$符号去掉格式如下 格式化如下  点确定如下 规则2(超过当前日期) ......