@cj-tech-master/excelts 1.4.4 → 1.4.5-canary.20251212064440.3eb099f

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/dist/browser/excelts.iife.js +8726 -8664
  2. package/dist/browser/excelts.iife.js.map +1 -1
  3. package/dist/browser/excelts.iife.min.js +28 -28
  4. package/dist/cjs/doc/anchor.js +25 -11
  5. package/dist/cjs/doc/cell.js +75 -43
  6. package/dist/cjs/doc/column.js +39 -16
  7. package/dist/cjs/doc/defined-names.js +53 -7
  8. package/dist/cjs/doc/image.js +11 -8
  9. package/dist/cjs/doc/range.js +64 -28
  10. package/dist/cjs/doc/row.js +33 -17
  11. package/dist/cjs/doc/table.js +3 -5
  12. package/dist/cjs/doc/workbook.js +5 -4
  13. package/dist/cjs/doc/worksheet.js +15 -16
  14. package/dist/cjs/utils/sheet-utils.js +3 -1
  15. package/dist/esm/doc/anchor.js +25 -11
  16. package/dist/esm/doc/cell.js +75 -43
  17. package/dist/esm/doc/column.js +39 -16
  18. package/dist/esm/doc/defined-names.js +53 -7
  19. package/dist/esm/doc/image.js +11 -8
  20. package/dist/esm/doc/range.js +64 -28
  21. package/dist/esm/doc/row.js +33 -17
  22. package/dist/esm/doc/table.js +3 -5
  23. package/dist/esm/doc/workbook.js +5 -4
  24. package/dist/esm/doc/worksheet.js +15 -16
  25. package/dist/esm/utils/sheet-utils.js +3 -1
  26. package/dist/types/doc/anchor.d.ts +14 -7
  27. package/dist/types/doc/cell.d.ts +85 -40
  28. package/dist/types/doc/column.d.ts +39 -34
  29. package/dist/types/doc/defined-names.d.ts +11 -8
  30. package/dist/types/doc/image.d.ts +29 -12
  31. package/dist/types/doc/pivot-table.d.ts +1 -1
  32. package/dist/types/doc/range.d.ts +15 -4
  33. package/dist/types/doc/row.d.ts +34 -40
  34. package/dist/types/doc/table.d.ts +21 -36
  35. package/dist/types/doc/workbook.d.ts +30 -33
  36. package/dist/types/doc/worksheet.d.ts +98 -73
  37. package/dist/types/stream/xlsx/worksheet-reader.d.ts +3 -5
  38. package/dist/types/types.d.ts +86 -26
  39. package/dist/types/utils/col-cache.d.ts +11 -8
  40. package/package.json +8 -8
@@ -1,12 +1,16 @@
1
- import { Worksheet } from "./worksheet.js";
2
- import { DefinedNames } from "./defined-names.js";
1
+ import { Worksheet, type WorksheetModel } from "./worksheet.js";
2
+ import { DefinedNames, type DefinedNameModel } from "./defined-names.js";
3
3
  import { XLSX } from "../xlsx/xlsx.js";
4
4
  import { CSV } from "../csv/csv.js";
5
- interface WorksheetModel {
6
- id: number;
7
- name: string;
8
- state?: string;
9
- [key: string]: any;
5
+ import type { PivotTable } from "./pivot-table.js";
6
+ import type { AddWorksheetOptions, CalculationProperties, Image, WorkbookProperties, WorkbookView, Buffer as ExcelBuffer } from "../types.js";
7
+ interface WorkbookMedia {
8
+ type: string;
9
+ extension: string;
10
+ filename?: string;
11
+ buffer?: ExcelBuffer;
12
+ base64?: string;
13
+ name?: string;
10
14
  }
11
15
  interface WorkbookModel {
12
16
  creator?: string;
@@ -14,11 +18,11 @@ interface WorkbookModel {
14
18
  lastPrinted?: Date;
15
19
  created: Date;
16
20
  modified: Date;
17
- properties: any;
21
+ properties: Partial<WorkbookProperties>;
18
22
  worksheets: WorksheetModel[];
19
23
  sheets?: WorksheetModel[];
20
- definedNames: any;
21
- views: any[];
24
+ definedNames: DefinedNameModel[];
25
+ views: WorkbookView[];
22
26
  company: string;
23
27
  manager: string;
24
28
  title: string;
@@ -29,17 +33,10 @@ interface WorkbookModel {
29
33
  language?: string;
30
34
  revision?: number;
31
35
  contentStatus?: string;
32
- themes?: any;
33
- media: any[];
34
- pivotTables: any[];
35
- calcProperties: any;
36
- }
37
- interface AddWorksheetOptions {
38
- properties?: any;
39
- views?: any[];
40
- pageSetup?: any;
41
- headerFooter?: any;
42
- [key: string]: any;
36
+ themes?: unknown;
37
+ media: WorkbookMedia[];
38
+ pivotTables: PivotTable[];
39
+ calcProperties: Partial<CalculationProperties>;
43
40
  }
44
41
  declare class Workbook {
45
42
  category: string;
@@ -49,24 +46,24 @@ declare class Workbook {
49
46
  keywords: string;
50
47
  manager: string;
51
48
  modified: Date;
52
- properties: any;
53
- calcProperties: any;
54
- _worksheets: Worksheet[];
49
+ properties: Partial<WorkbookProperties>;
50
+ calcProperties: Partial<CalculationProperties>;
51
+ private _worksheets;
55
52
  subject: string;
56
53
  title: string;
57
- views: any[];
58
- media: any[];
59
- pivotTables: any[];
60
- _definedNames: DefinedNames;
54
+ views: WorkbookView[];
55
+ media: WorkbookMedia[];
56
+ pivotTables: PivotTable[];
57
+ private _definedNames;
61
58
  creator?: string;
62
59
  lastModifiedBy?: string;
63
60
  lastPrinted?: Date;
64
61
  language?: string;
65
62
  revision?: number;
66
63
  contentStatus?: string;
67
- _themes?: any;
68
- _xlsx?: XLSX;
69
- _csv?: CSV;
64
+ private _themes?;
65
+ private _xlsx?;
66
+ private _csv?;
70
67
  constructor();
71
68
  get xlsx(): XLSX;
72
69
  get csv(): CSV;
@@ -79,8 +76,8 @@ declare class Workbook {
79
76
  eachSheet(iteratee: (sheet: Worksheet, id: number) => void): void;
80
77
  get definedNames(): DefinedNames;
81
78
  clearThemes(): void;
82
- addImage(image: any): number;
83
- getImage(id: number): any;
79
+ addImage(image: Image): number;
80
+ getImage(id: number | string): WorkbookMedia | undefined;
84
81
  get model(): WorkbookModel;
85
82
  set model(value: WorkbookModel);
86
83
  }
@@ -1,19 +1,49 @@
1
- import { Range } from "./range.js";
2
- import { Row } from "./row.js";
3
- import { Table } from "./table.js";
1
+ import { Range, type RangeInput } from "./range.js";
2
+ import { Row, type RowModel } from "./row.js";
3
+ import { Column, type ColumnModel, type ColumnDefn } from "./column.js";
4
+ import type { Cell, FormulaResult } from "./cell.js";
5
+ import { Image, type ImageModel } from "./image.js";
6
+ import { Table, type TableModel } from "./table.js";
4
7
  import { DataValidations } from "./data-validations.js";
5
- import type { RowBreak } from "../types.js";
8
+ import { type PivotTable, type PivotTableModel } from "./pivot-table.js";
9
+ import type { Workbook } from "./workbook.js";
10
+ import type { AddImageRange, AutoFilter, CellValue, ConditionalFormattingOptions, DataValidation, RowBreak, RowValues, TableProperties, WorksheetProperties, WorksheetView } from "../types.js";
11
+ type DataValidationModel = {
12
+ [address: string]: DataValidation | undefined;
13
+ };
14
+ interface SheetProtection {
15
+ sheet?: boolean;
16
+ objects?: boolean;
17
+ scenarios?: boolean;
18
+ selectLockedCells?: boolean;
19
+ selectUnlockedCells?: boolean;
20
+ formatCells?: boolean;
21
+ formatColumns?: boolean;
22
+ formatRows?: boolean;
23
+ insertColumns?: boolean;
24
+ insertRows?: boolean;
25
+ insertHyperlinks?: boolean;
26
+ deleteColumns?: boolean;
27
+ deleteRows?: boolean;
28
+ sort?: boolean;
29
+ autoFilter?: boolean;
30
+ pivotTables?: boolean;
31
+ algorithmName?: string;
32
+ hashValue?: string;
33
+ saltValue?: string;
34
+ spinCount?: number;
35
+ }
6
36
  interface WorksheetOptions {
7
- workbook?: any;
37
+ workbook?: Workbook;
8
38
  id?: number;
9
39
  orderNo?: number;
10
40
  name?: string;
11
41
  state?: string;
12
- properties?: any;
13
- pageSetup?: any;
14
- headerFooter?: any;
15
- views?: any[];
16
- autoFilter?: any;
42
+ properties?: Partial<WorksheetProperties>;
43
+ pageSetup?: Partial<PageSetup>;
44
+ headerFooter?: Partial<HeaderFooter>;
45
+ views?: Partial<WorksheetView>[];
46
+ autoFilter?: AutoFilter | null;
17
47
  }
18
48
  interface EachRowOptions {
19
49
  includeEmpty?: boolean;
@@ -47,7 +77,6 @@ interface PageSetup {
47
77
  horizontalCentered: boolean;
48
78
  verticalCentered: boolean;
49
79
  rowBreaks: RowBreak[];
50
- colBreaks: any;
51
80
  printTitlesRow?: string;
52
81
  printTitlesColumn?: string;
53
82
  }
@@ -64,77 +93,73 @@ interface HeaderFooter {
64
93
  interface WorksheetModel {
65
94
  id: number;
66
95
  name: string;
67
- dataValidations: any;
68
- properties: any;
96
+ dataValidations: DataValidationModel;
97
+ properties: Partial<WorksheetProperties>;
69
98
  state: string;
70
99
  pageSetup: PageSetup;
71
100
  headerFooter: HeaderFooter;
72
101
  rowBreaks: RowBreak[];
73
- views: any[];
74
- autoFilter: any;
75
- media: any[];
76
- sheetProtection: any;
77
- tables: any[];
78
- pivotTables: any[];
79
- conditionalFormattings: any[];
80
- cols?: any[];
81
- rows?: any[];
102
+ views: Partial<WorksheetView>[];
103
+ autoFilter: AutoFilter | null;
104
+ media: ImageModel[];
105
+ sheetProtection: SheetProtection | null;
106
+ tables: TableModel[];
107
+ pivotTables: PivotTable[];
108
+ conditionalFormattings: ConditionalFormattingOptions[];
109
+ cols?: ColumnModel[];
110
+ rows?: RowModel[];
82
111
  dimensions?: Range;
83
112
  merges?: string[];
84
113
  mergeCells?: string[];
85
114
  }
86
115
  declare class Worksheet {
87
- _workbook: any;
116
+ private _workbook;
88
117
  id: number;
89
118
  orderNo: number;
90
- _name: string;
119
+ private _name;
91
120
  state: string;
92
- _rows: any[];
93
- _columns: any[];
94
- _keys: {
95
- [key: string]: any;
96
- };
97
- _merges: {
98
- [key: string]: Range;
99
- };
100
- rowBreaks: any[];
101
- properties: any;
121
+ private _rows;
122
+ private _columns;
123
+ private _keys;
124
+ private _merges;
125
+ rowBreaks: RowBreak[];
126
+ properties: Partial<WorksheetProperties>;
102
127
  pageSetup: PageSetup;
103
128
  headerFooter: HeaderFooter;
104
129
  dataValidations: DataValidations;
105
- views: any[];
106
- autoFilter: any;
107
- _media: any[];
108
- sheetProtection: any;
130
+ views: Partial<WorksheetView>[];
131
+ autoFilter: AutoFilter | null;
132
+ private _media;
133
+ sheetProtection: SheetProtection | null;
109
134
  tables: {
110
135
  [key: string]: Table;
111
136
  };
112
- pivotTables: any[];
113
- conditionalFormattings: any[];
114
- _headerRowCount?: number;
137
+ pivotTables: PivotTable[];
138
+ conditionalFormattings: ConditionalFormattingOptions[];
139
+ private _headerRowCount?;
115
140
  constructor(options: WorksheetOptions);
116
141
  get name(): string;
117
142
  set name(name: string | undefined);
118
- get workbook(): any;
143
+ get workbook(): Workbook;
119
144
  destroy(): void;
120
145
  get dimensions(): Range;
121
- get columns(): any[];
122
- set columns(value: any[]);
123
- getColumnKey(key: string): any;
124
- setColumnKey(key: string, value: any): void;
146
+ get columns(): Column[];
147
+ set columns(value: ColumnDefn[]);
148
+ getColumnKey(key: string): Column | undefined;
149
+ setColumnKey(key: string, value: Column): void;
125
150
  deleteColumnKey(key: string): void;
126
- eachColumnKey(f: (column: any, key: string) => void): void;
127
- getColumn(c: string | number): any;
128
- spliceColumns(start: number, count: number, ...inserts: any[][]): void;
129
- get lastColumn(): any;
151
+ eachColumnKey(f: (column: Column, key: string) => void): void;
152
+ getColumn(c: string | number): Column;
153
+ spliceColumns(start: number, count: number, ...inserts: CellValue[][]): void;
154
+ get lastColumn(): Column;
130
155
  get columnCount(): number;
131
156
  get actualColumnCount(): number;
132
157
  _commitRow(row: Row): void;
133
158
  get _lastRowNumber(): number;
134
159
  get _nextRow(): number;
135
- get lastRow(): any;
136
- findRow(r: number): any;
137
- findRows(start: number, length: number): any[];
160
+ get lastRow(): Row | undefined;
161
+ findRow(r: number): Row | undefined;
162
+ findRows(start: number, length: number): (Row | undefined)[];
138
163
  get rowCount(): number;
139
164
  get actualRowCount(): number;
140
165
  getRow(r: number): any;
@@ -142,39 +167,39 @@ declare class Worksheet {
142
167
  addRow(value: any, style?: string): any;
143
168
  addRows(value: any[], style?: string): any[];
144
169
  insertRow(pos: number, value: any, style?: string): any;
145
- insertRows(pos: number, values: any[], style?: string): any[] | undefined;
170
+ insertRows(pos: number, values: any[], style?: string): Row[] | undefined;
146
171
  _setStyleOption(pos: number, style?: string): void;
147
172
  _copyStyle(src: number, dest: number, styleEmpty?: boolean): void;
148
173
  duplicateRow(rowNum: number, count: number, insert?: boolean): void;
149
- spliceRows(start: number, count: number, ...inserts: any[]): void;
174
+ spliceRows(start: number, count: number, ...inserts: RowValues[]): void;
150
175
  eachRow(iteratee: (row: any, rowNumber: number) => void): void;
151
176
  eachRow(options: EachRowOptions, iteratee: (row: any, rowNumber: number) => void): void;
152
- getSheetValues(): any[];
153
- findCell(r: number | string, c?: number): any;
154
- getCell(r: number | string, c?: number): any;
155
- mergeCells(...cells: any[]): void;
156
- mergeCellsWithoutStyle(...cells: any[]): void;
177
+ getSheetValues(): CellValue[][];
178
+ findCell(r: number | string, c?: number): Cell | undefined;
179
+ getCell(r: number | string, c?: number): Cell;
180
+ mergeCells(...cells: RangeInput[]): void;
181
+ mergeCellsWithoutStyle(...cells: RangeInput[]): void;
157
182
  _mergeCellsInternal(dimensions: Range, ignoreStyle?: boolean): void;
158
- _unMergeMaster(master: any): void;
183
+ _unMergeMaster(master: Cell): void;
159
184
  get hasMerges(): boolean;
160
- unMergeCells(...cells: any[]): void;
161
- fillFormula(range: string, formula: string, results?: any[][] | any[] | ((row: number, col: number) => any), shareType?: string): void;
162
- addImage(imageId: number, range: any): void;
163
- getImages(): any[];
164
- addBackgroundImage(imageId: number): void;
165
- getBackgroundImageId(): number | undefined;
166
- protect(password?: string, options?: any): Promise<void>;
185
+ unMergeCells(...cells: RangeInput[]): void;
186
+ fillFormula(range: string, formula: string, results?: FormulaResult[][] | FormulaResult[] | ((row: number, col: number) => FormulaResult | undefined), shareType?: string): void;
187
+ addImage(imageId: string | number, range: AddImageRange): void;
188
+ getImages(): Image[];
189
+ addBackgroundImage(imageId: string | number): void;
190
+ getBackgroundImageId(): string | undefined;
191
+ protect(password?: string, options?: Partial<SheetProtection>): Promise<void>;
167
192
  unprotect(): void;
168
- addTable(model: any): Table;
193
+ addTable(model: TableProperties): Table;
169
194
  getTable(name: string): Table;
170
195
  removeTable(name: string): void;
171
196
  getTables(): Table[];
172
- addPivotTable(model: any): any;
173
- addConditionalFormatting(cf: any): void;
174
- removeConditionalFormatting(filter: number | ((value: any, index: number, array: any[]) => boolean)): void;
197
+ addPivotTable(model: PivotTableModel): PivotTable;
198
+ addConditionalFormatting(cf: ConditionalFormattingOptions): void;
199
+ removeConditionalFormatting(filter: number | ((value: ConditionalFormattingOptions, index: number, array: ConditionalFormattingOptions[]) => boolean)): void;
175
200
  get model(): WorksheetModel;
176
201
  _parseRows(model: WorksheetModel): void;
177
202
  _parseMergeCells(model: WorksheetModel): void;
178
203
  set model(value: WorksheetModel);
179
204
  }
180
- export { Worksheet };
205
+ export { Worksheet, type WorksheetModel };
@@ -12,11 +12,9 @@ declare class WorksheetReader extends EventEmitter {
12
12
  options: any;
13
13
  name: string;
14
14
  state?: string;
15
- _columns: any[] | null;
16
- _keys: {
17
- [key: string]: any;
18
- };
19
- _dimensions: any;
15
+ private _columns;
16
+ private _keys;
17
+ private _dimensions;
20
18
  hyperlinks?: {
21
19
  [key: string]: any;
22
20
  };
@@ -2,8 +2,7 @@
2
2
  * Type definitions for ExcelTS
3
3
  * This file exports all public types used by the library
4
4
  */
5
- import type { IAnchor } from "./doc/anchor.js";
6
- export type Buffer = ArrayBuffer;
5
+ export type Buffer = Uint8Array;
7
6
  export declare enum PaperSize {
8
7
  Legal = 5,
9
8
  Executive = 7,
@@ -92,14 +91,26 @@ export interface FillGradientPath {
92
91
  stops: GradientStop[];
93
92
  }
94
93
  export type Fill = FillPattern | FillGradientAngle | FillGradientPath;
95
- export interface Style {
96
- numFmt: string;
94
+ export interface NumFmt {
95
+ id: number;
96
+ formatCode: string;
97
+ }
98
+ interface StyleBase {
97
99
  font: Partial<Font>;
98
100
  alignment: Partial<Alignment>;
99
101
  protection: Partial<Protection>;
100
102
  border: Partial<Borders>;
101
103
  fill: Fill;
102
104
  }
105
+ export interface StyleInput extends StyleBase {
106
+ numFmt: string;
107
+ }
108
+ export interface StyleOutput extends StyleBase {
109
+ numFmt: NumFmt;
110
+ }
111
+ export interface Style extends StyleBase {
112
+ numFmt: string | NumFmt;
113
+ }
103
114
  export interface Margins {
104
115
  top: number;
105
116
  left: number;
@@ -143,13 +154,13 @@ export interface HeaderFooter {
143
154
  firstFooter: string;
144
155
  }
145
156
  export interface WorksheetViewCommon {
146
- rightToLeft: boolean;
147
- activeCell: string;
148
- showRuler: boolean;
149
- showRowColHeaders: boolean;
150
- showGridLines: boolean;
151
- zoomScale: number;
152
- zoomScaleNormal: number;
157
+ rightToLeft?: boolean;
158
+ activeCell?: string;
159
+ showRuler?: boolean;
160
+ showRowColHeaders?: boolean;
161
+ showGridLines?: boolean;
162
+ zoomScale?: number;
163
+ zoomScaleNormal?: number;
153
164
  }
154
165
  export interface WorksheetViewNormal {
155
166
  state: "normal";
@@ -248,13 +259,22 @@ export interface CellFormulaValue {
248
259
  result?: number | string | boolean | Date | CellErrorValue;
249
260
  date1904?: boolean;
250
261
  }
262
+ /** Array formula that spans multiple cells */
263
+ export interface CellArrayFormulaValue {
264
+ formula: string;
265
+ result?: number | string | boolean | Date | CellErrorValue;
266
+ /** Must be "array" for array formulas */
267
+ shareType: "array";
268
+ /** The range this array formula applies to, e.g. "A1:B2" */
269
+ ref: string;
270
+ }
251
271
  export interface CellSharedFormulaValue {
252
272
  sharedFormula: string;
253
273
  readonly formula?: string;
254
274
  result?: number | string | boolean | Date | CellErrorValue;
255
275
  date1904?: boolean;
256
276
  }
257
- export type CellValue = null | number | string | boolean | Date | undefined | CellErrorValue | CellRichTextValue | CellHyperlinkValue | CellFormulaValue | CellSharedFormulaValue;
277
+ export type CellValue = null | number | string | boolean | Date | undefined | CellErrorValue | CellRichTextValue | CellHyperlinkValue | CellFormulaValue | CellArrayFormulaValue | CellSharedFormulaValue;
258
278
  export interface CommentMargins {
259
279
  insetmode: "auto" | "custom";
260
280
  inset: number[];
@@ -271,11 +291,9 @@ export interface Comment {
271
291
  editAs?: CommentEditAs;
272
292
  }
273
293
  export type DataValidationOperator = "between" | "notBetween" | "equal" | "notEqual" | "greaterThan" | "lessThan" | "greaterThanOrEqual" | "lessThanOrEqual";
274
- export interface DataValidation {
275
- type: "list" | "whole" | "decimal" | "date" | "textLength" | "custom";
276
- formulae: any[];
294
+ /** Base properties shared by all data validation types */
295
+ interface DataValidationBase {
277
296
  allowBlank?: boolean;
278
- operator?: DataValidationOperator;
279
297
  error?: string;
280
298
  errorTitle?: string;
281
299
  errorStyle?: string;
@@ -284,16 +302,23 @@ export interface DataValidation {
284
302
  showErrorMessage?: boolean;
285
303
  showInputMessage?: boolean;
286
304
  }
305
+ /** Data validation that requires formulae and operator */
306
+ export interface DataValidationWithFormulae extends DataValidationBase {
307
+ type: "list" | "whole" | "decimal" | "date" | "textLength" | "custom";
308
+ formulae: any[];
309
+ operator?: DataValidationOperator;
310
+ }
311
+ /** Data validation type 'any' - no formulae needed */
312
+ export interface DataValidationAny extends DataValidationBase {
313
+ type: "any";
314
+ }
315
+ export type DataValidation = DataValidationWithFormulae | DataValidationAny;
287
316
  export interface Image {
288
317
  extension: "jpeg" | "png" | "gif";
289
318
  base64?: string;
290
319
  filename?: string;
291
320
  buffer?: Buffer;
292
321
  }
293
- export interface ImageRange {
294
- tl: IAnchor;
295
- br: IAnchor;
296
- }
297
322
  export interface ImagePosition {
298
323
  tl: {
299
324
  col: number;
@@ -304,6 +329,34 @@ export interface ImagePosition {
304
329
  height: number;
305
330
  };
306
331
  }
332
+ /** Anchor position for image placement */
333
+ export interface ImageAnchor {
334
+ col: number;
335
+ row: number;
336
+ nativeCol?: number;
337
+ nativeRow?: number;
338
+ nativeColOff?: number;
339
+ nativeRowOff?: number;
340
+ }
341
+ /** Range input for addImage - can be a string like "A1:B2" or an object */
342
+ export type AddImageRange = string | {
343
+ /** Top-left anchor position */
344
+ tl: ImageAnchor | string;
345
+ /** Bottom-right anchor position (optional if ext is provided) */
346
+ br?: ImageAnchor | string;
347
+ /** Image dimensions (alternative to br) */
348
+ ext?: {
349
+ width: number;
350
+ height: number;
351
+ };
352
+ /** How the image behaves when cells are resized */
353
+ editAs?: "oneCell" | "twoCell" | "absolute";
354
+ /** Hyperlink for the image */
355
+ hyperlinks?: {
356
+ hyperlink?: string;
357
+ tooltip?: string;
358
+ };
359
+ };
307
360
  export interface ImageHyperlinkValue {
308
361
  hyperlink: string;
309
362
  tooltip?: string;
@@ -319,7 +372,7 @@ export type Address = {
319
372
  address: string;
320
373
  col: number;
321
374
  row: number;
322
- $col$row: string;
375
+ $col$row?: string;
323
376
  };
324
377
  export type RowValues = CellValue[] | {
325
378
  [key: string]: CellValue;
@@ -331,10 +384,10 @@ export type IconSetTypes = "5Arrows" | "5ArrowsGray" | "5Boxes" | "5Quarters" |
331
384
  export type CfvoTypes = "percentile" | "percent" | "num" | "min" | "max" | "formula" | "autoMin" | "autoMax";
332
385
  export interface Cvfo {
333
386
  type: CfvoTypes;
334
- value?: number;
387
+ value?: number | string;
335
388
  }
336
389
  export interface ConditionalFormattingBaseRule {
337
- priority: number;
390
+ priority?: number;
338
391
  style?: Partial<Style>;
339
392
  }
340
393
  export interface ExpressionRuleType extends ConditionalFormattingBaseRule {
@@ -350,11 +403,11 @@ export interface Top10RuleType extends ConditionalFormattingBaseRule {
350
403
  type: "top10";
351
404
  rank: number;
352
405
  percent: boolean;
353
- bottom: boolean;
406
+ bottom?: boolean;
354
407
  }
355
408
  export interface AboveAverageRuleType extends ConditionalFormattingBaseRule {
356
409
  type: "aboveAverage";
357
- aboveAverage: boolean;
410
+ aboveAverage?: boolean;
358
411
  }
359
412
  export interface ColorScaleRuleType extends ConditionalFormattingBaseRule {
360
413
  type: "colorScale";
@@ -390,12 +443,17 @@ export interface DataBarRuleType extends ConditionalFormattingBaseRule {
390
443
  axisPosition?: "auto" | "middle" | "none";
391
444
  direction?: "context" | "leftToRight" | "rightToLeft";
392
445
  cfvo?: Cvfo[];
446
+ color?: Partial<Color>;
393
447
  }
394
448
  export type ConditionalFormattingRule = ExpressionRuleType | CellIsRuleType | Top10RuleType | AboveAverageRuleType | ColorScaleRuleType | IconSetRuleType | ContainsTextRuleType | TimePeriodRuleType | DataBarRuleType;
395
449
  export interface ConditionalFormattingOptions {
396
450
  ref: string;
397
451
  rules: ConditionalFormattingRule[];
398
452
  }
453
+ export interface ConditionalFormattingOptions {
454
+ ref: string;
455
+ rules: ConditionalFormattingRule[];
456
+ }
399
457
  export interface TableStyleProperties {
400
458
  theme?: string;
401
459
  showFirstColumn?: boolean;
@@ -409,6 +467,7 @@ export interface TableColumnProperties {
409
467
  totalsRowLabel?: string;
410
468
  totalsRowFunction?: "none" | "average" | "countNums" | "count" | "max" | "min" | "stdDev" | "var" | "sum" | "custom";
411
469
  totalsRowFormula?: string;
470
+ totalsRowResult?: CellFormulaValue["result"];
412
471
  style?: Partial<Style>;
413
472
  }
414
473
  export interface TableProperties {
@@ -459,6 +518,7 @@ export type DefinedNamesModel = DefinedNamesRanges[];
459
518
  export interface RowBreak {
460
519
  id: number;
461
520
  max: number;
462
- min: number;
521
+ min?: number;
463
522
  man: number;
464
523
  }
524
+ export {};
@@ -1,7 +1,10 @@
1
1
  import type { Address, Location } from "../types.js";
2
- type Range = Location & {
3
- tl: string | Address;
4
- br: string | Address;
2
+ type CachedAddress = Address & {
3
+ $col$row: string;
4
+ };
5
+ export type DecodedRange = Location & {
6
+ tl: string | CachedAddress;
7
+ br: string | CachedAddress;
5
8
  dimensions: string;
6
9
  sheetName?: string;
7
10
  };
@@ -9,21 +12,21 @@ interface ErrorReference {
9
12
  error: string;
10
13
  sheetName?: string;
11
14
  }
12
- type DecodeExResult = Address | Range | ErrorReference;
15
+ type DecodeExResult = CachedAddress | DecodedRange | ErrorReference;
13
16
  interface ColCache {
14
17
  _dictionary: string[];
15
18
  _l2nFill: number;
16
19
  _l2n: Record<string, number>;
17
20
  _n2l: string[];
18
- _hash: Record<string, Address>;
21
+ _hash: Record<string, CachedAddress>;
19
22
  _level(n: number): number;
20
23
  _fill(level: number): void;
21
24
  l2n(l: string): number;
22
25
  n2l(n: number): string;
23
26
  validateAddress(value: string): boolean;
24
- decodeAddress(value: string): Address;
25
- getAddress(r: number | string, c?: number): Address;
26
- decode(value: string): Address | Range;
27
+ decodeAddress(value: string): CachedAddress;
28
+ getAddress(r: number | string, c?: number): CachedAddress;
29
+ decode(value: string): CachedAddress | DecodedRange;
27
30
  decodeEx(value: string): DecodeExResult;
28
31
  encodeAddress(row: number, col: number): string;
29
32
  encode(...args: number[]): string;