Il raggruppamento delle righe, l’aggregazione, i dati ad albero, il master/detail e l’esportazione in Excel di AG Grid sono funzionalità Enterprise: l’uso in produzione richiede una licenza commerciale e, senza chiave, la griglia mostra una filigrana e scrive un errore nella console. La griglia dati di Needless UI offre raggruppamento con totali, dati ad albero, dettagli delle righe ed esportazione in .xlsx con licenza MIT. Questa guida porta un’app Angular dall’una all’altra: cosa passa così com’è, cosa no e come cambia il codice.

La guida usa i nomi di AG Grid 36. AG Grid 36 supporta da Angular 20 ad Angular 22; Needless UI richiede Angular 22.

Cosa ottieni

AG Grid e la griglia dati di Needless UI
FunzionalitàAG GridNeedless UI
Raggruppamento delle righe, con aggregati e una riga dei totaliEnterpriseSì: su più livelli, con somma, media, minimo, massimo, conteggio o una funzione
Dati ad alberoEnterpriseSì, da righe annidate
Dettagli sotto una riga (master/detail)EnterpriseSì: qualsiasi template sotto la riga, anche un’altra griglia
Esportazione in ExcelEnterprise: stili, più fogli, immagini e formuleSì: un solo foglio di celle tipizzate, con formati numerici e un’intestazione bloccata con i filtri
Menu di colonna con selettore delle colonneEnterpriseSì: ordinare, filtrare, bloccare, spostare, adattare e nascondere ogni colonna, e mostrarle o nasconderle tutte
Ordinamento su più colonne, ricerca rapida, paginazione, selezione delle righeCommunitySì
Filtri per colonnaCommunity: fino a due condizioni, unite da AND o ORUna condizione per colonna
Filtri set, multi e avanzatiEnterpriseIn parte: una checklist delle opzioni di una colonna, non dei valori presenti nei dati
Ridimensionare, spostare, bloccare e nascondere le colonne, e salvarne lo statoCommunitySì
Scorrimento virtualeCommunity: righe e colonneRighe
Modifica delle celleCommunity; alcuni editor sono EnterpriseSì, con editor in base al tipo di colonna e validazione; niente editor personalizzati né annullamento delle modifiche
Pivot, grafici integratiEnterpriseNo
Appunti, selezione di intervalli di celle, menu contestuale, barra di stato, barra lateraleEnterpriseNo
Dati da un serverModello di righe lato server: Enterprise; caricamento a blocchi: CommunityPagine dal tuo server, che applica ordinamento, filtri e ricerca; niente raggruppamento sul server
Gruppi di colonne, trascinamento delle righe, righe bloccateCommunityNo
FrameworkReact, da Angular 20 a 22, Vue e JavaScript puroAngular 22 e React 19

Cosa corrisponde a cosa

Le opzioni di AG Grid e i loro equivalenti in Needless UI
AG GridGriglia di Needless UI
<ag-grid-angular>, registrazione dei moduli, LicenseManager.setLicenseKey()<nui-grid>; niente da registrare e nessuna chiave
rowData, columnDefs[(rows)], [columns]
field, headerNameid, header
valueGetter, valueFormatter, cellDataTypevalue, format (opzioni di Intl o una funzione), type
cellRendererUn template nuiGridCell
pinned: 'left', hidepinned: 'start', hidden
rowGroup nelle colonne, groupDefaultExpanded[(groupBy)], un elenco di id di colonna. I gruppi sono aperti all’inizio; [(collapsed)] li chiude.
aggFunc, grandTotalRowaggregate, totals
treeData con treeDataChildrenFieldchildren: (row) => row.children
masterDetail, detailCellRendererUn template nuiGridDetail e [(details)]
quickFilterText[(search)]
rowSelection, getSelectedRows()selection e [(selected)]: le chiavi delle righe selezionate
pagination, paginationPageSize[(pageSize)], [(page)], pageSizes
getColumnState(), applyColumnState()[(columnState)]
exportDataAsExcel(), exportDataAsCsv()exportXlsx() restituisce un Blob e exportCsv() del testo
cellValueChanged, rowDoubleClicked(cellEdit), (rowActivate)
rowModelType: 'serverSide'mode="server", total, (queryChange)
localeText, enableRtllabels; la direzione da destra a sinistra segue il dir della pagina

Ordini raggruppati per paese, prima e dopo

L’obiettivo: ordini raggruppati per paese, con un totale per ogni paese e uno complessivo, l’esportazione in Excel, una ricerca rapida e la selezione multipla. Con AG Grid 36, dove il raggruppamento, i totali e l’esportazione in Excel richiedono Enterprise:

Con la griglia di Needless UI:

Alcune cose funzionano in modo diverso. La selezione contiene chiavi, cioè gli id delle righe, quindi resta valida anche con dati nuovi; quando ti servono le righe, ricavale dalle chiavi. I gruppi sono aperti all’inizio. L’etichetta di un gruppo sta nella prima colonna visibile e la ricerca legge solo le colonne visibili, quindi, se la ricerca deve trovare i valori della colonna raggruppata, tienila visibile. Infine exportXlsx() restituisce il file invece di scaricarlo: un solo foglio con le righe filtrate e ordinate, senza le righe di gruppo.

Se ti serve ciò che manca

Se la tua app dipende dal pivot, dai grafici, dagli appunti e dalla selezione di intervalli, dal raggruppamento sul server o dai gruppi di colonne, la griglia di Needless UI non può ancora sostituire AG Grid. Apri una issue per ciò che ti serve. Per tutto il resto, la pagina della griglia dati riporta ogni input, output ed esempio.