iview导出部分数据_vue中的iviewUI导出1W条列表数据每次只导出2000条的逻辑
时间: 2023-12-10 13:37:52 浏览: 73
可以通过以下逻辑实现每次只导出2000条数据的功能:
1. 在页面中添加一个“导出”按钮,点击该按钮触发导出操作。
2. 在导出操作中,先获取要导出的数据总条数。
3. 计算需要分几次导出,每次导出2000条数据。
4. 在循环中,每次取出2000条数据,生成对应的excel文件,并进行下载。
以下是示例代码:
```javascript
// 导出按钮点击事件
exportBtnClick() {
// 获取要导出的数据总条数
const total = this.tableData.length;
// 计算需要分几次导出,每次导出2000条数据
const count = Math.ceil(total / 2000);
// 循环导出数据
for(let i = 0; i < count; i++) {
// 计算本次需要导出的数据范围
const start = i * 2000;
const end = (i + 1) * 2000 > total ? total : (i + 1) * 2000;
const data = this.tableData.slice(start, end);
// 使用iview自带的Table2Excel插件生成excel文件
const tHeader = ['列1', '列2', '列3']; // 表头数据
const filterVal = ['prop1', 'prop2', 'prop3']; // 导出的属性名
const list = data.map(item => {
return {
prop1: item.prop1,
prop2: item.prop2,
prop3: item.prop3
}
}); // 导出的数据
require('@/vendor/Export2Excel').export_json_to_excel({
header: tHeader,
data: list,
filename: '列表数据' + (i + 1) + '.xlsx'
});
}
}
```
需要注意的是,上述示例代码中使用了iview自带的Table2Excel插件,该插件在导出数据时会将表格的筛选、排序等操作也一并导出,如果不需要这些操作,可以考虑使用其他库或手动生成excel文件。
阅读全文