仅下载 Tabulator table 中选定的行?

download only selected rows in Tabulator table?

正在寻找有关如何下载仅包含制表符中所选行的 (CSV) 的指导table。

我正在使用这样的行选择器:

{title: "Selector", formatter: "rowSelection", titleFormatter: "rowSelection", align: "center", headerSort: false, cellClick: function (e, cell) {
   cell.getRow().toggleSelect();
}}
  1. 我没有找到关于此的示例或问题,文档(虽然不错)也没有揭示简单的方法。

  2. 除了 table 对象之外,我没有找到 .download 方法作为任何对象的一部分。

  3. 我尝试通过选择过滤 table,然后下载,然后取消过滤。过滤器似乎适用于基础数据字段,但未找到此选定列,尽管我想我可以考虑在代码中为此管理一个数据字段。

  4. 我考虑过创建第二个 table 的方法,将选定的行复制到它上面,然后在销毁它之前下载它,但没有尝试过。

  5. 我考虑过创建自定义下载功能的方法,但没有尝试过。

有什么建议吗?

恐怕这目前还不能作为内置功能,但这将在 4.7 版本中出现。

但是您过滤 table 的方法是一个很好的方法,您需要使用 rowSelectedrowDeselected 回调以在行数据上切换 属性:

var table = new Tabulator("#example-table", {
    rowSelected:function(row){
        row.update({selected:true});
    },
     rowDeselected:function(row){
        row.update({selected:false});
    },
});

然后按此值过滤 table:

table.setFilter("selected", "=", true);

可能 && 已测试

不幸的是,没有本地函数可以执行此操作,但我找到了实现此功能的变通方法。

短篇小说

  1. 创建另一个隐藏的 table div(比方说 table2)
  2. Select 来自 table1 的行(通过单击或按功能)
  3. 通过
  4. 获取Select编辑的数据

var 行数 = table.getData("已选择")

  1. 初始化 table2 将行作为数据传递(按照列的 SoP)
  2. 将这个隐藏的 table 传递给 CSV/PDF 函数以下载 CSV/PDF。

//您可以将类型更改为 CSV 以进行 CSV 下载

table2.download("pdf", "data.pdf", { orientation: "portrait", //设置页面方向为纵向 title: "Example Report", //给报告添加标题 });