angular
You can find it on stackblitz: stackblitz-guiexpert-angular-simple.
Add the following NPM package to your existing angular project (run this in your project root directory):
npm install --save @guiexpert/table @guiexpert/angular-table
Import the (standalone) table component in your angular module (or in your angular standalone component, if you don’t work with modules):
@NgModule({ imports: [ CommonModule, TableComponent, ...
To add the global guiexpert CSS file in your Angular project, you can include the file in the styles array within the angular.json file.
Open the angular.json
file of your project.
Look for the styles section within the configuration object for your project. It typically looks like this:
"styles": [ "src/styles.css", "node_modules/@guiexpert/table/css/main.css" ...],
Create a component and include the guiexpert tag in the template of your component
<div class="content"> <guiexpert-table [tableModel]="tableModel" [tableOptions]="tableOptions" class="ge-table" ></guiexpert-table> </div>
Be sure, that your div container expands. Add this CSS rule to your component’s style.
.content { width: 100%; height: 100%; padding: 0; border: 0;}
Add two properties (tableModel
and tableOptions
) to the component. Generate a simple table model by the helper
function TableFactory.createTableModel
. The properties headerData, bodyData, and footerData are simple arrays of arrays.
tableModel: TableModelIf;
tableOptions = { ...new TableOptions(), hoverColumnVisible: false, defaultRowHeights: { header: 40, body: 34, footer: 0 }};
constructor() { this.tableModel = this.generateSimpleModel(100, 10);}
generateSimpleModel( rowCount: number = 1000, columnCount: number = 1000): TableModelIf {
const bodyData: string[][] = Array.from(Array(rowCount).keys()) .map((r) => Array.from(Array(columnCount).keys()) .map((c) => `Body ${r}/${c}`) );
const headerData: string[][] = Array.from(Array(2).keys()) .map((r) => Array.from(Array(columnCount).keys()) .map((c) => `Header ${r}/${c}`) );
const footerData: string[][] = Array.from(Array(2).keys()) .map((r) => Array.from(Array(columnCount).keys()) .map((c) => `Footer ${r}/${c}`) );
return TableFactory.createTableModel({ headerData, bodyData, footerData, overridingColumnWidth: 110, fixedLeftColumnCount: 1, fixedRightColumnCount: 1 });}
Here you can see an alternate simple table model creation:
TableFactory.createTableModel({ headerData: [ ["Column1", "Column2", "Column3"] ], bodyData: [ ["This", "is", "a"], ["very", "simple", "demo"] ], overridingColumnWidth: 110});