ag-grid-enterprise
Version:
Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
57 lines (56 loc) • 2.01 kB
TypeScript
import type { AgColumn, Column, ColumnGroup, ExcelRow, ExcelStyle, ExcelWorksheetConfigParams, GridSerializingParams, RowAccumulator, RowNode, RowSpanningAccumulator } from 'ag-grid-community';
import { BaseGridSerializingSession } from 'ag-grid-community';
export interface StyleLinkerInterface {
rowType: 'HEADER_GROUPING' | 'HEADER' | 'BODY';
rowIndex: number;
value: string;
column?: Column;
columnGroup?: ColumnGroup;
node?: RowNode;
}
export interface ExcelGridSerializingParams extends ExcelWorksheetConfigParams, GridSerializingParams {
baseExcelStyles: ExcelStyle[];
styleLinker: (params: StyleLinkerInterface) => string[];
frozenRowCount?: number;
frozenColumnCount?: number;
}
export declare class ExcelSerializingSession extends BaseGridSerializingSession<ExcelRow[]> {
private readonly config;
private readonly stylesByIds;
private mixedStyles;
private mixedStyleCounter;
private readonly excelStyles;
private rows;
private cols;
private columnsToExport;
private frozenRowCount;
private skipFrozenRows;
private frozenColumnCount;
private skipFrozenColumns;
constructor(config: ExcelGridSerializingParams);
addCustomContent(customContent: ExcelRow[]): void;
onNewHeaderGroupingRow(): RowSpanningAccumulator;
onNewHeaderRow(): RowAccumulator;
onNewBodyRow(node?: RowNode): RowAccumulator;
prepare(columnsToExport: AgColumn[]): void;
parse(): string;
private addRowOutlineIfNecessary;
private isAnyParentCollapsed;
private convertColumnToExcel;
private onNewHeaderColumn;
private onNewBodyColumn;
private onNewRow;
private createExcel;
private getDataTypeForValue;
private getTypeFromStyle;
private addImage;
private createCell;
private createMergedCell;
private getCellValue;
private getStyleId;
private deepCloneObject;
private addNewMixedStyle;
private isFormula;
private isNumerical;
private getStyleById;
}