在服务器分页/排序/过滤模式下将数据导出为CSV

Par*_*osh 7 ag-grid ag-grid-ng2

我正在尝试将数据导出为CSV.

问题是,它出口仅可见的数据从HTTP调用收到的内存数据,同时考虑到paginationPageSize,maxBlocksInCache,cacheBlockSize等在网格中.不是整个数据集.

我通过以下链接,但无法获得太多帮助.

  1. [导出]导出到CSV客户端分页中的所有页面
  2. agGrid数据导出

有什么方法可以实现这个目标吗?或者这完全不可能?

Ser*_*Sob 2

这就是我解决这个问题的方法 -

  1. 从数据源中获取您需要的所有行
  2. 克隆 gridapi 对象
  3. 从克隆的 gridapi 中获取服务器端缓存
  4. 对其进行处理,使其充满您获取的数据
  5. 在克隆的 gridapi 上运行导出到 excel 方法
  6. ...
  7. 利润

constgapi=cloneDeep(this.gridApi); // 克隆 gridApi

const 块=gapi['serverSideRowModel'].rootNode.childrenCache.blocks; // 抑制私有警告/错误的对象表示法

  // swap rows cache with fetched data
  for (let i = 0, j = 0; i < Math.ceil(results.length/this.paginationPageSize); i++) {
    // we alter relevant block, or if it is not loaded yet we clone 1st one and alter it
    const block = blocks[i] || cloneDeep(blocks[0]);  
    block.rowNodes.forEach(n => n.data = results[j++]);
    blocks[i] = block;
  }
  gapi['serverSideRowModel'].rootNode.childrenCache.blocks = blocks;

  gapi.exportDataAsExcel(params);
Run Code Online (Sandbox Code Playgroud)