ooxml-excel-editor 1.3.3 → 1.7.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.
- package/CHANGELOG.md +218 -0
- package/README.md +27 -8
- package/dist/chunks/index-BNQIWClg.js +12532 -0
- package/dist/chunks/{index.es-D9BGYyEt.js → index.es-BVXJfTmn.js} +1 -1
- package/dist/chunks/{index.es-n6H_ncuE.js → index.es-gb2_kTSZ.js} +1 -1
- package/dist/chunks/{jspdf.es.min-Dbn0akWf.js → jspdf.es.min-C7JL2eZm.js} +2 -2
- package/dist/chunks/{jspdf.es.min-B6-ocR7J.js → jspdf.es.min-CBWDsR7H.js} +2 -2
- package/dist/chunks/plugin-overlay-C_qauTcv.js +11057 -0
- package/dist/chunks/{toolbar-icons-fOm95ASq.js → toolbar-icons-CD7G5Aof.js} +62 -71
- package/dist/components/ExcelViewer.vue.d.ts +29 -1
- package/dist/core/edit/clipboard-html.d.ts +12 -0
- package/dist/core/edit/clipboard-snapshot.d.ts +76 -0
- package/dist/core/edit/context-menu.d.ts +14 -1
- package/dist/core/edit/edit-controller.d.ts +22 -1
- package/dist/core/edit/paste-behavior.d.ts +33 -0
- package/dist/core/edit/types.d.ts +20 -0
- package/dist/core/export/exporter.d.ts +2 -0
- package/dist/core/export/pivot-tables.d.ts +17 -0
- package/dist/core/export/xlsx-writer.d.ts +6 -0
- package/dist/core/index.d.ts +4 -2
- package/dist/core/model/mutations.d.ts +2 -0
- package/dist/core/model/types.d.ts +61 -0
- package/dist/core/parser/pivot-parser.d.ts +3 -0
- package/dist/core/plugin.d.ts +47 -5
- package/dist/core/render/canvas-renderer.d.ts +12 -0
- package/dist/core/render/pivot-toggle.d.ts +13 -0
- package/dist/core/viewer/controller.d.ts +82 -6
- package/dist/core/viewer/overlay-manager.d.ts +1 -0
- package/dist/core/viewer/paste-config-host.d.ts +12 -0
- package/dist/core/viewer/pivot-dialog-host.d.ts +48 -0
- package/dist/core/viewer/readonly-prompt-host.d.ts +23 -0
- package/dist/core.js +67 -64
- package/dist/index.d.ts +2 -2
- package/dist/index.js +948 -873
- package/dist/react/ExcelViewer.d.ts +25 -4
- package/dist/react.js +621 -535
- package/dist/style.css +1 -1
- package/dist/vue2.css +1 -1
- package/dist/vue2.js +1 -1
- package/package.json +1 -1
- package/dist/chunks/index-6q8kSGQg.js +0 -10575
- package/dist/chunks/plugin-overlay-BUrPrpT2.js +0 -9146
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { CSSProperties } from 'react';
|
|
2
2
|
import { CellModel, CellStyleFn, CellStyleOverride, ImageAnchor, MergeRange, TransformModelFn, WorkbookModel } from '../core/model/types';
|
|
3
3
|
import { EditableTarget } from '../core/edit/types';
|
|
4
|
+
import { PasteBehavior } from '../core/edit/paste-behavior';
|
|
4
5
|
import { FormulaEngineFactory } from '../core/formula/engine';
|
|
5
6
|
import { CellChangePayload, DimChangePayload, DirtyChangePayload, ImageChangePayload, StructChangePayload } from '../core/edit/edit-controller';
|
|
6
7
|
import { CellSnapshot } from '../core/model/snapshot';
|
|
@@ -14,7 +15,7 @@ import { ExcelSource } from '../core/loader';
|
|
|
14
15
|
import { ImageExportOptions, PdfExportOptions, PrintOptions } from '../core/export';
|
|
15
16
|
import { XlsxExportOptions } from '../core/export/xlsx-writer';
|
|
16
17
|
import { Cell } from '../core/viewer/controller';
|
|
17
|
-
import { ContextMenuBeforePayload, ContextMenuShowPayload, ContextMenuTransform, ExcelPlugin, MenuItem, PermissionDeniedPayload } from '../core/plugin';
|
|
18
|
+
import { ContextMenuBeforePayload, ContextMenuShowPayload, ContextMenuTransform, ExcelPlugin, MenuItem, PermissionDeniedPayload, ViewerApi } from '../core/plugin';
|
|
18
19
|
export interface ExcelViewerProps {
|
|
19
20
|
src?: ExcelSource;
|
|
20
21
|
/**
|
|
@@ -72,6 +73,12 @@ export interface ExcelViewerProps {
|
|
|
72
73
|
plugins?: ExcelPlugin[];
|
|
73
74
|
/** 编辑总开关:默认 false = 只读(行为不变)。开启后才能进入编辑(E0:闸门) */
|
|
74
75
|
editable?: boolean;
|
|
76
|
+
/**
|
|
77
|
+
* 透视表功能开关:默认 false = 关闭。开启后(还需 `editable`)工具栏 `pivot-table` 入口可见、
|
|
78
|
+
* `createPivotTable`/`openPivotTableDialog` 等 API 生效、导出 .xlsx 回注真实 OOXML 透视表零件
|
|
79
|
+
* (overlay 模式同时保留原文件透视表)。
|
|
80
|
+
*/
|
|
81
|
+
pivotTable?: boolean;
|
|
75
82
|
/** 按格只读判定:返回 true = 只读(cell 为空格时传 null) */
|
|
76
83
|
cellReadOnly?: (cell: CellModel | null, pos: {
|
|
77
84
|
row: number;
|
|
@@ -102,12 +109,16 @@ export interface ExcelViewerProps {
|
|
|
102
109
|
recalc?: boolean;
|
|
103
110
|
/** 自定义/自研公式引擎工厂(可换引擎);不给则用默认 HyperFormula(需 npm i hyperformula) */
|
|
104
111
|
formulaEngine?: FormulaEngineFactory;
|
|
112
|
+
/** 粘贴行为(默认 = 覆盖式 1:1)。控制 Ctrl+V / 右键粘贴时源各方面如何落目标;也可 viewer.setPasteBehavior 运行时改 */
|
|
113
|
+
pasteBehavior?: Partial<PasteBehavior>;
|
|
114
|
+
/** 粘贴撞只读格的内置提醒:'dialog'(默认,弹窗列出哪些格只读)/ 'toast'(气泡)/ 'none'(只发事件) */
|
|
115
|
+
readOnlyPrompt?: 'dialog' | 'toast' | 'none';
|
|
105
116
|
/**
|
|
106
117
|
* 操作工具栏配置 (跟 Vue 3/Vue 2 同 API):
|
|
107
|
-
* - `true`/不传(默认):
|
|
118
|
+
* - `true`/不传(默认): 显示默认三项 ['find', 'filter', 'sort']
|
|
108
119
|
* - `false`: 隐藏整条工具栏
|
|
109
120
|
* - 数组: 显式控制项与顺序 (内置 id 或自定义 ToolbarItem)
|
|
110
|
-
* - 内置 id: find / filter / clear-filter / copy / wrap-text / template / image-tools /
|
|
121
|
+
* - 内置 id: find / filter / sort / clear-filter / copy / wrap-text / template / image-tools /
|
|
111
122
|
* freeze / export / zoom / 'separator' (或 '|')
|
|
112
123
|
*/
|
|
113
124
|
toolbar?: boolean | Array<string | import('../core/plugin').ToolbarItem>;
|
|
@@ -160,6 +171,9 @@ export interface ExcelViewerHandle {
|
|
|
160
171
|
setActiveSheet: (i: number) => void;
|
|
161
172
|
getSelection: () => MergeRange | null;
|
|
162
173
|
setSelection: (range: MergeRange) => void;
|
|
174
|
+
scrollToCell: (row: number, col: number, opts?: {
|
|
175
|
+
select?: boolean;
|
|
176
|
+
}) => boolean;
|
|
163
177
|
rectOf: (row: number, col: number) => {
|
|
164
178
|
x: number;
|
|
165
179
|
y: number;
|
|
@@ -176,6 +190,10 @@ export interface ExcelViewerHandle {
|
|
|
176
190
|
isCellEditable: (row: number, col: number) => boolean;
|
|
177
191
|
setEditableTargets: (targets: EditableTarget | EditableTarget[] | undefined) => void;
|
|
178
192
|
getEditableTargets: () => EditableTarget | EditableTarget[] | undefined;
|
|
193
|
+
sortActiveColumn: (dir: 'asc' | 'desc') => boolean;
|
|
194
|
+
createPivotTable: ViewerApi['createPivotTable'];
|
|
195
|
+
createPivotTableFromSelection: ViewerApi['createPivotTableFromSelection'];
|
|
196
|
+
openPivotTableDialog: ViewerApi['openPivotTableDialog'];
|
|
179
197
|
editCell: (row: number, col: number, value: CellValue) => boolean;
|
|
180
198
|
editRange: (range: MergeRange, values: CellValue[][]) => boolean;
|
|
181
199
|
clearRange: (range: MergeRange) => boolean;
|
|
@@ -195,7 +213,10 @@ export interface ExcelViewerHandle {
|
|
|
195
213
|
pasteRichHtml: (html: string, at?: {
|
|
196
214
|
row: number;
|
|
197
215
|
col: number;
|
|
198
|
-
}) => boolean;
|
|
216
|
+
}, behaviorOverride?: Partial<PasteBehavior> | null) => boolean;
|
|
217
|
+
getPasteBehavior: () => PasteBehavior;
|
|
218
|
+
setPasteBehavior: (cfg: Partial<PasteBehavior> | null) => void;
|
|
219
|
+
openPasteConfigDialog: () => boolean;
|
|
199
220
|
pasteImageBlob: (blob: Blob, at?: {
|
|
200
221
|
row: number;
|
|
201
222
|
col: number;
|