11

我正在尝试将数据导出到 CSV。

问题是,它只导出可见数据从 HTTP 调用接收的内存中数据,同时考虑网格中的 ,paginationPageSize等。不是整个数据集。maxBlocksInCachecacheBlockSize

我浏览了以下链接,但没有得到太多帮助。

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

我们有什么办法可以做到这一点?或者这完全不可能?

4

1 回答 1

1

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

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

常量 gapi = cloneDeep(this.gridApi); // 克隆 gridApi

常量块 = 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);
于 2020-06-09T16:35:45.097 回答