UNPKG

table-xlsx

Version:

Based on SheetJS encapsulation, the function of exporting files and parsing files to generate table data is realized

90 lines (89 loc) 2.23 kB
export type DefaultValueType = Record<string, any>; export type DataIndex = string | number | undefined | readonly (string | number)[]; export interface MergesArrType { s: { c: number; r: number; }; e: { c: number; r: number; }; } export interface MergesObjType { [key: string]: { colSpan?: number; rowSpan?: number; }; } export interface ColumnType { key?: string; title?: string; dataIndex?: string; mergesObj?: MergesObjType; render?: (value: any, row: DefaultValueType, rowIndex: number) => any; xlsxRender?: (value: any, row: DefaultValueType, rowIndex: number) => any; onTxBodyCell?: (row: DefaultValueType, rowIndex: number) => { style: CellStyleType; }; children?: ColumnType[]; [key: string]: any; } export interface DataType { [key: string]: any; } export interface TableType { sheetName?: string; dataSource?: DataType[]; columns?: ColumnType[]; } export interface CellStyleType { fontBold?: boolean; fontName?: string; fontColorRgb?: string; fillFgColorRgb?: string; borderStyle?: string; borderColorRgb?: string; alignmentHorizontal?: string; alignmentVertical?: string; } export interface SheetType { '!ref'?: string; '!cols'?: { wpx?: number; }[]; '!rows'?: { hpx?: number; }[]; '!merges'?: MergesArrType[]; [key: string]: { t?: string; v?: string | number; s?: DefaultValueType; } | undefined | string | { wpx?: number; }[] | { hpx?: number; }[] | MergesArrType[]; } export interface HeaderCellType { title?: string; merges?: MergesArrType; txHeaderCellStyle?: CellStyleType; } export interface ExportFilePropsType { fileName?: string; sheetNames?: (string | number)[]; columns: ColumnType[][]; dataSource: DataType[][]; showHeader?: boolean; raw?: boolean; rowHpx?: number; cellStyle?: CellStyleType; headerCellStyle?: CellStyleType; bodyCellStyle?: CellStyleType; useRender?: boolean; onTxBodyRow?: (row: DefaultValueType, rowIndex: number) => { style: CellStyleType; }; }