关于vue+element的table数据导出为excel的问题。

问题描述

我现在需要把展示的table数据导出为excel,但是遇到了问题,我一共11条数据,分页了,每页展示10条数据,但是导出为excel过后还是只有10条,数据并没有导出完,还有就是为什么重复了三遍,不知道为什么,,请大神看一下是什么问题。。。

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

我在网上找了一个办法说是在导出之前把每页数据条数变大,然后再导出,之后再把每页数据条数变回去,但是没效果,附上这个办法的链接 https://blog.csdn.net/oStormy... 我的没效果,不知道你们是怎么解决的

相关代码

// 请把代码文本粘贴到下方(请勿用图片代替代码)
先是点击事件
<el-button type="primary" @click="fileSaver()">{{$t('public.fileSaver')}}</el-button>

下面是方法
/导出table数据为excel/

      fileSaver(){
          this.$nextTick(function () {
              let wb = XLSX.utils.table_to_book(document.querySelector('.tb-edit'));
              let wbout = XLSX.write(wb, { bookType: 'xlsx', bookSST: true, type: 'array' });
              try {
                FileSaver.saveAs(new Blob([wbout], { type: 'application/octet-stream' }), '学生信息.xlsx')
              } catch (e) {
                if (typeof console !== 'undefined') console.log(e, wbout)
              }
              return wbout;
          });
      },

然后附上问题截图:
先是table数据(一共11条数据,还有一条分页了):

clipboard.png

然后是导出为excel的表格(有问题):

clipboard.png

请各位帮忙看一下

阅读 8k
5 个回答

导出全部数据绑定表格的data就 可以吧,我之前就是这样做的。

clipboard.png

这个插件

这不是按照你的意愿导出的吗,你的插件是找页面上渲染的table数据,本来就只有10条;还有一条,根本没有在页面中;

后台分页是不能导出全部的,至于为什么执行了三次你可以断点调试,导出excel我倒是这样做过,就是后台给出全部json数据,然后再根据数据生成excel下载

新手上路,请多包涵

请问一下,你是怎么处理的导出内容重复的???
clipboard.png

新手上路,请多包涵
推荐问题