vue2使用xlsx导出表格数据保存为表格文件

首先安装依赖:

npm install xlsx file-saver

封装 exportExcel.js 文件

import FileSaver from 'file-saver';
import XLSX from 'xlsx';
export function exportToExcel(fliename, dom, that) {
  const XLSX = require('xlsx');
  console.log('XLSX', XLSX, FileSaver);
  // 使用 this.$nextTick 是在dom元素都渲染完成之后再执行document.querySelector('#oIncomTable')
  that.$nextTick(function() {
    // 设置导出的内容是否只做解析,不进行格式转换     false:要解析, true:不解析
    const xlsxParam = { raw: true };
    const wb = XLSX.utils.table_to_book(dom, xlsxParam);
    console.log(wb,"lkjdslkjflsdkaj");
    // 导出excel文件名
    let fileName = new Date().getTime() + '.xlsx';

    const wbout = XLSX.write(wb, {
      bookType: 'xlsx',
      bookSST: true,
      type: 'array'
    });
    try {
      // 下载保存文件
      FileSaver.saveAs(
        new Blob([wbout], { type: 'application/octet-stream' }),
        fileName
      );
    } catch (e) {
      if (typeof console !== 'undefined') {
        console.log(e, wbout);
      }
    }
    return wbout;
  });
}

然后在调用的地方使用它,使用方法如下:

<template>
    <el-table id="elTable" :data="tableData">
</template>
<script>
    import axios from 'axios'
    import { exportToExcel } from "@/utils/exportExcel.js";
    export default {
        data(){
            return{
                listQuery:{
                    page:1,
                    pageSize:10
                },
                tableData:[],
                total:0
            }
        },
        methods:{
            async exportData() {
                exportToExcel('',document.querySelector('#actJoinDetail'),this)
            }
        }
    }
</script>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Vue使用XLSX导出嵌套表格,您需要安装和导入XLSX插件。XLSX插件支持将数据导出为Excel文件。以下是一些步骤: 1. 安装XLSX插件: ``` npm install xlsx ``` 2. 在Vue组件中导入XLSX: ``` import XLSX from 'xlsx' ``` 3. 创建一个方法来导出表格: ``` exportTable() { const wb = XLSX.utils.book_new() // 创建一个名为“Sheet1”的工作表 const ws1 = XLSX.utils.json_to_sheet(this.tableData) // 创建一个名为“Sheet2”的工作表 const ws2 = XLSX.utils.json_to_sheet(this.nestedTableData) // 将工作表添加到工作簿中 XLSX.utils.book_append_sheet(wb, ws1, 'Sheet1') XLSX.utils.book_append_sheet(wb, ws2, 'Sheet2') // 将工作簿转换为二进制文件 const wbout = XLSX.write(wb, {bookType: 'xlsx', type: 'binary'}) // 下载Excel文件 saveAs(new Blob([s2ab(wbout)], {type: 'application/octet-stream'}), 'table.xlsx') } ``` 在这个例子中,我们创建了两个工作表(`ws1`和`ws2`),并将它们添加到工作簿中。我们使用`XLSX.write`方法将工作簿转换为二进制文件,然后将其下载到本地计算机。 4. 创建一个辅助函数`s2ab`,用于将字符串转换为ArrayBuffer: ``` function s2ab(s) { const buf = new ArrayBuffer(s.length) const view = new Uint8Array(buf) for (let i=0; i<s.length; i++) view[i] = s.charCodeAt(i) & 0xFF return buf } ``` 这个函数将字符串转换为ArrayBuffer,以便我们可以将其下载为Excel文件。 5. 添加一个按钮或其他触发器,以调用`exportTable`方法: ``` <button @click="exportTable">Export Table</button> ``` 以上是使用XLSX导出表格嵌套表格的基本步骤。您可以根据需要修改代码,以适应您的应用程序需求。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值