【问题标题】:ui-grid export all filtered data to csvui-grid 将所有过滤后的数据导出到 csv
【发布时间】:2018-10-26 23:42:04
【问题描述】:

我有一些相当大的数据(约 100k 行),每列过滤并启用分页。这一切都在客户端显示和操作。

我希望能够导出所有过滤后的结果,而不仅仅是第一页中显示的内容。

解决方法是将分页大小更改为大于过滤结果的大小,但这似乎很麻烦。有没有更好的方法来做到这一点?

有人在https://github.com/angular-ui/ui-grid/issues/3954 中提出过这个问题,但从未得到答案。

【问题讨论】:

    标签: angularjs csv angular-ui-grid


    【解决方案1】:

    真的没有办法做到这一点。导出可见导出当前可见的行。分页通过更改可见行来工作 - 因此可见行是当前页面上的行。导出所有数据通过导出所有数据(无论是否可见)来工作,因此它会导出已过滤掉的行。

    理论上这可以实现,我们需要重新设置“invisibleReason”标志,我认为它仍然主要实现但未在代码中使用,然后在分页的那些行上将 visibleReason 设置为“分页”功能使隐形。然后我们可以让导出器手动处理这些行,并包括那些唯一不可见的原因是分页的行。

    这很麻烦,但有人可以提交具有该功能的 PR。

    【讨论】:

      【解决方案2】:

      我认为这应该可行。

      onRegisterApi: function (gridApi) {
      
                  gridApi.core.on.rowsVisibleChanged($scope, function () {
                      // match export enabled per row to visible property. This is in order to force export only of filtered data.
                      gridApi.grid.rows.forEach(function (row) {
                          row.exporterEnableExporting = row.visible;
                      });
                  });
              }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-01-03
        • 1970-01-01
        • 2020-10-04
        • 2017-03-09
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多