vue 导出 指定字段Excel 和封装

```bash
main.js
import XLSX from 'xlsx'
Vue.prototype.XLSX = XLSX
事件执行
      var list = [
        {
          id: 142,
          uid: 12820382,
          name: "", 
          crypto: "COPE", 
          amount: 16419380925822,
          lockAmount: 0
          }
          ]
         let tableData = [
                ['id','uid', 'name','crypto', 'amount',"lockAmount"]//导出表头
            ] 
      
      // 表格表头
               list.forEach ((item,index)=> {
                  let rowData = []
                    //导出内容的字段
                   rowData = [
                        item.id,
                        item.uid,
                        item.name,
                        item.crypto,
                      item.amount,
                         item.lockAmount
                    ]
                     tableData.push(rowData)
               })
                 let ws = this.XLSX.utils.aoa_to_sheet(tableData)
                 let wb = this.XLSX.utils.book_new()
                this.XLSX.utils.book_append_sheet(wb, ws, '来访记录') // 工作簿名称
                 this.XLSX.writeFile(wb, 'xx.xlsx') // 保存的文件名

	 封装 事件
     方法 引入 import plus from "@/components/export.js";
      var list = [
        {
          id: 142,
          uid: 12820382,
          name: "", 
          crypto: "COPE", 
          amount: 16419380925822,
          lockAmount: 0
          }
          ]
       let tableData = [
           ['id','uid', 'name','crypto', 'amount',"lockAmount"]//导出表头
       ] 
       let tableDatatilte = 
           ['id','uid', 'name','crypto', 'amount',"lockAmount"]//导出字段
		参数 数据  title 要取得字段
       plus.a(list,tableData,tableDatatilte)
		
		封装的export.js文件
		import XLSX from 'xlsx'
		import Vue from 'vue'
		var elui = new Vue()
		import XLSX from 'xlsx'
		export default {
		exportTable(list,tableData,tableDatatilte){
		
		  elui.$alert('是否导出全部数据?', '导出表格', {
		        confirmButtonText: '确定',
		        distinguishCancelAndClose:true,
		        callback: action => {
		          if(action=='confirm'){
		           this.tableData(list,tableData,tableDatatilte)
		          }else{
		       
		          }
		        },
		      });
		    },
		    tableData(list,tableData,tableDatatilte) {
		        
		        list.forEach ((item)=> {
		            let rowData = []
		            //导出内容的字段
		            for(let i=0;i<tableDatatilte.length;i++){
		                rowData.push( item[tableDatatilte[i]])
		        }
		            tableData.push(rowData)
		        })
		       
		        console.log(tableData)
		         return
		        let ws = XLSX.utils.aoa_to_sheet(tableData)
		        let wb = XLSX.utils.book_new()
		        XLSX.utils.book_append_sheet(wb, ws, '来访记录') // 工作簿名称
		        XLSX.writeFile(wb, 'xx.xlsx') // 保存的文件名
		}
		}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值