O agrupamento de linhas, a agregação, os dados em árvore, o master/detail e a exportação para Excel do AG Grid são funcionalidades Enterprise: o uso em produção exige uma licença comercial e, sem chave, a grade mostra uma marca d’água e registra um erro no console. A grade de dados do Needless UI oferece agrupamento com totais, dados em árvore, detalhes da linha e exportação para .xlsx com licença MIT. Este guia leva uma aplicação Angular de um para o outro: o que se aproveita, o que não se aproveita e como o código muda.

Os nomes usados são os do AG Grid 36. O AG Grid 36 suporta do Angular 20 ao 22; o Needless UI precisa do Angular 22.

O que você ganha

O AG Grid e a grade de dados do Needless UI
FuncionalidadeAG GridNeedless UI
Agrupamento de linhas, com agregados e uma linha de totaisEnterpriseSim: vários níveis, com soma, média, mínimo, máximo, contagem ou uma função
Dados em árvoreEnterpriseSim, a partir de linhas aninhadas
Detalhes sob uma linha (master/detail)EnterpriseSim: qualquer template sob a linha, inclusive outra grade
Exportação para ExcelEnterprise: estilos, várias planilhas, imagens e fórmulasSim: uma planilha de células tipadas, com formatos de número e um cabeçalho congelado com filtros
Menu de coluna com seletor de colunasEnterpriseSim: ordenar, filtrar, fixar, mover, ajustar ao conteúdo e ocultar cada coluna, e mostrar ou ocultar todas
Ordenação por várias colunas, busca rápida, paginação, seleção de linhasCommunitySim
Filtros de colunaCommunity: até duas condições, unidas por AND ou ORUma condição por coluna
Filtros de conjunto, múltiplos e avançadosEnterpriseEm parte: caixas de seleção para as opções da coluna, não para os valores presentes nos dados
Redimensionar, mover, fixar e ocultar colunas, e salvar o estado delasCommunitySim
Rolagem virtualCommunity: linhas e colunasLinhas
Edição de célulasCommunity; alguns editores são EnterpriseSim, por tipo de coluna, com validação; sem editores personalizados e sem desfazer
Pivotagem, gráficos integradosEnterpriseNão
Área de transferência, seleção de intervalos de células, menu de contexto, barra de status, barra lateralEnterpriseNão
Dados de um servidorModelo de linhas do lado do servidor: Enterprise; carregamento em blocos: CommunityPáginas do seu servidor, que ordena, filtra e busca; sem agrupamento no servidor
Grupos de colunas, arrastar linhas, linhas fixadasCommunityNão
FrameworksReact, Angular 20 a 22, Vue e JavaScript puroAngular 22 e React 19

O que corresponde a quê

Opções do AG Grid e seus equivalentes no Needless UI
AG GridGrade do Needless UI
<ag-grid-angular>, registro de módulos, LicenseManager.setLicenseKey()<nui-grid>; sem registro e sem chave
rowData, columnDefs[(rows)], [columns]
field, headerNameid, header
valueGetter, valueFormatter, cellDataTypevalue, format (opções de Intl ou uma função), type
cellRendererUm template nuiGridCell
pinned: 'left', hidepinned: 'start', hidden
rowGroup da coluna, groupDefaultExpanded[(groupBy)], uma lista de ids de coluna. Os grupos começam abertos; [(collapsed)] os fecha.
aggFunc, grandTotalRowaggregate, totals
treeData com treeDataChildrenFieldchildren: (row) => row.children
masterDetail, detailCellRendererUm template nuiGridDetail e [(details)]
quickFilterText[(search)]
rowSelection, getSelectedRows()selection e [(selected)]: as chaves das linhas selecionadas
pagination, paginationPageSize[(pageSize)], [(page)], pageSizes
getColumnState(), applyColumnState()[(columnState)]
exportDataAsExcel(), exportDataAsCsv()exportXlsx() retorna um Blob, e exportCsv(), texto
cellValueChanged, rowDoubleClicked(cellEdit), (rowActivate)
rowModelType: 'serverSide'mode="server", total, (queryChange)
localeText, enableRtllabels; a direção da direita para a esquerda segue o dir da página

Pedidos agrupados por país, das duas formas

A tarefa: pedidos agrupados por país, com um total por país e um total geral, exportação para Excel, busca rápida e seleção múltipla. Com o AG Grid 36, em que o agrupamento, os totais e a exportação para Excel exigem o Enterprise:

Com a grade do Needless UI:

Algumas coisas funcionam de outro jeito. A seleção guarda chaves, os ids das linhas, então ela sobrevive a dados novos; quando precisar das próprias linhas, mapeie as chaves de volta para elas. Os grupos começam abertos. O rótulo de um grupo fica na primeira coluna visível, e a busca só lê colunas visíveis, então mantenha a coluna agrupada à mostra se a busca tiver de encontrar os valores dela. Além disso, exportXlsx() retorna o arquivo em vez de baixá-lo: uma planilha com as linhas filtradas e ordenadas, sem as linhas de grupo.

Se você precisa do que falta

Se a sua aplicação depende de pivotagem, gráficos, área de transferência e seleção de intervalos, agrupamento no servidor ou grupos de colunas, a grade do Needless UI ainda não substitui o AG Grid. Abra uma issue com o que você precisa. Para todo o resto, a página da grade de dados tem todos os inputs, outputs e exemplos.