VUE中导出Excel功能

VUE中导出Excel功能

1、下载依赖
cnpm install file-saver@1.3.3 ---------用来保存文件
cnpm install --save-dev script-loader
cnpm install jszip ---------导出为压缩文件‘
cnpm install xlsx ---------excelc=处理库

2、创建Blog.js、Export2Excel.js、Export2Zip.js

3、触发事件
/**

  • excel导出
    */
    exportTable () {
    this.getExpportData()
    },

/**

  • 对导出数据格式处理
    */
    formatJson (filterVal, jsonData) {
    return jsonData.map(v => filterVal.map(j => v[j]))
    },

/**

  • 导出的列表数据
    /
    getExpportData: function () {
    require.ensure([], () => {
    /
    eslint-disable /
    // 这里的径路要修改正确
    const { export_json_to_excel } = require(’…/…/vendor/Export2Excel’)
    /
    eslint-enable */
    // 导出的表头
    const tHeader = [‘日期’, ‘代理数’, ‘疑似代理数’, ‘在线数’, ‘处理数’]
    // 导出表头要对应的数据
    const filterVal = [‘date’, ‘Many_agents’, ‘connection’, ‘Online’, ‘Processing’]
    // 如果对导出的数据没有可处理的需求,把下面的handleDataList换成res.data.list即可,删掉上面相应的代码
    const data = this.formatJson(filterVal, this.tableData)
    // this.DefaultData.formatLongDate.getNow()自己写的一个获取当前时间,方便查找导出后的文件。根据需求自行可处理。
    export_json_to_excel(tHeader, data, ‘实时数据’)
    this.$message({
    message: ‘导出成功’,
    duration: 2000,
    type: ‘success’
    })
    })
    }

处理数据函数:
formatJson(filterVal, jsonData) {
return jsonData.map(v => {
filterVal.map(j => {
return v[j]
})
})
}

2、import FileSaver from ‘file-saver’
import XLSX from ‘xlsx’

const name = ‘haha’
var wb = XLSX.utils.table_to_book(document.querySelector(’.tableDate’))
/* get binary string as output */
var wbout = XLSX.write(wb, {
bookType: ‘xlsx’,
bookSST: true,
type: ‘array’
})
try {
// name+’.xlsx’表示导出的excel表格名字
FileSaver.saveAs(
new Blob([wbout], { type: ‘application/octet-stream’ }),
name + ‘.xlsx’
)
} catch (e) {
if (typeof console !== ‘undefined’) console.log(e, wbout)
}
return wbout

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 || ‘file’

const zip_name = zipName || ‘file’

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((bl

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue 3 实现导出 Excel 功能,可以借助一些库来简化操作。以下是一个基本的示例代码: 首先,安装 `xlsx` 和 `file-saver` 库,这两个库分别用于生成 Excel 文件和保存文件到本地。 ```bash npm install xlsx file-saver ``` 然后,在你的组件引入这两个库,并编写导出 Excel 的方法: ```vue <template> <div> <button @click="exportExcel">导出 Excel</button> </div> </template> <script> import { writeFile } from 'xlsx'; import { saveAs } from 'file-saver'; export default { methods: { exportExcel() { // 创建一个工作簿对象 const wb = XLSX.utils.book_new(); // 创建一个工作表对象 const ws = XLSX.utils.json_to_sheet(this.data); // 将工作表添加到工作簿 XLSX.utils.book_append_sheet(wb, ws, 'Sheet1'); // 将工作簿转换成二进制数据流 const wbout = writeFile(wb, { bookType: 'xlsx', type: 'array' }); // 创建 Blob 对象 const blob = new Blob([wbout], { type: 'application/octet-stream' }); // 保存文件到本地 saveAs(blob, 'data.xlsx'); } } } </script> ``` 上述代码,`this.data` 是你要导出的数据,可以是一个数组或者对象。当点击“导出 Excel”按钮时,将数据转换成 Excel 文件,并保存到本地。 需要注意的是,这里使用的 `xlsx` 库是基于 JavaScript 实现的,所以导出Excel 文件比较简单,不支持复杂的样式和公式。如果你需要更多的功能,可以考虑其他第三方库或服务。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值