vue前端渲染excel文档

安装xlsx

npm install xlsx


//对应字段的工作簿名称:
dataLoaderFormatter:{
	 'productInfos':'基本信息',
	 'productGradedInfos':'结构化信息',
  }

function onDownload(){
	let data = {
		productInfos:[
			{
				code:'123',
				type:'‘A,
				status:'完成'
			},	{
				code:'456',
				type:'‘B,
				status:'未完成'
			},
		],
		productGradedInfos:[
			{
				fullName:'全称1',
				name:'简称1'
			}
		]
	}
	formatterUpload(data)
	let objBox : any = []
	Object.keys(res.data).map((item:any)=>{
		objBox.push({
			sheetName : state.dataLoaderFormatter[item], // excel工作簿名称
			sheetData :XLSX.utils.json_to_sheet(res.data[item]) //放入工作簿的数据
		})
	})
	const wb = XLSX.utils.book_new() //创建excel
	objBox.map((item:any)=>{
		XLSX.utils.book_append_sheet(wb, item.sheetData, item.sheetName)
	})
	const now = moment().format('YYYYMMDDHHmmss');
	XLSX.writeFile(wb,`excel-${now}.xlsx`) 
}


// 将字段处理成中文表头
function formatterUpload(data:any){
	if(data.productInfos){
		let arr : any= []
		data.productInfos.map((item:any) => {
			arr.push({
				'代码':item.code,
				'类型':item.type,
				'状态':tem.status,
			})
		})
		data.productInfos = arr
	}
	if(data.productGradedInfos){
		let arr : any = []
		data.productGradedInfos.map((item:any) => {
			arr.push({
				'全称':item.fullName,
				'简称':item.name,
			})
		})
		data.productGradedInfos = arr
	}
		return data
	}

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值