@yosai/cli 0.2.1-test.0 → 0.2.1-test.10
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/README.md +11 -9
- package/dist/cli.js +4 -2
- package/dist/commands/doctor.js +17 -11
- package/dist/commands/login.js +11 -10
- package/dist/commands/ping.js +7 -5
- package/dist/commands/update.js +52 -19
- package/dist/commands/version.js +9 -7
- package/dist/config.js +15 -11
- package/dist/domain-commands.js +13 -4
- package/dist/domain-executor.js +3 -0
- package/dist/endpoints.js +33 -1
- package/dist/errors.js +6 -0
- package/dist/npm-meta.js +88 -11
- package/dist/openapis-client.js +28 -5
- package/dist/skill-sync.js +2 -2
- package/dist/skills/yos/SKILL.md +23 -14
- package/dist/skills/yos-doc/SKILL.md +221 -0
- package/dist/skills/yos-doc/references/AGENT_SCHEMA.doc.md +69 -0
- package/dist/skills/yos-doc/references/DOC_DATA_API.md +624 -0
- package/dist/skills/yos-doc/references/doc-draft.template.json +721 -0
- package/dist/skills/yos-doc/references/few-shot.draft.json +195 -0
- package/dist/skills/yos-doc/scripts/validate-runtime-doc.mjs +370 -0
- package/dist/skills/yos-doc/scripts/yos-doc.mjs +157 -0
- package/dist/skills/yos-install/SKILL.md +48 -21
- package/dist/skills/{yos-kb → yos-knowledge}/SKILL.md +21 -8
- package/dist/skills/yos-retrieval/SKILL.md +1 -1
- package/dist/skills/yos-shared/SKILL.md +24 -15
- package/dist/skills/yos-sheet/SKILL.md +233 -0
- package/dist/skills/yos-sheet/references/AGENT_SCHEMA.sheet.md +105 -0
- package/dist/skills/yos-sheet/references/SHEET_DATA_API.md +356 -0
- package/dist/skills/yos-sheet/references/few-shot.workbook.json +50 -0
- package/dist/skills/yos-sheet/references/sheet-workbook.template.json +147 -0
- package/dist/skills/yos-sheet/scripts/validate-runtime-sheet.mjs +404 -0
- package/dist/skills/yos-sheet/scripts/yos-sheet.mjs +157 -0
- package/dist/skills/yos-support/SKILL.md +1 -1
- package/dist/skills/yos-transcript/SKILL.md +1 -1
- package/dist/update-check-worker.js +35 -0
- package/dist/update-notice.js +86 -0
- package/package.json +4 -2
|
@@ -0,0 +1,356 @@
|
|
|
1
|
+
# 表格页数据字段全量枚举
|
|
2
|
+
|
|
3
|
+
> 按 Univer **`workbook.save()`** 快照(`IWorkbookData`)逐层列出字段与含义。
|
|
4
|
+
> 依据:`@univerjs/core` 类型(本仓库依赖 `^0.25.1`)+ 本包 Demo / 导入导出精简结构。
|
|
5
|
+
> 表格无内嵌服务端 HTTP;持久化由宿主自行完成。本文是工作簿 JSON 契约。
|
|
6
|
+
>
|
|
7
|
+
> **Agent 生成请用精简契约** [`AGENT_SCHEMA.sheet.md`](./AGENT_SCHEMA.sheet.md) + `node "<技能目录>/scripts/yos-sheet.mjs" validate`,勿把本文整份塞进 prompt。
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## 0. 读写约定
|
|
12
|
+
|
|
13
|
+
| 方向 | API | 说明 |
|
|
14
|
+
| ---- | --- | ---- |
|
|
15
|
+
| 读取快照 | `getActiveWorkbook().save()` | 返回完整 `IWorkbookData`(含样式、合并、插件 `resources` 等) |
|
|
16
|
+
| 加载快照 | `createWorkbook(snapshot)` | 用同一结构创建 / 替换工作簿 |
|
|
17
|
+
| 导出 xlsx | `exportExcel` → `exportWorkbookToXlsx`(ExcelJS) | 值 / 公式 + 基础样式(背景色 / 字体 / 对齐)+ 合并;不含图表 |
|
|
18
|
+
| 导入 xlsx | `importExcel` → `importWorkbookFromXlsx`(ExcelJS) | 产出精简快照(值 / 公式 / 基础样式 / 合并),再 `createWorkbook` |
|
|
19
|
+
|
|
20
|
+
Demo 初始数据见 `SheetEditor` 内 `buildDemoWorkbook`;可粘贴整本骨架见 [`sheet-workbook.template.json`](./sheet-workbook.template.json)。
|
|
21
|
+
|
|
22
|
+
布尔类字段在 Univer 里多用数字枚举 **`BooleanNumber`**:`0` = false,`1` = true。
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## 1. 工作簿根(`IWorkbookData`)
|
|
27
|
+
|
|
28
|
+
```json
|
|
29
|
+
{
|
|
30
|
+
"id": "sheet-demo",
|
|
31
|
+
"name": "表格 Demo",
|
|
32
|
+
"appVersion": "0.25.1",
|
|
33
|
+
"locale": "zhCN",
|
|
34
|
+
"styles": {},
|
|
35
|
+
"sheetOrder": ["sheet-1"],
|
|
36
|
+
"sheets": { "sheet-1": { /* IWorksheetData */ } },
|
|
37
|
+
"resources": []
|
|
38
|
+
}
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
| 参数 | 类型 | 必有 | 含义 | 取值 / 说明 |
|
|
42
|
+
| ---- | ---- | ---- | ---- | ----------- |
|
|
43
|
+
| `id` | `string` | 是 | 工作簿 unit id | 全生命周期建议稳定不变 |
|
|
44
|
+
| `name` | `string` | 是 | 工作簿显示名 | |
|
|
45
|
+
| `appVersion` | `string` | 是* | 模型版本 | 通常为 Univer 版本,如 `"0.25.1"`;缺省时运行时会补 |
|
|
46
|
+
| `locale` | `string` | 是* | 语言 | 本包默认 `"zhCN"`(`LocaleType.ZH_CN`) |
|
|
47
|
+
| `styles` | `Record<string, IStyleData \| null>` | 是* | 样式表 | key 为样式 id,单元格 `s` 引用 |
|
|
48
|
+
| `sheetOrder` | `string[]` | 是 | sheet id 顺序 | 与底部页签顺序一致 |
|
|
49
|
+
| `sheets` | `Record<string, Partial<IWorksheetData>>` | 是 | sheet 字典 | key = sheet `id` |
|
|
50
|
+
| `defaultStyle` | `IStyleData \| string` | 否 | 工作簿默认样式 | 可为样式对象或样式 id |
|
|
51
|
+
| `resources` | `{ name, data, id? }[]` | 否 | 插件资源 | 筛选 / 条件格式 / 批注等插件状态;`data` 多为 JSON 字符串 |
|
|
52
|
+
| `rev` | `number` | 否 | 协同修订号 | 协作场景;本包未接协作 |
|
|
53
|
+
| `custom` | `object` | 否 | 宿主自定义字段 | 勿与 Univer 保留字段冲突 |
|
|
54
|
+
|
|
55
|
+
\* Demo / xlsx 导入的精简快照可省略 `appVersion` / `locale` / `styles`,`createWorkbook` 会补默认值;**生产持久化建议存 `save()` 全量结果**。
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
## 2. 工作表(`IWorksheetData`)
|
|
60
|
+
|
|
61
|
+
```json
|
|
62
|
+
{
|
|
63
|
+
"id": "sheet-1",
|
|
64
|
+
"name": "Sheet1",
|
|
65
|
+
"tabColor": "",
|
|
66
|
+
"hidden": 0,
|
|
67
|
+
"rowCount": 100,
|
|
68
|
+
"columnCount": 20,
|
|
69
|
+
"defaultColumnWidth": 88,
|
|
70
|
+
"defaultRowHeight": 24,
|
|
71
|
+
"mergeData": [],
|
|
72
|
+
"cellData": {},
|
|
73
|
+
"rowData": {},
|
|
74
|
+
"columnData": {},
|
|
75
|
+
"rowHeader": { "width": 46 },
|
|
76
|
+
"columnHeader": { "height": 20 },
|
|
77
|
+
"showGridlines": 1,
|
|
78
|
+
"rightToLeft": 0,
|
|
79
|
+
"freeze": { "xSplit": 0, "ySplit": 0, "startRow": -1, "startColumn": -1 }
|
|
80
|
+
}
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
| 参数 | 类型 | 含义 | 说明 |
|
|
84
|
+
| ---- | ---- | ---- | ---- |
|
|
85
|
+
| `id` | `string` | 工作表 id | 稳定 id;出现在 `sheetOrder` |
|
|
86
|
+
| `name` | `string` | 页签名 | Excel 限制约 31 字符 |
|
|
87
|
+
| `tabColor` | `string` | 页签颜色 | 空字符串表示默认 |
|
|
88
|
+
| `hidden` | `BooleanNumber` | 是否隐藏 | `0` / `1` |
|
|
89
|
+
| `rowCount` | `number` | 行数 | 本包上限 `10000`(`MAX_SHEET_ROW_COUNT`) |
|
|
90
|
+
| `columnCount` | `number` | 列数 | Demo 默认 `20` |
|
|
91
|
+
| `defaultColumnWidth` | `number` | 默认列宽(px) | |
|
|
92
|
+
| `defaultRowHeight` | `number` | 默认行高(px) | |
|
|
93
|
+
| `mergeData` | `IRange[]` | 合并单元格 | 见 §5 |
|
|
94
|
+
| `cellData` | 稀疏矩阵 | 单元格内容 | 见 §3;key 为行 / 列 **数字字符串或数字** |
|
|
95
|
+
| `rowData` | 稀疏数组对象 | 行属性 | 见 §6 |
|
|
96
|
+
| `columnData` | 稀疏数组对象 | 列属性 | 见 §6 |
|
|
97
|
+
| `rowHeader` | `{ width, hidden? }` | 行号栏 | |
|
|
98
|
+
| `columnHeader` | `{ height, hidden? }` | 列标栏 | |
|
|
99
|
+
| `showGridlines` | `BooleanNumber` | 显示网格线 | |
|
|
100
|
+
| `gridlinesColor` | `string` | 网格线颜色 | 可选 |
|
|
101
|
+
| `rightToLeft` | `BooleanNumber` | 从右到左 | |
|
|
102
|
+
| `freeze` | `IFreeze` | 冻结窗格 | 见 §5 |
|
|
103
|
+
| `defaultStyle` | `IStyleData \| string` | 表级默认样式 | 可选 |
|
|
104
|
+
| `zoomRatio` / `scrollTop` / `scrollLeft` | `number` | 视图状态 | 已 deprecated,可忽略 |
|
|
105
|
+
| `custom` | `object` | 宿主自定义 | 可选 |
|
|
106
|
+
|
|
107
|
+
`cellData` 形态(稀疏,只存有内容的格):
|
|
108
|
+
|
|
109
|
+
```json
|
|
110
|
+
{
|
|
111
|
+
"0": {
|
|
112
|
+
"0": { "v": "列1" },
|
|
113
|
+
"1": { "v": 2, "t": 2 }
|
|
114
|
+
},
|
|
115
|
+
"1": {
|
|
116
|
+
"3": { "f": "=B2*C2", "v": 20, "t": 2 }
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
行 / 列下标均为 **0-based**。
|
|
122
|
+
|
|
123
|
+
---
|
|
124
|
+
|
|
125
|
+
## 3. 单元格(`ICellData`)
|
|
126
|
+
|
|
127
|
+
| 参数 | 类型 | 含义 | 说明 |
|
|
128
|
+
| ---- | ---- | ---- | ---- |
|
|
129
|
+
| `v` | `string \| number \| boolean \| null` | 显示 / 原始值 | 公式格常同时有计算结果 |
|
|
130
|
+
| `t` | `CellValueType` | 值类型 | `1` STRING / `2` NUMBER / `3` BOOLEAN / `4` FORCE_STRING |
|
|
131
|
+
| `f` | `string \| null` | 公式 | 含前导 `=`,如 `"=SUM(A1:B2)"` |
|
|
132
|
+
| `s` | `string \| IStyleData \| null` | 样式 | **推荐**写样式 id(指向根 `styles`);也可内联对象 |
|
|
133
|
+
| `si` | `string \| null` | 公式 id | 公式引擎内部关联 |
|
|
134
|
+
| `p` | `IDocumentData \| null` | 富文本文档 | 单元格内富文本;一般可忽略 |
|
|
135
|
+
| `ref` / `xf` | `string` | 数组公式 / Excel 前缀 | 内部字段,宿主通常不手写 |
|
|
136
|
+
| `custom` | `object` | 宿主自定义 | 可选 |
|
|
137
|
+
|
|
138
|
+
本包 xlsx 导入导出认 **`v` / `f`(及可选 `t`)**,以及内联 / 引用的基础样式 **`s`**(背景色、字体、对齐)与表级 **`mergeData`**。
|
|
139
|
+
|
|
140
|
+
---
|
|
141
|
+
|
|
142
|
+
## 4. 样式(`IStyleData`)
|
|
143
|
+
|
|
144
|
+
挂在工作簿根 `styles`,由单元格 `s` 引用:
|
|
145
|
+
|
|
146
|
+
```json
|
|
147
|
+
{
|
|
148
|
+
"styles": {
|
|
149
|
+
"header": {
|
|
150
|
+
"bl": 1,
|
|
151
|
+
"ht": 2,
|
|
152
|
+
"bg": { "rgb": "#E8F3FF" },
|
|
153
|
+
"cl": { "rgb": "#1F2329" }
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
常用字段(缩写来自 Univer):
|
|
160
|
+
|
|
161
|
+
| 参数 | 含义 | 取值 |
|
|
162
|
+
| ---- | ---- | ---- |
|
|
163
|
+
| `ff` | 字体 | 字体名字符串 |
|
|
164
|
+
| `fs` | 字号(pt) | `number` |
|
|
165
|
+
| `it` | 斜体 | `BooleanNumber` |
|
|
166
|
+
| `bl` | 粗体 | `BooleanNumber` |
|
|
167
|
+
| `ul` / `st` / `ol` | 下划线 / 删除线 / 上划线 | `ITextDecoration`(`s` 是否显示等) |
|
|
168
|
+
| `bg` | 背景色 | `{ "rgb": "#RRGGBB" }` 或主题色 |
|
|
169
|
+
| `cl` | 前景色(文字) | 同 `bg` |
|
|
170
|
+
| `bd` | 边框 | `{ t, r, b, l }` → `{ s: BorderStyleTypes, cl }` |
|
|
171
|
+
| `ht` | 水平对齐 | `1` LEFT / `2` CENTER / `3` RIGHT / `4` JUSTIFIED … |
|
|
172
|
+
| `vt` | 垂直对齐 | `1` TOP / `2` MIDDLE / `3` BOTTOM |
|
|
173
|
+
| `tb` | 换行策略 | `1` OVERFLOW / `2` CLIP / `3` WRAP |
|
|
174
|
+
| `tr` | 文字旋转 | `{ a: 角度, v?: BooleanNumber }` |
|
|
175
|
+
| `pd` | 内边距 | `{ t, r, b, l }` |
|
|
176
|
+
| `n` | 数字格式 | `{ "pattern": "0.00" }` 等 |
|
|
177
|
+
| `va` | 上标 / 下标 | BaselineOffset |
|
|
178
|
+
|
|
179
|
+
`BorderStyleTypes` 常用:`0` NONE / `1` THIN / `8` MEDIUM / `7` DOUBLE 等。
|
|
180
|
+
|
|
181
|
+
---
|
|
182
|
+
|
|
183
|
+
## 5. 合并与冻结
|
|
184
|
+
|
|
185
|
+
### 5.1 `mergeData`(`IRange[]`)
|
|
186
|
+
|
|
187
|
+
```json
|
|
188
|
+
{
|
|
189
|
+
"startRow": 0,
|
|
190
|
+
"startColumn": 0,
|
|
191
|
+
"endRow": 0,
|
|
192
|
+
"endColumn": 3
|
|
193
|
+
}
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
| 参数 | 含义 |
|
|
197
|
+
| ---- | ---- |
|
|
198
|
+
| `startRow` / `endRow` | 起止行(含) |
|
|
199
|
+
| `startColumn` / `endColumn` | 起止列(含) |
|
|
200
|
+
| `rangeType` | 可选;普通合并可省略 |
|
|
201
|
+
|
|
202
|
+
上例表示合并 `A1:D1`。
|
|
203
|
+
|
|
204
|
+
### 5.2 `freeze`(`IFreeze`)
|
|
205
|
+
|
|
206
|
+
| 参数 | 含义 |
|
|
207
|
+
| ---- | ---- |
|
|
208
|
+
| `xSplit` | 冻结列数 |
|
|
209
|
+
| `ySplit` | 冻结行数 |
|
|
210
|
+
| `startRow` | 可滚动区域起始行(常与冻结配合;无冻结可为 `-1`) |
|
|
211
|
+
| `startColumn` | 可滚动区域起始列 |
|
|
212
|
+
|
|
213
|
+
示例:冻结首行 → `"freeze": { "xSplit": 0, "ySplit": 1, "startRow": 1, "startColumn": 0 }`。
|
|
214
|
+
|
|
215
|
+
---
|
|
216
|
+
|
|
217
|
+
## 6. 行 / 列属性
|
|
218
|
+
|
|
219
|
+
`rowData` / `columnData` 为稀疏对象,key 为行号 / 列号字符串。
|
|
220
|
+
|
|
221
|
+
**行(`IRowData`)**
|
|
222
|
+
|
|
223
|
+
| 参数 | 含义 |
|
|
224
|
+
| ---- | ---- |
|
|
225
|
+
| `h` | 行高(px) |
|
|
226
|
+
| `hd` | 是否隐藏 |
|
|
227
|
+
| `ia` | 是否自适应高度 |
|
|
228
|
+
| `ah` | 自动行高值 |
|
|
229
|
+
| `s` | 整行样式 id / 对象 |
|
|
230
|
+
|
|
231
|
+
**列(`IColumnData`)**
|
|
232
|
+
|
|
233
|
+
| 参数 | 含义 |
|
|
234
|
+
| ---- | ---- |
|
|
235
|
+
| `w` | 列宽(px) |
|
|
236
|
+
| `hd` | 是否隐藏 |
|
|
237
|
+
| `s` | 整列样式 |
|
|
238
|
+
|
|
239
|
+
```json
|
|
240
|
+
{
|
|
241
|
+
"rowData": { "0": { "h": 28 } },
|
|
242
|
+
"columnData": { "0": { "w": 120 }, "3": { "w": 100 } }
|
|
243
|
+
}
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
---
|
|
247
|
+
|
|
248
|
+
## 7. `resources`(插件状态)
|
|
249
|
+
|
|
250
|
+
扩展能力(筛选、条件格式、数据验证、批注、超链接、绘图、表格对象、评论等)的运行时数据,多数写入根级 `resources`:
|
|
251
|
+
|
|
252
|
+
```json
|
|
253
|
+
{
|
|
254
|
+
"resources": [
|
|
255
|
+
{
|
|
256
|
+
"name": "SHEET_CONDITIONAL_FORMATTING_PLUGIN",
|
|
257
|
+
"data": "{...插件序列化 JSON 字符串...}"
|
|
258
|
+
}
|
|
259
|
+
]
|
|
260
|
+
}
|
|
261
|
+
```
|
|
262
|
+
|
|
263
|
+
| 参数 | 含义 |
|
|
264
|
+
| ---- | ---- |
|
|
265
|
+
| `name` | 插件资源名(形如 `SHEET_*_PLUGIN`) |
|
|
266
|
+
| `data` | 序列化字符串(通常再 `JSON.parse`) |
|
|
267
|
+
| `id` | 可选 |
|
|
268
|
+
|
|
269
|
+
宿主做全量持久化时:**原样保存 `save()` 返回的 `resources`**,不要手改。xlsx 导入导出会丢弃这些字段。`features` 关闭的扩展不会加载对应预设,已有 `resources` 项可能无法还原 UI。
|
|
270
|
+
|
|
271
|
+
---
|
|
272
|
+
|
|
273
|
+
## 8. 本包精简结构(导入导出)
|
|
274
|
+
|
|
275
|
+
与全量 `IWorkbookData` 相比,包内 `UniverWorkbookLike` / xlsx 转换保证:
|
|
276
|
+
|
|
277
|
+
```ts
|
|
278
|
+
{
|
|
279
|
+
id?: string;
|
|
280
|
+
name?: string;
|
|
281
|
+
sheetOrder?: string[];
|
|
282
|
+
styles?: Record<string, IStyleData | null>; // 导出时解析单元格 s 引用
|
|
283
|
+
sheets?: {
|
|
284
|
+
[id: string]: {
|
|
285
|
+
id?: string;
|
|
286
|
+
name?: string;
|
|
287
|
+
rowCount?: number;
|
|
288
|
+
columnCount?: number;
|
|
289
|
+
cellData?: Record<string, Record<string, { v?, f?, t?, s? }>>;
|
|
290
|
+
mergeData?: IRange[];
|
|
291
|
+
};
|
|
292
|
+
};
|
|
293
|
+
}
|
|
294
|
+
```
|
|
295
|
+
|
|
296
|
+
| 能力 | 全量 `save()` | xlsx 导入导出(ExcelJS) |
|
|
297
|
+
| ---- | ------------- | ------------- |
|
|
298
|
+
| 值 / 公式 | ✅ | ✅ |
|
|
299
|
+
| 基础样式(背景 / 字体 / 对齐) / 合并 | ✅ | ✅ |
|
|
300
|
+
| 行列宽 / 边框 / 条件格式 / 图表 | ✅ | ❌ |
|
|
301
|
+
| 插件 `resources` | ✅ | ❌ |
|
|
302
|
+
|
|
303
|
+
生产建议:云端存 **`workbook.save()` JSON**;xlsx 仅作交换格式。
|
|
304
|
+
|
|
305
|
+
---
|
|
306
|
+
|
|
307
|
+
## 9. 宿主持久化示意
|
|
308
|
+
|
|
309
|
+
```ts
|
|
310
|
+
// 保存
|
|
311
|
+
const snapshot = workbook.save();
|
|
312
|
+
await api.putSheet(docId, snapshot);
|
|
313
|
+
|
|
314
|
+
// 打开
|
|
315
|
+
const snapshot = await api.getSheet(docId);
|
|
316
|
+
api.createWorkbook(snapshot);
|
|
317
|
+
```
|
|
318
|
+
|
|
319
|
+
本包 `SheetEditor` 支持:
|
|
320
|
+
|
|
321
|
+
| API | 说明 |
|
|
322
|
+
| ---- | --- |
|
|
323
|
+
| prop `workbook` | 初始快照;不传则 Demo 空表 |
|
|
324
|
+
| prop `readOnly` | 只读(拦截命令 + pointer-events) |
|
|
325
|
+
| `getSnapshot()` | `workbook.save()` 全量 JSON |
|
|
326
|
+
| `loadSnapshot(data)` | 替换当前工作簿;不触发 `change`,完成后已保存 |
|
|
327
|
+
| event `change` | 命令执行后防抖通知宿主(同时标脏) |
|
|
328
|
+
| event `save` | Cmd/Ctrl+S:请求宿主落库;成功后调用 `markSaved()` |
|
|
329
|
+
| `v-model:dirty` / `markSaved()` | 保存态;打开与 `loadSnapshot` 后默认已保存 |
|
|
330
|
+
|
|
331
|
+
xlsx 导入导出仍可用,生产云存请优先快照 JSON。行数上限:`MAX_SHEET_ROW_COUNT = 10000`。
|
|
332
|
+
|
|
333
|
+
可粘贴整本骨架:[`sheet-workbook.template.json`](./sheet-workbook.template.json)(含双 sheet、公式、样式引用、合并、冻结、行列宽)。
|
|
334
|
+
|
|
335
|
+
---
|
|
336
|
+
|
|
337
|
+
## 10. 类型索引(速查)
|
|
338
|
+
|
|
339
|
+
| 层级 | 关键字段 | 章节 |
|
|
340
|
+
| ---- | -------- | ---- |
|
|
341
|
+
| 工作簿 | `id` `name` `appVersion` `locale` `styles` `sheetOrder` `sheets` `resources` | §1 |
|
|
342
|
+
| 工作表 | `cellData` `mergeData` `rowData` `columnData` `freeze` `rowCount` `columnCount` | §2 |
|
|
343
|
+
| 单元格 | `v` `t` `f` `s` | §3 |
|
|
344
|
+
| 样式 | `bl` `it` `bg` `cl` `bd` `ht` `vt` `tb` `n` … | §4 |
|
|
345
|
+
| 合并 / 冻结 | `mergeData[]` `freeze` | §5 |
|
|
346
|
+
| 行列 | `h` `w` `hd` `s` | §6 |
|
|
347
|
+
| 插件 | `resources[].name/data` | §7 |
|
|
348
|
+
|
|
349
|
+
### 10.1 与运行时核对
|
|
350
|
+
|
|
351
|
+
| 项 | 结果 |
|
|
352
|
+
| --- | ---- |
|
|
353
|
+
| 根类型 | 对齐 `@univerjs/core` `IWorkbookData` / `IWorksheetData` / `ICellData` |
|
|
354
|
+
| Demo 初始 | `buildDemoWorkbook` 仅写 `id/name/sheetOrder/sheets.*.cellData` 等精简字段 |
|
|
355
|
+
| xlsx | `exportWorkbookToXlsx` / `importWorkbookFromXlsx`(ExcelJS)值 / 公式 / 基础样式 / 合并 |
|
|
356
|
+
| 不进快照契约的 | Univer UI 命令、容器 DOM、`features` 开关本身(开关影响能否还原 `resources`) |
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "sheet-agent-demo",
|
|
3
|
+
"name": "销售明细 Demo",
|
|
4
|
+
"appVersion": "0.25.1",
|
|
5
|
+
"locale": "zhCN",
|
|
6
|
+
"sheetOrder": ["sheet-1"],
|
|
7
|
+
"sheets": {
|
|
8
|
+
"sheet-1": {
|
|
9
|
+
"id": "sheet-1",
|
|
10
|
+
"name": "销售明细",
|
|
11
|
+
"rowCount": 100,
|
|
12
|
+
"columnCount": 20,
|
|
13
|
+
"columnData": {
|
|
14
|
+
"0": { "w": 96 },
|
|
15
|
+
"1": { "w": 72 },
|
|
16
|
+
"2": { "w": 96 },
|
|
17
|
+
"3": { "w": 96 }
|
|
18
|
+
},
|
|
19
|
+
"rowData": {
|
|
20
|
+
"0": { "h": 28 }
|
|
21
|
+
},
|
|
22
|
+
"cellData": {
|
|
23
|
+
"0": {
|
|
24
|
+
"0": { "v": "品名", "t": 1 },
|
|
25
|
+
"1": { "v": "数量", "t": 1 },
|
|
26
|
+
"2": { "v": "单价", "t": 1 },
|
|
27
|
+
"3": { "v": "小计", "t": 1 }
|
|
28
|
+
},
|
|
29
|
+
"1": {
|
|
30
|
+
"0": { "v": "示例 A", "t": 1 },
|
|
31
|
+
"1": { "v": 2, "t": 2 },
|
|
32
|
+
"2": { "v": 10.5, "t": 2 },
|
|
33
|
+
"3": { "f": "=B2*C2", "v": 21, "t": 2 }
|
|
34
|
+
},
|
|
35
|
+
"2": {
|
|
36
|
+
"0": { "v": "示例 B", "t": 1 },
|
|
37
|
+
"1": { "v": 3, "t": 2 },
|
|
38
|
+
"2": { "v": 15, "t": 2 },
|
|
39
|
+
"3": { "f": "=B3*C3", "v": 45, "t": 2 }
|
|
40
|
+
},
|
|
41
|
+
"3": {
|
|
42
|
+
"0": { "v": "合计", "t": 1 },
|
|
43
|
+
"1": { "f": "=SUM(B2:B3)", "v": 5, "t": 2 },
|
|
44
|
+
"3": { "f": "=SUM(D2:D3)", "v": 66, "t": 2 }
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
},
|
|
49
|
+
"resources": []
|
|
50
|
+
}
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "sheet-template",
|
|
3
|
+
"name": "示例表格(字段覆盖)",
|
|
4
|
+
"appVersion": "0.25.1",
|
|
5
|
+
"locale": "zhCN",
|
|
6
|
+
"styles": {
|
|
7
|
+
"header": {
|
|
8
|
+
"bl": 1,
|
|
9
|
+
"ht": 2,
|
|
10
|
+
"vt": 2,
|
|
11
|
+
"bg": { "rgb": "#E8F3FF" },
|
|
12
|
+
"cl": { "rgb": "#1F2329" },
|
|
13
|
+
"bd": {
|
|
14
|
+
"b": {
|
|
15
|
+
"s": 1,
|
|
16
|
+
"cl": { "rgb": "#94BFFF" }
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
"number": {
|
|
21
|
+
"ht": 3,
|
|
22
|
+
"n": { "pattern": "0.00" }
|
|
23
|
+
},
|
|
24
|
+
"warn": {
|
|
25
|
+
"bg": { "rgb": "#FFF7E8" },
|
|
26
|
+
"cl": { "rgb": "#D25F00" }
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
"sheetOrder": ["sheet-1", "sheet-2"],
|
|
30
|
+
"sheets": {
|
|
31
|
+
"sheet-1": {
|
|
32
|
+
"id": "sheet-1",
|
|
33
|
+
"name": "销售明细",
|
|
34
|
+
"tabColor": "#3491FA",
|
|
35
|
+
"hidden": 0,
|
|
36
|
+
"rowCount": 100,
|
|
37
|
+
"columnCount": 20,
|
|
38
|
+
"defaultColumnWidth": 88,
|
|
39
|
+
"defaultRowHeight": 24,
|
|
40
|
+
"zoomRatio": 1,
|
|
41
|
+
"scrollTop": 0,
|
|
42
|
+
"scrollLeft": 0,
|
|
43
|
+
"showGridlines": 1,
|
|
44
|
+
"rightToLeft": 0,
|
|
45
|
+
"freeze": {
|
|
46
|
+
"xSplit": 0,
|
|
47
|
+
"ySplit": 1,
|
|
48
|
+
"startRow": 1,
|
|
49
|
+
"startColumn": 0
|
|
50
|
+
},
|
|
51
|
+
"rowHeader": { "width": 46, "hidden": 0 },
|
|
52
|
+
"columnHeader": { "height": 20, "hidden": 0 },
|
|
53
|
+
"mergeData": [
|
|
54
|
+
{
|
|
55
|
+
"startRow": 0,
|
|
56
|
+
"startColumn": 0,
|
|
57
|
+
"endRow": 0,
|
|
58
|
+
"endColumn": 3
|
|
59
|
+
}
|
|
60
|
+
],
|
|
61
|
+
"rowData": {
|
|
62
|
+
"0": { "h": 30 }
|
|
63
|
+
},
|
|
64
|
+
"columnData": {
|
|
65
|
+
"0": { "w": 120 },
|
|
66
|
+
"1": { "w": 96 },
|
|
67
|
+
"2": { "w": 96 },
|
|
68
|
+
"3": { "w": 112 }
|
|
69
|
+
},
|
|
70
|
+
"cellData": {
|
|
71
|
+
"0": {
|
|
72
|
+
"0": {
|
|
73
|
+
"v": "销售明细(合并表头 A1:D1)",
|
|
74
|
+
"t": 1,
|
|
75
|
+
"s": "header"
|
|
76
|
+
}
|
|
77
|
+
},
|
|
78
|
+
"1": {
|
|
79
|
+
"0": { "v": "品名", "t": 1, "s": "header" },
|
|
80
|
+
"1": { "v": "数量", "t": 1, "s": "header" },
|
|
81
|
+
"2": { "v": "单价", "t": 1, "s": "header" },
|
|
82
|
+
"3": { "v": "小计", "t": 1, "s": "header" }
|
|
83
|
+
},
|
|
84
|
+
"2": {
|
|
85
|
+
"0": { "v": "示例 A", "t": 1 },
|
|
86
|
+
"1": { "v": 2, "t": 2 },
|
|
87
|
+
"2": { "v": 10.5, "t": 2, "s": "number" },
|
|
88
|
+
"3": { "f": "=B3*C3", "v": 21, "t": 2, "s": "number" }
|
|
89
|
+
},
|
|
90
|
+
"3": {
|
|
91
|
+
"0": { "v": "示例 B", "t": 1 },
|
|
92
|
+
"1": { "v": 3, "t": 2 },
|
|
93
|
+
"2": { "v": 15, "t": 2, "s": "number" },
|
|
94
|
+
"3": { "f": "=B4*C4", "v": 45, "t": 2, "s": "number" }
|
|
95
|
+
},
|
|
96
|
+
"4": {
|
|
97
|
+
"0": { "v": "合计", "t": 1, "s": "warn" },
|
|
98
|
+
"1": { "f": "=SUM(B3:B4)", "v": 5, "t": 2 },
|
|
99
|
+
"3": { "f": "=SUM(D3:D4)", "v": 66, "t": 2, "s": "number" }
|
|
100
|
+
},
|
|
101
|
+
"6": {
|
|
102
|
+
"0": { "v": "是否完成", "t": 1 },
|
|
103
|
+
"1": { "v": true, "t": 3 }
|
|
104
|
+
},
|
|
105
|
+
"7": {
|
|
106
|
+
"0": { "v": "备注", "t": 1 },
|
|
107
|
+
"1": { "v": "公式格同时保留 v(计算结果)与 f", "t": 1 }
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
},
|
|
111
|
+
"sheet-2": {
|
|
112
|
+
"id": "sheet-2",
|
|
113
|
+
"name": "汇总",
|
|
114
|
+
"tabColor": "",
|
|
115
|
+
"hidden": 0,
|
|
116
|
+
"rowCount": 50,
|
|
117
|
+
"columnCount": 10,
|
|
118
|
+
"defaultColumnWidth": 88,
|
|
119
|
+
"defaultRowHeight": 24,
|
|
120
|
+
"showGridlines": 1,
|
|
121
|
+
"rightToLeft": 0,
|
|
122
|
+
"freeze": {
|
|
123
|
+
"xSplit": 0,
|
|
124
|
+
"ySplit": 0,
|
|
125
|
+
"startRow": -1,
|
|
126
|
+
"startColumn": -1
|
|
127
|
+
},
|
|
128
|
+
"mergeData": [],
|
|
129
|
+
"rowData": {},
|
|
130
|
+
"columnData": {
|
|
131
|
+
"0": { "w": 140 }
|
|
132
|
+
},
|
|
133
|
+
"rowHeader": { "width": 46 },
|
|
134
|
+
"columnHeader": { "height": 20 },
|
|
135
|
+
"cellData": {
|
|
136
|
+
"0": {
|
|
137
|
+
"0": { "v": "汇总说明", "t": 1, "s": "header" },
|
|
138
|
+
"1": { "v": "可多 sheet;sheetOrder 决定页签顺序", "t": 1 }
|
|
139
|
+
},
|
|
140
|
+
"1": {
|
|
141
|
+
"0": { "v": "空行 / 空列无需写入 cellData(稀疏存储)", "t": 1 }
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
},
|
|
146
|
+
"resources": []
|
|
147
|
+
}
|