В AG Grid группировка строк, агрегация, древовидные данные, master/detail и экспорт в Excel относятся к Enterprise: для использования в продакшене нужна коммерческая лицензия, а без ключа таблица показывает водяной знак и выводит ошибку в консоль. В таблице данных Needless UI группировка с итогами, древовидные данные, подробности строк и экспорт в .xlsx доступны под лицензией MIT. Это руководство помогает перевести приложение Angular с одного на другое: что переносится, что нет и как меняется код.

Здесь используются названия из AG Grid 36. AG Grid 36 поддерживает Angular с 20 по 22; Needless UI нужен Angular 22.

Что вы получаете

AG Grid и таблица данных Needless UI
ВозможностьAG GridNeedless UI
Группировка строк с агрегатами и строкой итоговEnterpriseДа: несколько уровней, итоги — сумма, среднее, минимум, максимум, количество или функция
Древовидные данныеEnterpriseДа, из вложенных строк
Подробности под строкой (master/detail)EnterpriseДа: любой шаблон под строкой, в том числе другая таблица
Экспорт в ExcelEnterprise: стили, несколько листов, изображения и формулыДа: один лист с типизированными ячейками, форматами чисел и закреплённым заголовком с фильтрами
Меню столбца с выбором столбцовEnterpriseДа: сортировка, фильтрация, закрепление, перемещение, подгонка ширины и скрытие каждого столбца, а также показ и скрытие всех сразу
Сортировка по нескольким столбцам, быстрый поиск, пагинация, выбор строкCommunityДа
Фильтры столбцовCommunity: до двух условий, объединённых через AND или ORОдно условие на столбец
Фильтры по набору значений, составные и расширенныеEnterpriseЧастично: чекбоксы с вариантами столбца, а не со значениями из данных
Изменение ширины, перемещение, закрепление и скрытие столбцов, сохранение их состоянияCommunityДа
Виртуальная прокруткаCommunity: строки и столбцыСтроки
Редактирование ячеекCommunity; некоторые редакторы — EnterpriseДа, по типу столбца, с валидацией; без собственных редакторов и отмены правок
Сводные таблицы, встроенные диаграммыEnterpriseНет
Буфер обмена, выделение диапазонов ячеек, контекстное меню, строка состояния, боковая панельEnterpriseНет
Данные с сервераСерверная модель строк: Enterprise; загрузка блоками: CommunityСтраницы с вашего сервера, который сам сортирует, фильтрует и ищет; без группировки на сервере
Группы столбцов, перетаскивание строк, закреплённые строкиCommunityНет
ФреймворкиReact, Angular с 20 по 22, Vue и чистый JavaScriptAngular 22 и React 19

Что чему соответствует

Параметры AG Grid и их аналоги в Needless UI
AG GridТаблица Needless UI
<ag-grid-angular>, регистрация модулей, LicenseManager.setLicenseKey()<nui-grid>; без регистрации и ключа
rowData, columnDefs[(rows)], [columns]
field, headerNameid, header
valueGetter, valueFormatter, cellDataTypevalue, format (параметры Intl или функция), type
cellRendererШаблон nuiGridCell
pinned: 'left', hidepinned: 'start', hidden
rowGroup у столбца, groupDefaultExpanded[(groupBy)] — список id столбцов. Группы изначально раскрыты; [(collapsed)] сворачивает их.
aggFunc, grandTotalRowaggregate, totals
treeData с treeDataChildrenFieldchildren: (row) => row.children
masterDetail, detailCellRendererШаблон nuiGridDetail и [(details)]
quickFilterText[(search)]
rowSelection, getSelectedRows()selection и [(selected)] — ключи выбранных строк
pagination, paginationPageSize[(pageSize)], [(page)], pageSizes
getColumnState(), applyColumnState()[(columnState)]
exportDataAsExcel(), exportDataAsCsv()exportXlsx() возвращает Blob, а exportCsv() — текст
cellValueChanged, rowDoubleClicked(cellEdit), (rowActivate)
rowModelType: 'serverSide'mode="server", total, (queryChange)
localeText, enableRtllabels; направление справа налево берётся из dir страницы

Заказы, сгруппированные по странам, в двух вариантах

Задача: заказы, сгруппированные по странам, с итогом по каждой стране и общим итогом, экспорт в Excel, быстрый поиск и множественный выбор. С AG Grid 36, где для группировки, итогов и экспорта в Excel нужен Enterprise:

С таблицей Needless UI:

Есть несколько отличий. Выбор хранит ключи — id строк, поэтому он сохраняется, когда приходят новые данные; если нужны сами строки, найдите их по ключам. Группы изначально раскрыты. Подпись группы выводится в первом видимом столбце, а поиск идёт только по видимым столбцам, поэтому не скрывайте столбец группировки, если поиск должен находить его значения. И exportXlsx() возвращает файл, а не скачивает его: один лист с отфильтрованными и отсортированными строками, без строк групп.

Если вам нужно то, чего нет

Если ваше приложение зависит от сводных таблиц, диаграмм, буфера обмена и выделения диапазонов, группировки на сервере или групп столбцов, таблица Needless UI пока не заменит AG Grid. Откройте issue и опишите, что вам нужно. Для всего остального на странице таблицы данных есть все входные и выходные свойства и примеры.