Advanced data grid library providing enterprise features for building sophisticated tables and grids in web applications.
npx @tessl/cli install tessl/npm-ag-grid-enterprise@34.1.0AG Grid Enterprise is a comprehensive commercial data grid library that extends ag-grid-community with advanced features for building sophisticated data tables and grids in web applications. It provides enterprise-grade capabilities including advanced filtering, integrated charts, server-side data models, row grouping, pivoting, Excel export, and extensive customization options across React, Angular, Vue, and vanilla JavaScript/TypeScript frameworks.
npm install ag-grid-enterpriseES Modules:
import { createGrid, GridApi, ColDef } from "ag-grid-enterprise";Importing specific modules:
import {
AllEnterpriseModule,
LicenseManager,
ExcelExportModule,
ChartsModule
} from "ag-grid-enterprise";CommonJS:
const { createGrid, AllEnterpriseModule } = require("ag-grid-enterprise");AG Grid Enterprise requires a valid license key for production use:
import { LicenseManager } from "ag-grid-enterprise";
// Set license key before creating grids
LicenseManager.setLicenseKey("your-license-key-here");import { createGrid, AllEnterpriseModule, ColDef, GridOptions } from "ag-grid-enterprise";
// Column definitions with enterprise features
const columnDefs: ColDef[] = [
{ field: "athlete", filter: "agSetColumnFilter" }, // Enterprise set filter
{ field: "age", filter: "agNumberColumnFilter" },
{ field: "country", rowGroup: true }, // Enterprise row grouping
{ field: "year", pivot: true }, // Enterprise pivoting
{ field: "gold", aggFunc: "sum" } // Enterprise aggregation
];
// Grid options with enterprise features
const gridOptions: GridOptions = {
columnDefs,
rowData: [], // Your data
modules: [AllEnterpriseModule], // Load all enterprise features
// Enterprise features
enableRangeSelection: true,
enableCharts: true,
sideBar: true,
statusBar: {
statusPanels: [
{ statusPanel: "agTotalRowCountComponent", align: "left" },
{ statusPanel: "agAggregationComponent" }
]
}
};
// Create the grid
const gridDiv = document.getElementById("myGrid");
const gridApi = createGrid(gridDiv!, gridOptions);AG Grid Enterprise is built on a modular architecture with these key components:
Core data handling capabilities including server-side processing, tree data structures, and advanced row models.
// Server-side row model for large datasets
interface IServerSideGetRowsParams {
request: IServerSideGetRowsRequest;
success: (params: IServerSideGetRowsSuccessParams) => void;
fail: () => void;
}
// Tree data structure support
interface TreeDataGridOptions {
treeData: boolean;
getDataPath: (data: any) => string[];
groupDefaultExpanded?: number;
}Advanced filtering capabilities including set filters, multi-column filters, and find functionality.
// Set filter with enterprise features
interface ISetFilter {
getModel(): ISetFilterModel | null;
setModel(model: ISetFilterModel | null): void;
selectEverything(): void;
selectNothing(): void;
getMiniFilter(): string;
setMiniFilter(newMiniFilter: string): void;
}
// Multi-column filter
interface IMultiFilter {
getChildFilterInstance(index: number): IFilterComp;
getFilterCount(): number;
}Integrated charting capabilities with ag-charts integration for creating interactive visualizations from grid data.
// Chart creation from selected ranges
interface CreateRangeChartParams {
cellRange: CellRangeParams;
chartType: ChartType;
chartContainer?: HTMLElement;
suppressChartRanges?: boolean;
aggFunc?: string | IAggFunc;
}
// Chart management API
interface ChartRef {
chartId: string;
destroyChart(): void;
}Comprehensive data import/export capabilities including Excel export with multi-sheet support.
// Excel export functions
function exportMultipleSheetsAsExcel(params: ExcelExportMultipleSheetParams): void;
function getMultipleSheetsAsExcel(params: ExcelExportMultipleSheetParams): Blob | undefined;
// Excel export parameters
interface ExcelExportMultipleSheetParams {
data: ExcelSheetData[];
fileName?: string;
author?: string;
}Enhanced selection capabilities including range selection, cell selection, and advanced clipboard operations.
// Range selection API
interface IRangeService {
getCellRanges(): CellRange[] | null;
addCellRange(params: CellRangeParams): void;
clearSelection(): void;
}
// Cell selection parameters
interface CellRangeParams {
rowStartIndex?: number;
rowEndIndex?: number;
columnStart?: string | Column;
columnEnd?: string | Column;
}Enterprise UI components including tool panels, status bar, side bar, and enhanced menus.
// Side bar configuration
interface SideBarDef {
toolPanels?: (ToolPanelDef | string)[];
defaultToolPanel?: string;
hiddenByDefault?: boolean;
position?: "left" | "right";
}
// Tool panel definition
interface ToolPanelDef {
id: string;
labelDefault: string;
labelKey?: string;
iconKey: string;
toolPanel?: string;
toolPanelParams?: any;
}Advanced row manipulation including grouping, pivoting, aggregation, row numbers, and master-detail functionality.
// Row grouping configuration
interface RowGroupingDisplayType {
singleColumn?: boolean;
multipleColumns?: boolean;
groupRows?: boolean;
custom?: boolean;
}
// Pivot configuration
interface PivotColumnGroupDef extends ColGroupDef {
pivotKeys?: string[];
pivotTotalColumnIds?: string[];
}AG Grid Enterprise uses a modular architecture allowing selective feature inclusion:
// Individual modules
import {
ExcelExportModule,
SetFilterModule,
RangeSelectionModule,
ChartsModule,
TreeDataModule,
ServerSideRowModelModule,
RowNumbersModule
} from "ag-grid-enterprise";
// All enterprise features
import { AllEnterpriseModule } from "ag-grid-enterprise";
// Module registration
const gridOptions: GridOptions = {
modules: [ExcelExportModule, SetFilterModule, RangeSelectionModule]
// or use AllEnterpriseModule for everything
};// License manager interface
interface GridLicenseManager {
setLicenseKey(licenseKey: string): void;
setChartsLicenseManager(chartsLicenseManager: any): void;
getLicenseDetails(licenseKey: string): any;
validateLicense(): void;
isDisplayWatermark(): boolean;
getWatermarkMessage(): string;
}
// Excel export types
interface ExcelSheetData {
sheetName: string;
data: any[];
}
interface ExcelExportMultipleSheetParams {
data: ExcelSheetData[];
fileName?: string;
author?: string;
}
// Chart types
type ChartType =
| "column"
| "groupedColumn"
| "stackedColumn"
| "normalizedColumn"
| "bar"
| "groupedBar"
| "stackedBar"
| "normalizedBar"
| "line"
| "scatter"
| "bubble"
| "pie"
| "doughnut"
| "area"
| "stackedArea"
| "normalizedArea";