ui-grid将所有过滤后的数据导出到csv

时间:2015-12-09 23:08:46

标签: angularjs csv angular-ui-grid

我有一些相当大的数据(~100k行),每列都有过滤并启用了分页。它全部显示和操纵客户端。

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

解决方法是将分页大小更改为大于结果过滤结果的大小,但这看起来很麻烦。有更好的方法吗?

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

2 个答案:

答案 0 :(得分:0)

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

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

它有很多摆弄,但似乎有人可以提交具有该功能的PR。

答案 1 :(得分:0)

我认为这应该可行。

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;
                });
            });
        }