datainout
Version:
Import and reports data
50 lines (47 loc) • 1.44 kB
TypeScript
import * as exceljs from 'exceljs';
import { SheetSection, AttributeType, SheetExcelOption } from './common-type.js';
import { ExcelTemplateManager } from '../core/Template.js';
import { CellImportOptions } from './import-template.type.js';
type CellDataHelper = {
rowIndex: number;
isVariable: boolean;
label?: string;
variableValue?: {
fieldName: string;
type: AttributeType;
};
detail: exceljs.Cell;
address: string;
section: SheetSection;
beginTableAt: number;
endTableAt: number;
formula?: exceljs.Cell["formula"];
};
type RowDataHelper = {
rowIndex: number;
detail: exceljs.Row;
section: SheetSection;
cells: CellDataHelper[];
beginTableAt?: number;
endTableAt?: number;
};
type SheetDataHelper = {
sheetIndex: number;
columnIndex: number;
name: string;
detail: exceljs.Worksheet;
beginTableAt: number;
endTableAt: number;
rowCount: number;
lastestRow: RowDataHelper;
firstRow: RowDataHelper;
};
type ExcelReaderHelperOptions = {
onSheet?: (sheet: SheetDataHelper) => Promise<any>;
onRow?: (row: RowDataHelper) => Promise<any>;
onCell?: (cell: CellDataHelper) => Promise<any>;
isSampleExcel?: boolean;
template?: SheetExcelOption<any>[];
templateManager: ExcelTemplateManager<CellImportOptions>;
};
export type { CellDataHelper, ExcelReaderHelperOptions, RowDataHelper, SheetDataHelper };