Экспорт данных в CSV в режиме пагинации / сортировки / фильтрации на сервере

Я пытаюсь экспортировать данные ag-grid в CSV.

Проблема заключается в том, что он экспортирует только видимые данные ИЛИ данные в памяти, полученные от HTTP-вызова, при рассмотрении paginationPageSize, maxBlocksInCache, cacheBlockSize и т.д. в сетке. Не весь набор данных.

Я прошел по ссылкам ниже, но не мог получить большую помощь.

  1. [экспорт] Экспорт в CSV всех страниц на стороне клиента.
  2. экспорт данных agGrid

Есть ли способ, которым мы можем достичь этого? Или это вообще невозможно?

0 ответов

Вот как я решил это -

  1. получить все необходимые строки из источника данных
  2. клонировать объект gridapi
  3. возьмите кеш на стороне сервера из клонированного gridapi
  4. обработайте его так, чтобы он был заполнен вашими данными
  5. запустить экспорт в Excel метод на клонированной gridapi
  6. ...
  7. ПРИБЫЛЬ

const gapi = cloneDeep(this.gridApi); // клонировать gridApi

константные блоки = gapi['serverSideRowModel'].rootNode.childrenCache.blocks; // обозначение объекта для подавления частного предупреждения / err

  // 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);
Другие вопросы по тегам