vue 导出Excel/zip

1 安装依赖 

npm i jszip -S  //安装zip

  

npm install -S file-saver xlsx

npm install -D script-loader  

2 再项目中创建文件夹 src 下创建(vendor)

 

放入 两个文件 里面放置两个文件Blob.js和 Export2Excel.js

Export2Zip.js (zip)

 

3. 导入 export2Excel,

  

再build 文件夹下 webpack.base.conf.js

  

'vendor': path.resolve(__dirname, '../src/vendor')

 4. 调用

  

导出excel

zip_down(){
        this.downloadLoading = true
        require.ensure([], () => {
          const { export_json_to_excel } = require('@/vendor/Export2Excel')
          const tHeader = ['序号']
          const filterVal = ['name']
          const list = this.tableData   //导入数据
          const data = this.formatJson(filterVal, list)
          export_json_to_excel(tHeader, data, '列表文本', '压缩文本')
          this.downloadLoading = false
        })
      },
      formatJson(filterVal, jsonData) {
        return jsonData.map(v => filterVal.map(j => v[j]))
      }

  

导出 zip

 

 

zip_down(){
        this.downloadLoading = true
        require.ensure([], () => {
          const { export_txt_to_zip } = require('@/vendor/Export2Zip')
          const tHeader = ['序号']
          const filterVal = ['name']
          const list = this.tableData
          const data = this.formatJson(filterVal, list)
          export_txt_to_zip(tHeader, data, '列表文本', '压缩文本')
          this.downloadLoading = false
        })
      },
      formatJson(filterVal, jsonData) {
        return jsonData.map(v => filterVal.map(j => v[j]))
      }

  

Export2Zip.js 文件

/* eslint-disable */
require('script-loader!file-saver');

import JSZip from 'jszip'

export function export_txt_to_zip(th, jsonData, txtName, zipName) {
  const zip = new JSZip()
  const txt_name = txtName || '文本'
  const zip_name = zipName || '压缩包'
  const data = jsonData
  let txtData = `${th}\r\n`
  data.forEach((row) => {
    let tempStr = ''
    tempStr = row.toString()
    txtData += `${tempStr}\r\n`
  })
  zip.file(`${txt_name}.txt`, txtData)
  zip.generateAsync({type:"blob"}).then((blob) => {
    saveAs(blob, `${zip_name}.zip`)
  }, (err) => {
    alert('导出失败')
  })
}

 

 

 

转载于:https://www.cnblogs.com/songrimin/p/7941115.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值