Экспорт данных в CSV в режиме пагинации / сортировки / фильтрации на сервере
Я пытаюсь экспортировать данные ag-grid в CSV.
Проблема заключается в том, что он экспортирует только видимые данные ИЛИ данные в памяти, полученные от HTTP-вызова, при рассмотрении paginationPageSize
, maxBlocksInCache
, cacheBlockSize
и т.д. в сетке. Не весь набор данных.
Я прошел по ссылкам ниже, но не мог получить большую помощь.
Есть ли способ, которым мы можем достичь этого? Или это вообще невозможно?
0 ответов
Вот как я решил это -
- получить все необходимые строки из источника данных
- клонировать объект gridapi
- возьмите кеш на стороне сервера из клонированного gridapi
- обработайте его так, чтобы он был заполнен вашими данными
- запустить экспорт в Excel метод на клонированной gridapi
- ...
- ПРИБЫЛЬ
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);