UNPKG

7.05 kBTypeScriptView Raw
1import { Column } from "../entities/column";
2import { ExportParams } from "./exportParams";
3import { XmlElement } from "./iXmlFactory";
4export interface ExcelStyle {
5 id: string;
6 alignment?: ExcelAlignment;
7 borders?: ExcelBorders;
8 dataType?: ExcelDataType;
9 font?: ExcelFont;
10 interior?: ExcelInterior;
11 numberFormat?: ExcelNumberFormat;
12 protection?: ExcelProtection;
13 /**
14 * @deprecated Legacy property
15 */
16 name?: string;
17}
18export interface ExcelAlignment {
19 horizontal?: 'Automatic' | 'Left' | 'Center' | 'Right' | 'Fill' | 'Justify' | 'CenterAcrossSelection' | 'Distributed' | 'JustifyDistributed';
20 indent?: number;
21 readingOrder?: 'RightToLeft' | 'LeftToRight' | 'Context';
22 rotate?: number;
23 shrinkToFit?: boolean;
24 vertical?: 'Automatic' | 'Top' | 'Bottom' | 'Center' | 'Justify' | 'Distributed' | 'JustifyDistributed';
25 wrapText?: boolean;
26 /**
27 * @deprecated Legacy property
28 */
29 verticalText?: boolean;
30}
31export interface ExcelBorders {
32 borderBottom?: ExcelBorder;
33 borderLeft?: ExcelBorder;
34 borderRight?: ExcelBorder;
35 borderTop?: ExcelBorder;
36}
37export interface ExcelBorder {
38 color?: string;
39 lineStyle?: 'None' | 'Continuous' | 'Dash' | 'Dot' | 'DashDot' | 'DashDotDot' | 'SlantDashDot' | 'Double';
40 weight?: 0 | 1 | 2 | 3;
41}
42export interface ExcelFont {
43 bold?: boolean;
44 color?: string;
45 family?: string;
46 fontName?: string;
47 italic?: boolean;
48 outline?: boolean;
49 shadow?: boolean;
50 size?: number;
51 strikeThrough?: boolean;
52 underline?: 'Single' | 'Double';
53 verticalAlign?: 'Superscript' | 'Subscript';
54 /**
55 * @deprecated Legacy property
56 */
57 charSet?: number;
58}
59export interface ExcelInterior {
60 pattern: 'None' | 'Solid' | 'Gray75' | 'Gray50' | 'Gray25' | 'Gray125' | 'Gray0625' | 'HorzStripe' | 'VertStripe' | 'ReverseDiagStripe' | 'DiagStripe' | 'DiagCross' | 'ThickDiagCross' | 'ThinHorzStripe' | 'ThinVertStripe' | 'ThinReverseDiagStripe' | 'ThinDiagStripe' | 'ThinHorzCross' | 'ThinDiagCross';
61 color?: string;
62 patternColor?: string;
63}
64export interface ExcelNumberFormat {
65 format: string;
66}
67export interface ExcelProtection {
68 protected: boolean;
69 hideFormula: boolean;
70}
71export interface ExcelWorksheet {
72 name: string;
73 table: ExcelTable;
74}
75export interface ExcelTable {
76 columns: ExcelColumn[];
77 rows: ExcelRow[];
78}
79export interface ExcelColumn {
80 min?: number;
81 max?: number;
82 outlineLevel?: number;
83 width?: number;
84 s?: number;
85 hidden?: boolean;
86 bestFit?: boolean;
87}
88export interface ExcelRow {
89 index?: number;
90 collapsed?: boolean;
91 hidden?: boolean;
92 height?: number;
93 outlineLevel?: number;
94 s?: number;
95 cells: ExcelCell[];
96}
97export interface ExcelCell {
98 ref?: string;
99 styleId?: string;
100 data: ExcelData;
101 mergeAcross?: number;
102 collapsibleRanges?: number[][];
103}
104export interface ExcelImage {
105 id: string;
106 base64: string;
107 imageType: 'jpg' | 'png' | 'gif';
108 altText?: string;
109 fitCell?: boolean;
110 transparency?: number;
111 rotation?: number;
112 recolor?: 'Grayscale' | 'Sepia' | 'Washout';
113 width?: number;
114 height?: number;
115 position?: {
116 row?: number;
117 rowSpan?: number;
118 column?: number;
119 colSpan?: number;
120 offsetX?: number;
121 offsetY?: number;
122 };
123}
124export declare type ExcelDataType = 'String' | 'Formula' | 'Number' | 'Boolean' | 'DateTime' | 'Error';
125export declare type ExcelOOXMLDataType = 'str' | 's' | 'f' | 'inlineStr' | 'n' | 'b' | 'd' | 'e' | 'empty';
126export interface ExcelData {
127 type: ExcelDataType | ExcelOOXMLDataType;
128 value: string | null;
129}
130export interface ExcelRelationship {
131 Id: string;
132 Type: string;
133 Target: string;
134}
135export interface ExcelContentType {
136 name: 'Default' | 'Override';
137 ContentType: string;
138 Extension?: string;
139 PartName?: string;
140}
141export interface ExcelXMLTemplate {
142 getTemplate(styleProperties?: ExcelStyle | ExcelWorksheet | ExcelColumn | ExcelRow | ExcelCell): XmlElement;
143}
144export interface ExcelOOXMLTemplate {
145 getTemplate(config?: any, idx?: number, currentSheet?: number): XmlElement;
146 convertType?(type: string): string;
147}
148export declare enum ExcelFactoryMode {
149 SINGLE_SHEET = 0,
150 MULTI_SHEET = 1
151}
152export interface ColumnWidthCallbackParams {
153 column: Column | null;
154 index: number;
155}
156export interface RowHeightCallbackParams {
157 rowIndex: number;
158}
159export interface ExcelExportParams extends ExportParams<ExcelCell[][]> {
160 author?: string;
161 autoConvertFormulas?: boolean;
162 columnWidth?: number | ((params: ColumnWidthCallbackParams) => number);
163 exportMode?: 'xlsx' | 'xml';
164 fontSize?: number;
165 headerRowHeight?: number | ((params: RowHeightCallbackParams) => number);
166 rowHeight?: number | ((params: RowHeightCallbackParams) => number);
167 sheetName?: string;
168 margins?: ExcelSheetMargin;
169 pageSetup?: ExcelSheetPageSetup;
170 headerFooterConfig?: ExcelHeaderFooterConfig;
171 suppressTextAsCDATA?: boolean;
172 mimeType?: string;
173 /** Use to export an image for the gridCell in question. */
174 addImageToCell?: (rowIndex: number, column: Column, value: string) => {
175 image: ExcelImage;
176 value?: string;
177 } | undefined;
178}
179export interface ExcelExportMultipleSheetParams {
180 author?: string;
181 data: string[];
182 fileName?: string;
183 fontSize?: number;
184 mimeType?: string;
185}
186export interface ExcelHeaderFooterConfig {
187 all?: ExcelHeaderFooter;
188 first?: ExcelHeaderFooter;
189 even?: ExcelHeaderFooter;
190}
191export interface ExcelHeaderFooter {
192 header?: ExcelHeaderFooterContent[];
193 footer?: ExcelHeaderFooterContent[];
194}
195export interface ExcelHeaderFooterContent {
196 value: string;
197 position?: 'Left' | 'Center' | 'Right';
198 font?: ExcelFont;
199}
200export interface IExcelCreator {
201 exportDataAsExcel(params?: ExcelExportParams): void;
202 getDataAsExcel(params?: ExcelExportParams): Blob | string | undefined;
203 getSheetDataForExcel(params?: ExcelExportParams): string;
204 getMultipleSheetsAsExcel(params: ExcelExportMultipleSheetParams): Blob | undefined;
205 exportMultipleSheetsAsExcel(params: ExcelExportMultipleSheetParams): void;
206 /** private methods */
207 setFactoryMode(factoryMode: ExcelFactoryMode, exportMode: 'xml' | 'xlsx'): void;
208 getFactoryMode(exportMode: 'xml' | 'xlsx'): ExcelFactoryMode;
209}
210export interface ExcelSheetMargin {
211 top?: number;
212 right?: number;
213 bottom?: number;
214 left?: number;
215 header?: number;
216 footer?: number;
217}
218export interface ExcelSheetPageSetup {
219 orientation?: 'Portrait' | 'Landscape';
220 pageSize?: 'Letter' | 'Letter Small' | 'Tabloid' | 'Ledger' | 'Legal' | 'Statement' | 'Executive' | 'A3' | 'A4' | 'A4 Small' | 'A5' | 'A6' | 'B4' | 'B5' | 'Folio' | 'Envelope' | 'Envelope DL' | 'Envelope C5' | 'Envelope B5' | 'Envelope C3' | 'Envelope C4' | 'Envelope C6' | 'Envelope Monarch' | 'Japanese Postcard' | 'Japanese Double Postcard';
221}