el-table导出Excel数据(要求是一个完整的Excel不受el-pagination影响)

问题描述

el-table数据有500条,导出的Excel表格也应该有500条,页面上有el-pagination分页,每一页显示20条,有25页,导出的Excel应该是500条,而不是当前页20条(导出一个完整的,而不是一个分隔的table)

问题出现的环境背景及自己尝试过哪些方法

导出的Excel要求是一个完整的而不是分隔的

相关代码

// 请把代码文本粘贴到下方(请勿用图片代替代码)
<el-table :data="tableData.slice((currpage - 1) pagesize, currpage pagesize)" border style="width: 100%" v-show="this.table.length"

                      :header-row-style="{fontSize: '14px'}"
                      :header-cell-style="{'height': '30px', 'padding':'0px'}"
                      :row-style="{fontSize: '12px', padding: '0px'}"
                      size="mini"
                      id="table"
            >
            <el-pagination background layout="prev, pager, next, sizes, total, jumper"
                           :page-sizes="[20, 30, 50]"
                           :page-size="pagesize"
                           :total="tableData.length"
                           @current-change="handleCurrentChange"
                           @size-change="handleSizeChange"
                           v-show="tableData.length"
            ></el-pagination>
   
  import FileSaver from 'file-saver'
  import XLSX from 'xlsx'         
  exTable () {
    this.exportExcel()
  },
  exportExcel () {
    var wb = XLSX.utils.table_to_book(document.querySelector('#table'))
    var wbout = XLSX.write(wb, { bookType: 'xlsx', bookSST: true, type: 'array' })
    try{
      FileSaver.saveAs(new Blob([wbout], { type: 'application/octet-stream' }), 'sheetjs.xlsx')
    } catch(e) {
      if (typeof console !== 'undefined') console.log(e, wbout)
    }
    return wbout
  }

你期待的结果是什么?实际看到的错误信息又是什么?

阅读 3.5k
3 个回答

如果有分页的存在,导出功能是后端同学来实现的,前端每次请求只会拉取当前页的数据。无法获取全部数据

500条数据应该不是接口一次返回的吧,做了分页,导出完整表格只能服务端实现了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题