quickspeadsheet 1.0.0

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.
@@ -0,0 +1,1147 @@
1
+ /**
2
+ * SpreadJS 核心类型定义
3
+ */
4
+
5
+ declare namespace GC {
6
+ namespace Spread {
7
+ /** 通用工具类 */
8
+ namespace Common {
9
+ /** 文化管理器 */
10
+ class CultureManager {
11
+ /** 获取当前文化 */
12
+ culture(): string;
13
+ /** 设置当前文化 */
14
+ culture(cultureName: string): void;
15
+ /** 添加文化信息 */
16
+ addCultureInfo(cultureName: string, cultureInfo: CultureInfo): void;
17
+ /** 获取文化信息 */
18
+ getCultureInfo(cultureName?: string | number): CultureInfo;
19
+ /** 获取当前文化信息 */
20
+ q4(cultureName?: string | number): CultureInfo;
21
+ }
22
+
23
+ /** 文化信息 */
24
+ class CultureInfo {
25
+ /** 数字格式 */
26
+ NumberFormat: {
27
+ currencyDecimalDigits: number;
28
+ currencyDecimalSeparator: string;
29
+ currencyGroupSeparator: string;
30
+ currencyGroupSizes: number[];
31
+ currencyNegativePattern: number;
32
+ currencyPositivePattern: number;
33
+ currencySymbol: string;
34
+ digitSubstitution: number;
35
+ isReadOnly: boolean;
36
+ numberGroupSizes: number[];
37
+ nanSymbol: string;
38
+ nativeDigits: string[];
39
+ numberNegativePattern: number;
40
+ negativeInfinitySymbol: string;
41
+ negativeSign: string;
42
+ numberDecimalDigits: number;
43
+ numberDecimalSeparator: string;
44
+ numberGroupSeparator: string;
45
+ positiveInfinitySymbol: string;
46
+ positiveSign: string;
47
+ percentDecimalDigits: number;
48
+ percentDecimalSeparator: string;
49
+ percentGroupSeparator: string;
50
+ percentGroupSizes: number[];
51
+ percentNegativePattern: number;
52
+ percentPositivePattern: number;
53
+ percentSymbol: string;
54
+ perMilleSymbol: string;
55
+ listSeparator: string;
56
+ arrayListSeparator: string;
57
+ arrayGroupSeparator: string;
58
+ dbNumber: any;
59
+ };
60
+
61
+ /** 日期时间格式 */
62
+ DateTimeFormat: {
63
+ abbreviatedDayNames: string[];
64
+ abbreviatedMonthGenitiveNames: string[];
65
+ abbreviatedMonthNames: string[];
66
+ amDesignator: string;
67
+ calendarIsReadOnly: boolean;
68
+ calendarWeekRule: number;
69
+ Calendar: {
70
+ MinSupportedDateTime: string;
71
+ MaxSupportedDateTime: string;
72
+ AlgorithmType: number;
73
+ CalendarType: number;
74
+ Eras: number[];
75
+ TwoDigitYearMax: number;
76
+ isReadOnly: boolean;
77
+ };
78
+ dateSeparator: string;
79
+ dayNames: string[];
80
+ firstDayOfWeek: number;
81
+ fullDateTimePattern: string;
82
+ longDatePattern: string;
83
+ longTimePattern: string;
84
+ monthDayPattern: string;
85
+ monthGenitiveNames: string[];
86
+ monthNames: string[];
87
+ nativeCalendarName: string;
88
+ pmDesignator: string;
89
+ rfc1123Pattern: string;
90
+ shortDatePattern: string;
91
+ shortestDayNames: string[];
92
+ shortTimePattern: string;
93
+ sortableDateTimePattern: string;
94
+ timeSeparator: string;
95
+ universalSortableDateTimePattern: string;
96
+ yearMonthPattern: string;
97
+ eras?: any;
98
+ };
99
+
100
+ /** 获取文化名称 */
101
+ name(): string;
102
+ /** 文化ID */
103
+ id: number;
104
+ }
105
+ }
106
+
107
+ /** 命令管理 */
108
+ namespace Commands {
109
+ /** 命令管理器 */
110
+ class CommandManager {
111
+ /** 添加命令 */
112
+ addCommand(commandName: string, execute: Function, canExecute: Function): void;
113
+ /** 执行命令 */
114
+ execute(commandName: string, ...args: any[]): boolean;
115
+ /** 检查命令是否可执行 */
116
+ canExecute(commandName: string, ...args: any[]): boolean;
117
+ }
118
+ }
119
+
120
+ /** 格式化工具 */
121
+ namespace Formatter {
122
+ /** 通用格式化器 */
123
+ class GeneralFormatter {
124
+ constructor(formatString: string, digitGroup: number);
125
+ /** 格式化值 */
126
+ format(value: any): string;
127
+ }
128
+ }
129
+
130
+ /** 迷你图 */
131
+ namespace Sparklines {
132
+ /** 迷你图类型 */
133
+ enum SparklineType {
134
+ line = 0,
135
+ column = 1,
136
+ winLoss = 2
137
+ }
138
+
139
+ /** 迷你图设置 */
140
+ interface SparklineSettings {
141
+ type: SparklineType;
142
+ showAxis?: boolean;
143
+ showMarkers?: boolean;
144
+ showFirst?: boolean;
145
+ showLast?: boolean;
146
+ showHigh?: boolean;
147
+ showLow?: boolean;
148
+ showNegative?: boolean;
149
+ lineWeight?: number;
150
+ colorSeries?: string;
151
+ colorNegative?: string;
152
+ colorAxis?: string;
153
+ colorMarkers?: string;
154
+ colorFirst?: string;
155
+ colorLast?: string;
156
+ colorHigh?: string;
157
+ colorLow?: string;
158
+ }
159
+ }
160
+
161
+ /** 切片器 */
162
+ namespace Slicers {
163
+ /** 切片器样式 */
164
+ interface SlicerStyle {
165
+ name: string;
166
+ styleElements?: Array<{ type: string; dxfId: string }>;
167
+ }
168
+ }
169
+
170
+ /** 计算引擎 */
171
+ namespace CalcEngine {
172
+ /** 基础函数 */
173
+ namespace BasicFunctions {
174
+ // 基础函数定义
175
+ }
176
+
177
+ /** 高级函数 */
178
+ namespace AdvancedFunctions {
179
+ // 高级函数定义
180
+ }
181
+ }
182
+
183
+ /** 表格核心功能 */
184
+ namespace Sheets {
185
+ /** 常用事件名(与 gcShim/spreadCompat 对齐的最小子集) */
186
+ const Events: {
187
+ ActiveCellChanged: 'ActiveCellChanged';
188
+ SelectionChanged: 'selectionChanged';
189
+ ValueChanged: 'valueChanged';
190
+ Paint: 'paint';
191
+ };
192
+
193
+ /** 水平位置 */
194
+ enum HorizontalPosition {
195
+ left = 0,
196
+ center = 1,
197
+ right = 2,
198
+ nearest = 3
199
+ }
200
+
201
+ /** 垂直位置 */
202
+ enum VerticalPosition {
203
+ top = 0,
204
+ center = 1,
205
+ bottom = 2,
206
+ nearest = 3
207
+ }
208
+
209
+ /** 调整大小提示 */
210
+ enum ShowResizeTip {
211
+ none = 0,
212
+ column = 1,
213
+ row = 2,
214
+ both = 3
215
+ }
216
+
217
+ /** 滚动提示 */
218
+ enum ShowScrollTip {
219
+ none = 0,
220
+ horizontal = 1,
221
+ vertical = 2,
222
+ both = 3
223
+ }
224
+
225
+ /** 自动调整类型 */
226
+ enum AutoFitType {
227
+ cell = 0,
228
+ cellWithHeader = 1
229
+ }
230
+
231
+ /** 无效操作类型 */
232
+ enum InvalidOperationType {
233
+ setFormula = 0,
234
+ copyPaste = 1,
235
+ dragFill = 2,
236
+ dragDrop = 3,
237
+ changePartOfArrayFormula = 4,
238
+ changeSheetName = 5
239
+ }
240
+
241
+ /** 调整零指示器 */
242
+ enum ResizeZeroIndicator {
243
+ "default" = 0,
244
+ enhanced = 1
245
+ }
246
+
247
+ /** 复制粘贴表头选项 */
248
+ enum CopyPasteHeaderOptions {
249
+ noHeaders = 0,
250
+ rowHeaders = 1,
251
+ columnHeaders = 2,
252
+ allHeaders = 3
253
+ }
254
+
255
+ /** 工作簿选项 */
256
+ interface WorkbookOptions {
257
+ allowUserDragDrop?: boolean;
258
+ allowUserDragFill?: boolean;
259
+ allowUserZoom?: boolean;
260
+ allowUserResize?: boolean;
261
+ allowUndo?: boolean;
262
+ allowSheetReorder?: boolean;
263
+ allowContextMenu?: boolean;
264
+ defaultDragFillType?: number;
265
+ showDragFillSmartTag?: boolean;
266
+ showHorizontalScrollbar?: boolean;
267
+ showVerticalScrollbar?: boolean;
268
+ scrollbarShowMax?: boolean;
269
+ scrollbarMaxAlign?: boolean;
270
+ tabStripVisible?: boolean;
271
+ tabStripRatio?: number;
272
+ tabEditable?: boolean;
273
+ newTabVisible?: boolean;
274
+ cutCopyIndicatorVisible?: boolean;
275
+ cutCopyIndicatorBorderColor?: string;
276
+ tabNavigationVisible?: boolean;
277
+ backColor?: string;
278
+ backgroundImage?: string | null;
279
+ backgroundImageLayout?: number;
280
+ showResizeTip?: number;
281
+ showDragDropTip?: boolean;
282
+ showDragFillTip?: boolean;
283
+ scrollIgnoreHidden?: boolean;
284
+ highlightInvalidData?: boolean;
285
+ showScrollTip?: number;
286
+ grayAreaBackColor?: string | null;
287
+ useTouchLayout?: boolean;
288
+ hideSelection?: boolean;
289
+ resizeZeroIndicator?: number;
290
+ allowUserEditFormula?: boolean;
291
+ enableFormulaTextbox?: boolean;
292
+ referenceStyle?: number;
293
+ autoFitType?: number;
294
+ allowCopyPasteExcelStyle?: boolean;
295
+ allowExtendPasteRange?: boolean;
296
+ copyPasteHeaderOptions?: number;
297
+ allowUserDragMerge?: boolean;
298
+ font?: any;
299
+ }
300
+
301
+ /** 工作簿 */
302
+ class Workbook {
303
+ constructor(container: HTMLElement, options?: WorkbookOptions);
304
+
305
+ /** 获取命令管理器 */
306
+ commandManager(): Commands.CommandManager;
307
+ /** 获取撤销管理器 */
308
+ undoManager(): any;
309
+ /** 获取活动工作表 */
310
+ getActiveSheet(): Worksheet;
311
+ /** 设置活动工作表 */
312
+ setActiveSheet(sheet: Worksheet | string): void;
313
+ /** 获取活动工作表索引 */
314
+ getActiveSheetIndex(): number;
315
+ /** 设置活动工作表索引 */
316
+ setActiveSheetIndex(index: number): void;
317
+ /** 添加工作表 */
318
+ addSheet(name?: string, index?: number): Worksheet;
319
+ /** 移除工作表 */
320
+ removeSheet(index: number): void;
321
+ /** 清空工作表 */
322
+ clearSheets(): void;
323
+ /** 获取工作表 */
324
+ getSheet(index: number): Worksheet | null;
325
+ /** 根据名称获取工作表 */
326
+ getSheetFromName(name: string): Worksheet | null;
327
+ /** 获取工作表索引 */
328
+ getSheetIndex(name: string): number | null;
329
+ /** 获取工作表数量 */
330
+ getSheetCount(): number;
331
+ /** 设置工作表数量 */
332
+ setSheetCount(count: number): void;
333
+ /** 绑定事件 */
334
+ bind(eventName: string, callback: (...args: any[]) => void): void;
335
+ /** 选区事件(标准载荷第4参) */
336
+ bind(eventName: 'selectionChanged', callback: (sheet: Worksheet, row: number, col: number, payload: SelectionChangedPayload) => void): void;
337
+ /** 值变更事件 */
338
+ bind(eventName: 'valueChanged', callback: (payload: ValueChangedPayload) => void): void;
339
+ /** 图表点击事件 */
340
+ bind(eventName: 'ChartClick', callback: (payload: ChartClickPayload) => void): void;
341
+ /** 图表元素点击事件 */
342
+ bind(eventName: 'ChartElementClick', callback: (payload: ChartElementClickPayload) => void): void;
343
+ /** 兼容签名:bind(name, data, callback) */
344
+ bind(eventName: string, data: any, callback: (...args: any[]) => void): void;
345
+ /** 事件绑定别名 */
346
+ on(eventName: string, callback: (...args: any[]) => void): void;
347
+ /** 选区事件(标准载荷第4参) */
348
+ on(eventName: 'selectionChanged', callback: (sheet: Worksheet, row: number, col: number, payload: SelectionChangedPayload) => void): void;
349
+ /** 值变更事件 */
350
+ on(eventName: 'valueChanged', callback: (payload: ValueChangedPayload) => void): void;
351
+ /** 图表点击事件 */
352
+ on(eventName: 'ChartClick', callback: (payload: ChartClickPayload) => void): void;
353
+ /** 图表元素点击事件 */
354
+ on(eventName: 'ChartElementClick', callback: (payload: ChartElementClickPayload) => void): void;
355
+ /** 解绑事件 */
356
+ unbind(eventName: string, callback?: (...args: any[]) => void): void;
357
+ /** 事件解绑别名 */
358
+ off(eventName: string, callback?: (...args: any[]) => void): void;
359
+ /** 解绑所有事件 */
360
+ unbindAll(): void;
361
+ /** 触发事件 */
362
+ trigger(eventName: string, ...args: any[]): void;
363
+ /** 事件触发别名 */
364
+ emit(eventName: string, ...args: any[]): void;
365
+ /** 剪贴板操作 */
366
+ copy(): void;
367
+ paste(): void;
368
+ /** 挂起绘制 */
369
+ suspendPaint(): void;
370
+ /** 恢复绘制 */
371
+ resumePaint(): void;
372
+ /** 检查绘制是否挂起 */
373
+ isPaintSuspended(): boolean;
374
+ /** 刷新 */
375
+ refresh(): void;
376
+ /** 重绘 */
377
+ repaint(): void;
378
+ /** 销毁 */
379
+ destroy(): void;
380
+ /** 获取宿主元素 */
381
+ getHost(): HTMLElement;
382
+ /** 失效布局 */
383
+ invalidateLayout(): void;
384
+ /** 添加命名样式 */
385
+ addNamedStyle(style: any): void;
386
+ /** 获取命名样式 */
387
+ getNamedStyle(name: string): any;
388
+ /** 移除命名样式 */
389
+ removeNamedStyle(name: string): void;
390
+ /** 获取所有命名样式 */
391
+ getNamedStyles(): any[];
392
+ /** 聚焦 */
393
+ focus(focus?: boolean): void;
394
+ /** 点击检测(clientX/clientY) */
395
+ hitTest(clientX: number, clientY: number): any;
396
+ /** 获取单元格矩形 */
397
+ getCellRect(row: number, col: number): { x: number; y: number; width: number; height: number } | null;
398
+ /** 进入活动单元格编辑(Canvas 模式) */
399
+ startEdit(): void;
400
+ }
401
+
402
+ /** 工作表 */
403
+ class Worksheet {
404
+ /** 获取工作表名称 */
405
+ name(): string;
406
+ /** 设置工作表名称 */
407
+ name(name: string): void;
408
+ /** 获取工作表可见性 */
409
+ visible(): boolean;
410
+ /** 设置工作表可见性 */
411
+ visible(visible: boolean): void;
412
+ /** 获取行数 */
413
+ getRowCount(): number;
414
+ /** 设置行数 */
415
+ setRowCount(count: number): void;
416
+ /** 获取列数 */
417
+ getColumnCount(): number;
418
+ /** 设置列数 */
419
+ setColumnCount(count: number): void;
420
+ /** 获取单元格值 */
421
+ getValue(row: number, col: number): any;
422
+ /** 设置单元格值 */
423
+ setValue(row: number, col: number, value: any): void;
424
+ /** 设置单元格公式 */
425
+ setFormula(row: number, col: number, formula: string | null): void;
426
+ /** 获取单元格样式 */
427
+ getStyle(row: number, col: number): any;
428
+ /** 设置单元格样式 */
429
+ setStyle(row: number, col: number, style: any): void;
430
+ /** 获取合并单元格信息 */
431
+ getMergedRange(row: number, col: number): any;
432
+ /** 合并单元格 */
433
+ merge(row: number, col: number, rowCount: number, colCount: number): void;
434
+ /** 取消合并单元格 */
435
+ unmerge(row: number, col: number): void;
436
+ /** 获取冻结行数 */
437
+ frozenRowCount(): number;
438
+ /** 设置冻结行数 */
439
+ frozenRowCount(count: number): void;
440
+ /** 获取冻结列数 */
441
+ frozenColumnCount(): number;
442
+ /** 设置冻结列数 */
443
+ frozenColumnCount(count: number): void;
444
+ /** 获取行高 */
445
+ getRowHeight(row: number): number;
446
+ /** 设置行高 */
447
+ setRowHeight(row: number, height: number): void;
448
+ /** 获取列宽 */
449
+ getColumnWidth(col: number): number;
450
+ /** 设置列宽 */
451
+ setColumnWidth(col: number, width: number): void;
452
+ /** 自动调整行高 */
453
+ autoFitRow(row: number): void;
454
+ /** 自动调整列宽 */
455
+ autoFitColumn(col: number): void;
456
+ /** 获取单元格类型 */
457
+ getCellType(row: number, col: number): CellTypes.ICellType;
458
+ /** 设置单元格类型 */
459
+ setCellType(row: number, col: number, cellType: CellTypes.ICellType): void;
460
+ /** 绑定事件 */
461
+ bind(eventName: string, data: any, callback: Function): void;
462
+ /** 解绑事件 */
463
+ unbind(eventName: string, callback?: Function): void;
464
+ /** 解绑所有事件 */
465
+ unbindAll(): void;
466
+ /** 挂起事件 */
467
+ suspendEvent(): void;
468
+ /** 恢复事件 */
469
+ resumeEvent(): void;
470
+ /** 重绘 */
471
+ repaint(): void;
472
+ /** 失效布局 */
473
+ invalidateLayout(): void;
474
+ }
475
+
476
+ /** 单元格类型 */
477
+ namespace CellTypes {
478
+ /** 单元格类型接口 */
479
+ interface ICellType {
480
+ /** 获取编辑器 */
481
+ getEditor(): any;
482
+ /** 验证值 */
483
+ validate(value: any): boolean;
484
+ /** 格式化值 */
485
+ format(value: any): string;
486
+ /** 解析值 */
487
+ parse(text: string): any;
488
+ }
489
+
490
+ /** 文本单元格类型 */
491
+ class TextCellType implements ICellType {
492
+ constructor(options?: any);
493
+ getEditor(): any;
494
+ validate(value: any): boolean;
495
+ format(value: any): string;
496
+ parse(text: string): any;
497
+ }
498
+
499
+ /** 数字单元格类型 */
500
+ class NumberCellType implements ICellType {
501
+ constructor(options?: any);
502
+ getEditor(): any;
503
+ validate(value: any): boolean;
504
+ format(value: any): string;
505
+ parse(text: string): any;
506
+ }
507
+
508
+ /** 日期单元格类型 */
509
+ class DateCellType implements ICellType {
510
+ constructor(options?: any);
511
+ getEditor(): any;
512
+ validate(value: any): boolean;
513
+ format(value: any): string;
514
+ parse(text: string): any;
515
+ }
516
+
517
+ /** 下拉列表单元格类型 */
518
+ class DropDownListCellType implements ICellType {
519
+ constructor(items: any[]);
520
+ getEditor(): any;
521
+ validate(value: any): boolean;
522
+ format(value: any): string;
523
+ parse(text: string): any;
524
+ }
525
+
526
+ /** 复选框单元格类型 */
527
+ class CheckBoxCellType implements ICellType {
528
+ constructor(options?: any);
529
+ getEditor(): any;
530
+ validate(value: any): boolean;
531
+ format(value: any): string;
532
+ parse(text: string): any;
533
+ }
534
+ }
535
+
536
+ /** 绑定功能 */
537
+ namespace Bindings {
538
+ /** 绑定类型 */
539
+ enum BindingType {
540
+ cell = 0,
541
+ range = 1,
542
+ table = 2,
543
+ list = 3,
544
+ matrix = 4
545
+ }
546
+
547
+ /** 绑定接口 */
548
+ interface IBinding {
549
+ /** 获取绑定类型 */
550
+ bindingType(): BindingType;
551
+ /** 获取绑定路径 */
552
+ path(): string;
553
+ /** 获取绑定范围 */
554
+ range(): string;
555
+ /** 获取绑定名称 */
556
+ name(): string;
557
+ /** 设置绑定数据 */
558
+ setValue(value: any): void;
559
+ /** 获取绑定数据 */
560
+ getValue(): any;
561
+ /** 解绑 */
562
+ unbind(): void;
563
+ }
564
+ }
565
+
566
+ /** 搜索功能 */
567
+ namespace Search {
568
+ /** 搜索选项 */
569
+ interface SearchOptions {
570
+ /** 搜索值 */
571
+ value: string;
572
+ /** 是否区分大小写 */
573
+ caseSensitive?: boolean;
574
+ /** 是否全字匹配 */
575
+ wholeWord?: boolean;
576
+ /** 是否使用正则表达式 */
577
+ useRegex?: boolean;
578
+ /** 搜索范围 */
579
+ range?: string;
580
+ }
581
+
582
+ /** 搜索结果 */
583
+ interface SearchResult {
584
+ /** 行索引 */
585
+ row: number;
586
+ /** 列索引 */
587
+ col: number;
588
+ /** 工作表 */
589
+ sheet: Worksheet;
590
+ }
591
+ }
592
+
593
+ /** 大纲功能 */
594
+ namespace Outlines {
595
+ /** 大纲级别 */
596
+ interface OutlineLevel {
597
+ /** 行大纲级别 */
598
+ rowLevels: number[];
599
+ /** 列大纲级别 */
600
+ columnLevels: number[];
601
+ }
602
+ }
603
+
604
+ /** 触摸支持 */
605
+ namespace Touch {
606
+ /** 触摸配置 */
607
+ interface TouchConfig {
608
+ /** 是否启用触摸支持 */
609
+ enabled?: boolean;
610
+ /** 触摸手势配置 */
611
+ gestures?: any;
612
+ }
613
+ }
614
+
615
+ /** 浮动对象 */
616
+ namespace FloatingObjects {
617
+ /** 浮动对象类型 */
618
+ enum FloatingObjectType {
619
+ shape = 0,
620
+ image = 1,
621
+ textbox = 2
622
+ }
623
+
624
+ /** 浮动对象 */
625
+ interface FloatingObject {
626
+ /** 获取对象类型 */
627
+ type(): FloatingObjectType;
628
+ /** 获取对象位置 */
629
+ position(): { x: number; y: number };
630
+ /** 设置对象位置 */
631
+ position(pos: { x: number; y: number }): void;
632
+ /** 获取对象大小 */
633
+ size(): { width: number; height: number };
634
+ /** 设置对象大小 */
635
+ size(size: { width: number; height: number }): void;
636
+ /** 获取对象可见性 */
637
+ visible(): boolean;
638
+ /** 设置对象可见性 */
639
+ visible(visible: boolean): void;
640
+ /** 移除对象 */
641
+ remove(): void;
642
+ }
643
+ }
644
+
645
+ /** 迷你图 */
646
+ namespace Sparklines {
647
+ /** 添加迷你图 */
648
+ function add(worksheet: Worksheet, range: string, dataRange: string, settings: SparklineSettings): void;
649
+ /** 移除迷你图 */
650
+ function remove(worksheet: Worksheet, range: string): void;
651
+ /** 获取迷你图设置 */
652
+ function getSettings(worksheet: Worksheet, range: string): SparklineSettings;
653
+ /** 设置迷你图设置 */
654
+ function setSettings(worksheet: Worksheet, range: string, settings: SparklineSettings): void;
655
+ }
656
+
657
+ /** 注释 */
658
+ namespace Comments {
659
+ /** 注释选项 */
660
+ interface CommentOptions {
661
+ /** 注释文本 */
662
+ text: string;
663
+ /** 注释作者 */
664
+ author?: string;
665
+ /** 注释位置 */
666
+ position?: { x: number; y: number };
667
+ /** 注释大小 */
668
+ size?: { width: number; height: number };
669
+ }
670
+
671
+ /** 添加注释 */
672
+ function add(worksheet: Worksheet, row: number, col: number, options: CommentOptions): void;
673
+ /** 移除注释 */
674
+ function remove(worksheet: Worksheet, row: number, col: number): void;
675
+ /** 获取注释 */
676
+ function get(worksheet: Worksheet, row: number, col: number): any;
677
+ /** 显示注释 */
678
+ function show(worksheet: Worksheet, row: number, col: number): void;
679
+ /** 隐藏注释 */
680
+ function hide(worksheet: Worksheet, row: number, col: number): void;
681
+ }
682
+
683
+ /** 条件格式 */
684
+ namespace ConditionalFormatting {
685
+ /** 条件格式类型 */
686
+ enum ConditionType {
687
+ cellValue = 0,
688
+ expression = 1,
689
+ top10 = 2,
690
+ unique = 3,
691
+ duplicate = 4,
692
+ containsText = 5,
693
+ notContainsText = 6,
694
+ beginsWith = 7,
695
+ endsWith = 8,
696
+ error = 9,
697
+ noError = 10,
698
+ dateOccurring = 11,
699
+ aboveAverage = 12,
700
+ colorScale = 13,
701
+ dataBar = 14,
702
+ iconSet = 15
703
+ }
704
+
705
+ /** 条件格式规则 */
706
+ interface ConditionalFormatRule {
707
+ /** 条件类型 */
708
+ type: ConditionType;
709
+ /** 条件值 */
710
+ values?: any[];
711
+ /** 条件运算符 */
712
+ operator?: string;
713
+ /** 格式 */
714
+ format?: any;
715
+ }
716
+
717
+ /** 添加条件格式 */
718
+ function addRule(worksheet: Worksheet, range: string, rule: ConditionalFormatRule): number;
719
+ /** 移除条件格式 */
720
+ function removeRule(worksheet: Worksheet, index: number): void;
721
+ /** 获取条件格式规则 */
722
+ function getRule(worksheet: Worksheet, index: number): ConditionalFormatRule;
723
+ /** 设置条件格式规则 */
724
+ function setRule(worksheet: Worksheet, index: number, rule: ConditionalFormatRule): void;
725
+ }
726
+
727
+ /** 筛选 */
728
+ namespace Filter {
729
+ /** 筛选选项 */
730
+ interface FilterOptions {
731
+ /** 筛选范围 */
732
+ range: string;
733
+ /** 筛选条件 */
734
+ conditions?: Array<{ col: number; criteria: any }>;
735
+ }
736
+
737
+ /** 添加筛选 */
738
+ function add(worksheet: Worksheet, options: FilterOptions): void;
739
+ /** 移除筛选 */
740
+ function remove(worksheet: Worksheet): void;
741
+ /** 应用筛选 */
742
+ function apply(worksheet: Worksheet): void;
743
+ /** 清除筛选 */
744
+ function clear(worksheet: Worksheet): void;
745
+ }
746
+
747
+ /** 表格 */
748
+ namespace Tables {
749
+ /** 表格选项 */
750
+ interface TableOptions {
751
+ /** 表格范围 */
752
+ range: string;
753
+ /** 表格名称 */
754
+ name?: string;
755
+ /** 是否有表头 */
756
+ hasHeader?: boolean;
757
+ /** 是否有汇总行 */
758
+ hasTotal?: boolean;
759
+ /** 表格样式 */
760
+ style?: string;
761
+ }
762
+
763
+ /** 表格 */
764
+ interface Table {
765
+ /** 获取表格名称 */
766
+ name(): string;
767
+ /** 设置表格名称 */
768
+ name(name: string): void;
769
+ /** 获取表格范围 */
770
+ range(): string;
771
+ /** 设置表格范围 */
772
+ range(range: string): void;
773
+ /** 获取表格样式 */
774
+ style(): string;
775
+ /** 设置表格样式 */
776
+ style(style: string): void;
777
+ /** 移除表格 */
778
+ remove(): void;
779
+ }
780
+
781
+ /** 添加表格 */
782
+ function add(worksheet: Worksheet, options: TableOptions): Table;
783
+ /** 获取表格 */
784
+ function get(worksheet: Worksheet, name: string): Table;
785
+ /** 移除表格 */
786
+ function remove(worksheet: Worksheet, name: string): void;
787
+ }
788
+
789
+ /** 切片器 */
790
+ namespace Slicers {
791
+ /** 切片器选项 */
792
+ interface SlicerOptions {
793
+ /** 切片器名称 */
794
+ name: string;
795
+ /** 切片器标题 */
796
+ caption?: string;
797
+ /** 切片器位置 */
798
+ position?: { x: number; y: number };
799
+ /** 切片器大小 */
800
+ size?: { width: number; height: number };
801
+ /** 切片器样式 */
802
+ style?: string;
803
+ /** 列数 */
804
+ columnCount?: number;
805
+ }
806
+
807
+ /** 切片器 */
808
+ interface Slicer {
809
+ /** 获取切片器名称 */
810
+ name(): string;
811
+ /** 设置切片器名称 */
812
+ name(name: string): void;
813
+ /** 获取切片器标题 */
814
+ caption(): string;
815
+ /** 设置切片器标题 */
816
+ caption(caption: string): void;
817
+ /** 获取切片器位置 */
818
+ position(): { x: number; y: number };
819
+ /** 设置切片器位置 */
820
+ position(pos: { x: number; y: number }): void;
821
+ /** 获取切片器大小 */
822
+ size(): { width: number; height: number };
823
+ /** 设置切片器大小 */
824
+ size(size: { width: number; height: number }): void;
825
+ /** 获取切片器样式 */
826
+ style(): string;
827
+ /** 设置切片器样式 */
828
+ style(style: string): void;
829
+ /** 移除切片器 */
830
+ remove(): void;
831
+ }
832
+
833
+ /** 添加切片器 */
834
+ function add(worksheet: Worksheet, tableName: string, columnName: string, options: SlicerOptions): Slicer;
835
+ /** 获取切片器 */
836
+ function get(worksheet: Worksheet, name: string): Slicer;
837
+ /** 移除切片器 */
838
+ function remove(worksheet: Worksheet, name: string): void;
839
+ }
840
+
841
+ /** 数据验证 */
842
+ namespace DataValidation {
843
+ /** 数据验证类型 */
844
+ enum ValidationType {
845
+ none = 0,
846
+ wholeNumber = 1,
847
+ decimal = 2,
848
+ list = 3,
849
+ date = 4,
850
+ time = 5,
851
+ textLength = 6,
852
+ custom = 7
853
+ }
854
+
855
+ /** 数据验证运算符 */
856
+ enum ValidationOperator {
857
+ between = 0,
858
+ notBetween = 1,
859
+ equalTo = 2,
860
+ notEqualTo = 3,
861
+ greaterThan = 4,
862
+ greaterThanOrEqual = 5,
863
+ lessThan = 6,
864
+ lessThanOrEqual = 7
865
+ }
866
+
867
+ /** 数据验证选项 */
868
+ interface ValidationOptions {
869
+ /** 验证类型 */
870
+ type: ValidationType;
871
+ /** 验证运算符 */
872
+ operator?: ValidationOperator;
873
+ /** 验证值 */
874
+ values?: any[];
875
+ /** 是否忽略空值 */
876
+ ignoreBlank?: boolean;
877
+ /** 错误消息 */
878
+ errorMessage?: string;
879
+ /** 错误标题 */
880
+ errorTitle?: string;
881
+ /** 输入消息 */
882
+ inputMessage?: string;
883
+ /** 输入标题 */
884
+ inputTitle?: string;
885
+ /** 是否显示错误消息 */
886
+ showErrorMessage?: boolean;
887
+ /** 是否显示输入消息 */
888
+ showInputMessage?: boolean;
889
+ }
890
+
891
+ /** 添加数据验证 */
892
+ function add(worksheet: Worksheet, range: string, options: ValidationOptions): void;
893
+ /** 移除数据验证 */
894
+ function remove(worksheet: Worksheet, range: string): void;
895
+ /** 获取数据验证 */
896
+ function get(worksheet: Worksheet, row: number, col: number): ValidationOptions;
897
+ }
898
+
899
+ /** 填充功能 */
900
+ namespace Fill {
901
+ /** 填充类型 */
902
+ enum FillType {
903
+ copy = 0,
904
+ series = 1,
905
+ growth = 2,
906
+ date = 3,
907
+ linear = 4,
908
+ auto = 5
909
+ }
910
+
911
+ /** 填充选项 */
912
+ interface FillOptions {
913
+ /** 填充类型 */
914
+ fillType: FillType;
915
+ /** 填充方向 */
916
+ direction?: string;
917
+ /** 步长 */
918
+ step?: number;
919
+ /** 终止值 */
920
+ stopValue?: any;
921
+ }
922
+
923
+ /** 执行填充 */
924
+ function fill(worksheet: Worksheet, range: string, options: FillOptions): void;
925
+ }
926
+
927
+ /** 上下文菜单 */
928
+ namespace ContextMenu {
929
+ /** 菜单项 */
930
+ interface MenuItem {
931
+ /** 菜单项文本 */
932
+ text: string;
933
+ /** 菜单项图标 */
934
+ icon?: string;
935
+ /** 菜单项点击回调 */
936
+ command?: string | Function;
937
+ /** 子菜单项 */
938
+ items?: MenuItem[];
939
+ /** 是否分隔线 */
940
+ separator?: boolean;
941
+ /** 是否禁用 */
942
+ disabled?: boolean;
943
+ /** 是否可见 */
944
+ visible?: boolean;
945
+ }
946
+
947
+ /** 上下文菜单选项 */
948
+ interface ContextMenuOptions {
949
+ /** 菜单项 */
950
+ items: MenuItem[];
951
+ /** 是否启用默认菜单项 */
952
+ useDefaultItems?: boolean;
953
+ }
954
+
955
+ /** 注册上下文菜单 */
956
+ function register(contextMenu: ContextMenuOptions): void;
957
+ /** 取消注册上下文菜单 */
958
+ function unregister(): void;
959
+ }
960
+
961
+ interface SelectionRange {
962
+ row: number;
963
+ col: number;
964
+ rowCount: number;
965
+ colCount: number;
966
+ }
967
+
968
+ interface SelectionChangedPayload {
969
+ sheet: Worksheet;
970
+ row: number;
971
+ col: number;
972
+ ranges: SelectionRange[];
973
+ oldRanges: SelectionRange[];
974
+ }
975
+
976
+ interface ValueChangedPayload {
977
+ sheet: Worksheet;
978
+ row: number;
979
+ col: number;
980
+ oldValue: any;
981
+ newValue: any;
982
+ }
983
+
984
+ interface ChartClickPayload {
985
+ sheet: Worksheet;
986
+ shapeIndex: number;
987
+ }
988
+
989
+ interface ChartElementClickPayload extends ChartClickPayload {
990
+ seriesIndex: number;
991
+ pointIndex: number;
992
+ series?: any;
993
+ point?: any;
994
+ }
995
+
996
+ /** 公式文本框 */
997
+ namespace FormulaTextBox {
998
+ /** 公式文本框选项 */
999
+ interface FormulaTextBoxOptions {
1000
+ /** 容器元素 */
1001
+ container: HTMLElement;
1002
+ /** 是否启用 */
1003
+ enabled?: boolean;
1004
+ /** 是否显示公式栏 */
1005
+ visible?: boolean;
1006
+ }
1007
+
1008
+ /** 公式文本框 */
1009
+ class FormulaTextBox {
1010
+ constructor(options: FormulaTextBoxOptions);
1011
+ /** 绑定工作簿 */
1012
+ bindWorkbook(workbook: Workbook): void;
1013
+ /** 解绑工作簿 */
1014
+ unbindWorkbook(): void;
1015
+ /** 获取文本 */
1016
+ text(): string;
1017
+ /** 设置文本 */
1018
+ text(text: string): void;
1019
+ /** 显示 */
1020
+ show(): void;
1021
+ /** 隐藏 */
1022
+ hide(): void;
1023
+ /** 销毁 */
1024
+ destroy(): void;
1025
+ }
1026
+ }
1027
+
1028
+ /** 大纲列 */
1029
+ namespace OutlineColumn {
1030
+ /** 添加大纲列 */
1031
+ function add(worksheet: Worksheet, position: number): void;
1032
+ /** 移除大纲列 */
1033
+ function remove(worksheet: Worksheet): void;
1034
+ /** 获取大纲列位置 */
1035
+ function position(worksheet: Worksheet): number;
1036
+ /** 设置大纲列位置 */
1037
+ function position(worksheet: Worksheet, position: number): void;
1038
+ }
1039
+
1040
+ /** 拖动合并 */
1041
+ namespace DragMerge {
1042
+ /** 启用拖动合并 */
1043
+ function enable(worksheet: Worksheet, enabled: boolean): void;
1044
+ /** 检查是否启用拖动合并 */
1045
+ function isEnabled(worksheet: Worksheet): boolean;
1046
+ }
1047
+ }
1048
+ }
1049
+ }
1050
+
1051
+ /** 导出Spread命名空间 */
1052
+ declare const Spread: typeof GC.Spread;
1053
+ export default Spread;
1054
+
1055
+ /** 运行时兼容辅助:按需创建轻量 GC 命名空间 */
1056
+ export declare function createGcShim(target?: any): any;
1057
+ /** 是否存在原生 GC.Spread 运行时 */
1058
+ export declare function hasGCSpread(): boolean;
1059
+
1060
+ /** createSpreadCompat 返回的最小兼容接口 */
1061
+ export interface SpreadCompat {
1062
+ Events: {
1063
+ ActiveCellChanged: 'ActiveCellChanged';
1064
+ SelectionChanged: 'SelectionChanged';
1065
+ ValueChanged: 'ValueChanged';
1066
+ Paint: 'Paint';
1067
+ ChartClick: 'ChartClick';
1068
+ ChartElementClick: 'ChartElementClick';
1069
+ };
1070
+ fromJSON(data: any): void;
1071
+ toJSON(...args: any[]): any;
1072
+ getActiveSheet(): any;
1073
+ getActiveSheetIndex(): number;
1074
+ getWorkbook(): any;
1075
+ getHost(): HTMLElement | null;
1076
+ getSheet(index: number): any;
1077
+ getSheetCount(): number;
1078
+ addSheet(index: number, sheet: any): void;
1079
+ setActiveSheetIndex(index: number): void;
1080
+ getActiveRowIndex(): number;
1081
+ getActiveColumnIndex(): number;
1082
+ setActiveCell(row: number, col: number): void;
1083
+ getSelections(): any[];
1084
+ setSelections(ranges: any[]): void;
1085
+ selectionUnit(val?: number): any;
1086
+ selectionPolicy(val?: number): any;
1087
+ navigateSelection(direction: string): void;
1088
+ suspendPaint(): any;
1089
+ resumePaint(): any;
1090
+ undoManager(): any;
1091
+ copy(): void;
1092
+ paste(): void;
1093
+ hitTest(clientX: number, clientY: number): any;
1094
+ getCellRect(row: number, col: number): { x: number; y: number; width: number; height: number } | null;
1095
+ startEdit(): void;
1096
+ invalidateLayout(): any;
1097
+ focus(): void;
1098
+ refresh(): void;
1099
+ destroy(): void;
1100
+ bind(event: string, handler: (...args: any[]) => void): any;
1101
+ bind(event: 'selectionChanged', handler: (sheet: GC.Spread.Sheets.Worksheet, row: number, col: number, payload: GC.Spread.Sheets.SelectionChangedPayload) => void): any;
1102
+ bind(event: 'valueChanged', handler: (payload: GC.Spread.Sheets.ValueChangedPayload) => void): any;
1103
+ bind(event: 'ChartClick', handler: (payload: GC.Spread.Sheets.ChartClickPayload) => void): any;
1104
+ bind(event: 'ChartElementClick', handler: (payload: GC.Spread.Sheets.ChartElementClickPayload) => void): any;
1105
+ unbind(event: string, handler?: (...args: any[]) => void): any;
1106
+ unbindAll(): any;
1107
+ trigger(event: string, ...args: any[]): any;
1108
+ trigger(event: 'ChartClick', payload: GC.Spread.Sheets.ChartClickPayload): any;
1109
+ trigger(event: 'ChartElementClick', payload: GC.Spread.Sheets.ChartElementClickPayload): any;
1110
+ on(event: string, handler: (...args: any[]) => void): any;
1111
+ on(event: 'selectionChanged', handler: (sheet: GC.Spread.Sheets.Worksheet, row: number, col: number, payload: GC.Spread.Sheets.SelectionChangedPayload) => void): any;
1112
+ on(event: 'valueChanged', handler: (payload: GC.Spread.Sheets.ValueChangedPayload) => void): any;
1113
+ on(event: 'ChartClick', handler: (payload: GC.Spread.Sheets.ChartClickPayload) => void): any;
1114
+ on(event: 'ChartElementClick', handler: (payload: GC.Spread.Sheets.ChartElementClickPayload) => void): any;
1115
+ off(event: string, handler?: (...args: any[]) => void): any;
1116
+ emit(event: string, ...args: any[]): any;
1117
+ emit(event: 'ChartClick', payload: GC.Spread.Sheets.ChartClickPayload): any;
1118
+ emit(event: 'ChartElementClick', payload: GC.Spread.Sheets.ChartElementClickPayload): any;
1119
+ eventMap: Record<string, string>;
1120
+ options: Record<string, any>;
1121
+ container: HTMLElement | null;
1122
+ sheets: any[];
1123
+ }
1124
+
1125
+ /** 运行时兼容辅助:创建 Spread 兼容包装 */
1126
+ export declare function createSpreadCompat(workbook: any): SpreadCompat | null;
1127
+
1128
+ /** 图表兼容辅助:统一 parse/render 入口 */
1129
+ export declare const GcChartsShim: {
1130
+ parse(chartXml: string): any;
1131
+ render(container: HTMLElement, chartData: any, options?: any): {
1132
+ chart: any;
1133
+ update(nextData?: any, nextOptions?: any): any;
1134
+ destroy(): void;
1135
+ hitTest(clientX: number, clientY: number): any;
1136
+ setActiveElements(seriesIndex?: number, pointIndex?: number): any;
1137
+ getChartInstance(): any;
1138
+ };
1139
+ create(container: HTMLElement, chartData: any, options?: any): {
1140
+ chart: any;
1141
+ update(nextData?: any, nextOptions?: any): any;
1142
+ destroy(): void;
1143
+ hitTest(clientX: number, clientY: number): any;
1144
+ setActiveElements(seriesIndex?: number, pointIndex?: number): any;
1145
+ getChartInstance(): any;
1146
+ };
1147
+ };