You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Tabulator的getData()能否返回与屏幕展示顺序一致的行数据?

适配WYSIWYG导出需求的解决方案

针对分组/树形表格激活排序后getData('active')返回行顺序与渲染结果不一致的问题,可直接调用表格实例的渲染行获取接口,无需自行重算排序逻辑:

  • 调用table.getRenderedRows(true)获取全量已渲染行实例,入参true表示返回所有符合当前筛选、排序、分组、树形展开规则的行,不受滚动可视范围限制,返回的行顺序与屏幕展示完全一致
  • 遍历行实例数组,逐行调用getData()方法即可得到和屏幕展示顺序1:1匹配的原始数据数组,示例代码如下:
// 生成WYSIWYG格式的导出数据
const exportData = table.getRenderedRows(true).map(row => row.getData())
// 直接使用exportData生成XLSX文件即可

适用场景说明

  • 同时兼容普通表格、groupBy分组表格、dataTree树形表格三类场景
  • 自动同步当前表格已生效的所有筛选规则、自定义排序规则、分组折叠/展开状态、树形节点折叠/展开状态
  • 无需感知表格列数、排序器类型,不需要额外实现排序计算逻辑

如果导出需要包含分组标题行,可额外调用table.getGroupHeaders()方法获取分组头部信息,按渲染顺序插入到导出数据对应位置即可。

内容的提问来源于stack exchange,提问作者Scott

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 05:54:03