univer-cli 0.0.1 → 0.1.1
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 +4 -19
- package/bin/univer.js +2 -0
- package/chunks/af-I8XQee0A-CmFDThzt.js +1 -0
- package/chunks/as-DPw4kbfa-B9F_plq0.js +1 -0
- package/chunks/be-hSu5_2AE-B6hNUWqv.js +1 -0
- package/chunks/bg-eIV91Ges-Bd2DWFob.js +1 -0
- package/chunks/bn-CF0YbkEW-g08sLwtk.js +1 -0
- package/chunks/build-id-BaP5Hjal.js +1 -0
- package/chunks/build-id-CLeOtzGP.js +1 -0
- package/chunks/ca-D0fayQwW-BZmYPcsl.js +1 -0
- package/chunks/cop-gnNw8zDV-DKmpd6ZK.js +1 -0
- package/chunks/cs-cUOdqXi9-JFqHc_iA.js +1 -0
- package/chunks/cu-CJJk_6p3-D5QinWvz.js +1 -0
- package/chunks/cy-he1_O-US-BVkBOUuv.js +1 -0
- package/chunks/da-C_Tc6C75-Ce37Rkvq.js +1 -0
- package/chunks/de-1901-D9yvXEO8-CdUbFp9_.js +1 -0
- package/chunks/de-1996-DIBM3qkD-CSWdZt1C.js +1 -0
- package/chunks/de-ch-1901-BEDgpl3--BaBd6Pyk.js +1 -0
- package/chunks/el-monoton-BvjPOyvW-DXXS_X0t.js +1 -0
- package/chunks/el-polyton-DfJ9Eeih-CFBXa39G.js +1 -0
- package/chunks/en-gb-DYXoK50H-gYVKStsS.js +1 -0
- package/chunks/en-us-ClVoWMyT-DTM3NHI5.js +1 -0
- package/chunks/es-48latgZ8-DyF4ZOuj.js +1 -0
- package/chunks/et-UzX1rSXY-DcR9JNGb.js +1 -0
- package/chunks/eu-ijD7H63T-DKJaXG6h.js +1 -0
- package/chunks/fi-DDuxAHu5-B81pTwuW.js +1 -0
- package/chunks/fr-6wTrAsbK-BWiY4JbC.js +1 -0
- package/chunks/fur-CcIOY8A9-C4KjY8gI.js +1 -0
- package/chunks/ga-B4Qvh5qS-rBAaw1W6.js +1 -0
- package/chunks/gl-D8H7uN6B-B-8mjLsR.js +1 -0
- package/chunks/grc-DFNi6G6p-BdbdB-tX.js +1 -0
- package/chunks/gu-0EahmEdu-CIDhZZ9o.js +1 -0
- package/chunks/hi-C2ih9xmB-gQS9ROaA.js +1 -0
- package/chunks/hr-CSbbBNUu-BkJAQOS_.js +1 -0
- package/chunks/hsb-hKsDwaW_-Bz1wxZdL.js +1 -0
- package/chunks/hu-BPixuxjf-D_KRKJFX.js +1 -0
- package/chunks/hy-CTtThTdl-BKZl6YO6.js +1 -0
- package/chunks/ia-CYCjbabb-CtzIWTzG.js +1 -0
- package/chunks/id-Cgsp-bEu-lDniNdGl.js +1 -0
- package/chunks/is-D_Awtowh-CLIQl2VF.js +1 -0
- package/chunks/it-C2qJSkm3-BL4Y-Dcv.js +1 -0
- package/chunks/ka-DpGw5nvd-B_hWQNLG.js +1 -0
- package/chunks/kmr-CCdNyB20-CpvYihwu.js +1 -0
- package/chunks/kn-B4tAUtFU-BzUoRYHN.js +1 -0
- package/chunks/la-DIUYl8Yo-DnTw-Mbk.js +1 -0
- package/chunks/la-x-classic-DsbLrq-C-6trWnS1V.js +1 -0
- package/chunks/la-x-liturgic-Ggenbcb5-CrZVATBB.js +1 -0
- package/chunks/lt-BcizI7gZ-CBV1-TLR.js +1 -0
- package/chunks/lv-BOgrbf6v-BTmm852-.js +1 -0
- package/chunks/ml-CTD7giel-DuesB87E.js +1 -0
- package/chunks/mn-cyrl-CDxGttkw-B5Z_v02X.js +1 -0
- package/chunks/mn-cyrl-x-lmc-kjrnm3ii-CRJYImwh.js +1 -0
- package/chunks/mr-DttMNydl-Dj7fDjaS.js +1 -0
- package/chunks/mul-ethi-mmW8ZEm0-ButIEwkF.js +1 -0
- package/chunks/nb-DCiD6jLz-8JQgQmJg.js +1 -0
- package/chunks/nl-BKWsn_4x-BZ3618-9.js +1 -0
- package/chunks/nn-b0W3mz5j-BK1C8M6T.js +1 -0
- package/chunks/no-B3l46gib-nr5lnK2H.js +1 -0
- package/chunks/oc-zkqkXjNo-BJpmzHN2.js +1 -0
- package/chunks/or-DEnI_Cls-qr2MVLjE.js +1 -0
- package/chunks/pa-Sh-QSMIs-YozfDjAN.js +1 -0
- package/chunks/pi-DxMx4Uwd-1Qx2hrsd.js +1 -0
- package/chunks/pl-CISKU0vg-BhS4WYPg.js +1 -0
- package/chunks/pms-DUga94hR-B9zb50Zy.js +1 -0
- package/chunks/pt-CzW61i2q-D32N4oqA.js +1 -0
- package/chunks/rm-C1U6i4AB-DsF0G7Se.js +1 -0
- package/chunks/ro-DSU53KfM-CA0x5cD3.js +1 -0
- package/chunks/rolldown-runtime-D8j-JhcR.js +1 -0
- package/chunks/ru-gduZDLhv-B8qWW8_T.js +1 -0
- package/chunks/runtime-eval-kernels-TmodGDsS.js +1 -0
- package/chunks/runtime-manifest-DcqNTmn6.js +1 -0
- package/chunks/sa-Bney0xbB-DCbBbBmc.js +1 -0
- package/chunks/sh-cyrl-CCByyO89-C8G573b_.js +1 -0
- package/chunks/sh-latn-CTIiTfzt-D1ngAP_K.js +1 -0
- package/chunks/sk-DK-iy-nO-BAcMm7_1.js +1 -0
- package/chunks/sl-BvzIjkCq-NQAOhIkz.js +1 -0
- package/chunks/sr-cyrl-7T4T5Th1-CMIq0hYP.js +1 -0
- package/chunks/sv-BynygC4t-BqB9sNdM.js +1 -0
- package/chunks/ta-CglfOvwm-lIpBPoiE.js +1 -0
- package/chunks/te-Bec4xJud-CPDFTnI_.js +1 -0
- package/chunks/th-B67OcLue-C5XXeT8U.js +1 -0
- package/chunks/tk-CYfVPVLR-5w11gLiZ.js +1 -0
- package/chunks/tr-BxhGLs2f-C6rF65mJ.js +1 -0
- package/chunks/uk-CnWqKnI0-BGTCGJmW.js +1 -0
- package/chunks/vendor-DsmUI-SV.js +834 -0
- package/chunks/zh-latn-pinyin-CKxTJrac-D8cc0dWj.js +1 -0
- package/internal/daemon.js +2 -0
- package/internal/univer-runner.js +1 -0
- package/package.json +26 -9
- package/run-help/topics/core.md +144 -0
- package/run-help/topics/formatting.md +162 -0
- package/run-help/topics/formulas.md +85 -0
- package/run-help/topics/overview.md +92 -0
- package/run-help/topics/ranges.md +232 -0
- package/run-help/topics/sheets.md +110 -0
- package/view/browser/assets/af-I8XQee0A.js +1 -0
- package/view/browser/assets/as-DPw4kbfa.js +1 -0
- package/view/browser/assets/be-hSu5_2AE.js +1 -0
- package/view/browser/assets/bg-eIV91Ges.js +1 -0
- package/view/browser/assets/bn-CF0YbkEW.js +1 -0
- package/view/browser/assets/ca-D0fayQwW.js +1 -0
- package/view/browser/assets/cop-gnNw8zDV.js +1 -0
- package/view/browser/assets/cs-cUOdqXi9.js +1 -0
- package/view/browser/assets/cu-CJJk_6p3.js +1 -0
- package/view/browser/assets/cy-he1_O-US.js +1 -0
- package/view/browser/assets/da-C_Tc6C75.js +1 -0
- package/view/browser/assets/de-1901-D9yvXEO8.js +1 -0
- package/view/browser/assets/de-1996-DIBM3qkD.js +1 -0
- package/view/browser/assets/de-ch-1901-BEDgpl3-.js +1 -0
- package/view/browser/assets/el-monoton-BvjPOyvW.js +1 -0
- package/view/browser/assets/el-polyton-DfJ9Eeih.js +1 -0
- package/view/browser/assets/en-gb-DYXoK50H.js +1 -0
- package/view/browser/assets/en-us-ClVoWMyT.js +1 -0
- package/view/browser/assets/es-48latgZ8.js +1 -0
- package/view/browser/assets/et-UzX1rSXY.js +1 -0
- package/view/browser/assets/eu-ijD7H63T.js +1 -0
- package/view/browser/assets/fi-DDuxAHu5.js +1 -0
- package/view/browser/assets/fr-6wTrAsbK.js +1 -0
- package/view/browser/assets/fur-CcIOY8A9.js +1 -0
- package/view/browser/assets/ga-B4Qvh5qS.js +1 -0
- package/view/browser/assets/gl-D8H7uN6B.js +1 -0
- package/view/browser/assets/grc-DFNi6G6p.js +1 -0
- package/view/browser/assets/gu-0EahmEdu.js +1 -0
- package/view/browser/assets/hi-C2ih9xmB.js +1 -0
- package/view/browser/assets/hr-CSbbBNUu.js +1 -0
- package/view/browser/assets/hsb-hKsDwaW_.js +1 -0
- package/view/browser/assets/hu-BPixuxjf.js +1 -0
- package/view/browser/assets/hy-CTtThTdl.js +1 -0
- package/view/browser/assets/ia-CYCjbabb.js +1 -0
- package/view/browser/assets/id-Cgsp-bEu.js +1 -0
- package/view/browser/assets/is-D_Awtowh.js +1 -0
- package/view/browser/assets/it-C2qJSkm3.js +1 -0
- package/view/browser/assets/ka-DpGw5nvd.js +1 -0
- package/view/browser/assets/kmr-CCdNyB20.js +1 -0
- package/view/browser/assets/kn-B4tAUtFU.js +1 -0
- package/view/browser/assets/la-DIUYl8Yo.js +1 -0
- package/view/browser/assets/la-x-classic-DsbLrq-C.js +1 -0
- package/view/browser/assets/la-x-liturgic-Ggenbcb5.js +1 -0
- package/view/browser/assets/lt-BcizI7gZ.js +1 -0
- package/view/browser/assets/lv-BOgrbf6v.js +1 -0
- package/view/browser/assets/ml-CTD7giel.js +1 -0
- package/view/browser/assets/mn-cyrl-CDxGttkw.js +1 -0
- package/view/browser/assets/mn-cyrl-x-lmc-kjrnm3ii.js +1 -0
- package/view/browser/assets/mr-DttMNydl.js +1 -0
- package/view/browser/assets/mul-ethi-mmW8ZEm0.js +1 -0
- package/view/browser/assets/nb-DCiD6jLz.js +1 -0
- package/view/browser/assets/nl-BKWsn_4x.js +1 -0
- package/view/browser/assets/nn-b0W3mz5j.js +1 -0
- package/view/browser/assets/no-B3l46gib.js +1 -0
- package/view/browser/assets/oc-zkqkXjNo.js +1 -0
- package/view/browser/assets/or-DEnI_Cls.js +1 -0
- package/view/browser/assets/pa-Sh-QSMIs.js +1 -0
- package/view/browser/assets/pi-DxMx4Uwd.js +1 -0
- package/view/browser/assets/pl-CISKU0vg.js +1 -0
- package/view/browser/assets/pms-DUga94hR.js +1 -0
- package/view/browser/assets/pt-CzW61i2q.js +1 -0
- package/view/browser/assets/rm-C1U6i4AB.js +1 -0
- package/view/browser/assets/ro-DSU53KfM.js +1 -0
- package/view/browser/assets/rolldown-runtime.js +1 -0
- package/view/browser/assets/ru-gduZDLhv.js +1 -0
- package/view/browser/assets/sa-Bney0xbB.js +1 -0
- package/view/browser/assets/sh-cyrl-CCByyO89.js +1 -0
- package/view/browser/assets/sh-latn-CTIiTfzt.js +1 -0
- package/view/browser/assets/sk-DK-iy-nO.js +1 -0
- package/view/browser/assets/sl-BvzIjkCq.js +1 -0
- package/view/browser/assets/sr-cyrl-7T4T5Th1.js +1 -0
- package/view/browser/assets/sv-BynygC4t.js +1 -0
- package/view/browser/assets/ta-CglfOvwm.js +1 -0
- package/view/browser/assets/te-Bec4xJud.js +1 -0
- package/view/browser/assets/th-B67OcLue.js +1 -0
- package/view/browser/assets/tk-CYfVPVLR.js +1 -0
- package/view/browser/assets/tr-BxhGLs2f.js +1 -0
- package/view/browser/assets/uk-CnWqKnI0.js +1 -0
- package/view/browser/assets/vendor.js +321 -0
- package/view/browser/assets/viewer.css +2 -0
- package/view/browser/assets/viewer.js +1 -0
- package/view/browser/assets/viewer2.css +1 -0
- package/view/browser/assets/zh-latn-pinyin-CKxTJrac.js +1 -0
- package/view/browser/index.html +16 -0
- package/index.js +0 -4
|
@@ -0,0 +1,232 @@
|
|
|
1
|
+
# Ranges
|
|
2
|
+
|
|
3
|
+
This topic groups cell and range operations for ordinary `run` tasks.
|
|
4
|
+
|
|
5
|
+
## Reading From FRange
|
|
6
|
+
|
|
7
|
+
Get a range from `sheet.getRange(...)`, then use these reads:
|
|
8
|
+
|
|
9
|
+
- `getValue() -> any` - get the top-left cell value as the normal displayed value
|
|
10
|
+
- `getRawValue() -> any` - get the top-left cell raw underlying value
|
|
11
|
+
- `getValues() -> any[][]` - get all cell values in the range as a 2D array
|
|
12
|
+
- `getRawValues() -> any[][]` - get all underlying raw values in the range as a 2D array
|
|
13
|
+
- `getFormulas() -> string[][]` - get formulas in A1 notation
|
|
14
|
+
- `getA1Notation(withSheet?) -> string` - get the range A1 notation; `withSheet=true` includes the sheet name
|
|
15
|
+
- `forEach(callback) -> void` - iterate cells in the range
|
|
16
|
+
- `isMerged() -> boolean` - check whether the range itself is merged
|
|
17
|
+
- `isPartOfMerge() -> boolean` - check whether the range falls inside a merged region
|
|
18
|
+
|
|
19
|
+
Example:
|
|
20
|
+
|
|
21
|
+
```javascript
|
|
22
|
+
() => {
|
|
23
|
+
const workbook = univerAPI.getActiveWorkbook();
|
|
24
|
+
const sheet = workbook.getSheetByName("Sales");
|
|
25
|
+
if (!sheet) return { success: false, error: 'Sheet "Sales" not found' };
|
|
26
|
+
|
|
27
|
+
const range = sheet.getRange("A1:C3");
|
|
28
|
+
return {
|
|
29
|
+
success: true,
|
|
30
|
+
a1: range.getA1Notation(),
|
|
31
|
+
values: range.getValues(),
|
|
32
|
+
formulas: range.getFormulas()
|
|
33
|
+
};
|
|
34
|
+
};
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## Writing To FRange
|
|
38
|
+
|
|
39
|
+
Core writes:
|
|
40
|
+
|
|
41
|
+
- `setValue(value) -> FRange` - set one value across the target range; if the value starts with `=`, it can also write a formula
|
|
42
|
+
- `setValues(values) -> FRange` - batch set values from a 2D array
|
|
43
|
+
- `setFormula(formula) -> void` - set a formula in A1 notation such as `=SUM(A1:B10)`
|
|
44
|
+
|
|
45
|
+
Example:
|
|
46
|
+
|
|
47
|
+
```javascript
|
|
48
|
+
() => {
|
|
49
|
+
const workbook = univerAPI.getActiveWorkbook();
|
|
50
|
+
const sheet = workbook.getSheetByName("Sheet1");
|
|
51
|
+
if (!sheet) return { success: false, error: 'Sheet "Sheet1" not found' };
|
|
52
|
+
|
|
53
|
+
sheet.getRange("A1").setValue("Total");
|
|
54
|
+
sheet.getRange("B2:C3").setValues([
|
|
55
|
+
[10, 20],
|
|
56
|
+
[30, 40]
|
|
57
|
+
]);
|
|
58
|
+
|
|
59
|
+
return { success: true };
|
|
60
|
+
};
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
## setValues() Shape Rules
|
|
64
|
+
|
|
65
|
+
`setValues()` expects a rectangular 2D array whose shape matches the target range:
|
|
66
|
+
|
|
67
|
+
- one row per worksheet row in the target range
|
|
68
|
+
- one column per worksheet column in the target range
|
|
69
|
+
- keep every inner array the same length
|
|
70
|
+
- use `getRange('A1:C10')` or `getRange(0, 0, 10, 3)` to define the full target shape
|
|
71
|
+
- `getRange(row, col)` without size only targets a single cell
|
|
72
|
+
|
|
73
|
+
Correct:
|
|
74
|
+
|
|
75
|
+
```javascript
|
|
76
|
+
sheet.getRange("A1:B2").setValues([
|
|
77
|
+
["Name", "Score"],
|
|
78
|
+
["Ada", 95]
|
|
79
|
+
]);
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
Incorrect shape:
|
|
83
|
+
|
|
84
|
+
```javascript
|
|
85
|
+
sheet.getRange("A1:B2").setValues([["Name"], ["Ada", 95, "extra"]]);
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
When writing a single cell, use `setValue()` unless the task specifically benefits from 2D shape handling.
|
|
89
|
+
|
|
90
|
+
## Formulas And Async Readback
|
|
91
|
+
|
|
92
|
+
Formula calculation is asynchronous. This applies to:
|
|
93
|
+
|
|
94
|
+
- `range.setFormula('=SUM(B1:B10)')`
|
|
95
|
+
- `range.setValue('=SUM(B1:B10)')`
|
|
96
|
+
|
|
97
|
+
If you need the calculated result in the same `run`, wait for formula application:
|
|
98
|
+
|
|
99
|
+
```javascript
|
|
100
|
+
async () => {
|
|
101
|
+
const workbook = univerAPI.getActiveWorkbook();
|
|
102
|
+
const sheet = workbook.getSheetByName("Sales");
|
|
103
|
+
if (!sheet) return { success: false, error: 'Sheet "Sales" not found' };
|
|
104
|
+
|
|
105
|
+
sheet.getRange("A1").setFormula("=SUM(B1:B10)");
|
|
106
|
+
await univerAPI.getFormula().onCalculationResultApplied();
|
|
107
|
+
|
|
108
|
+
return {
|
|
109
|
+
success: true,
|
|
110
|
+
value: sheet.getRange("A1").getValue()
|
|
111
|
+
};
|
|
112
|
+
};
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
Available formula wait API:
|
|
116
|
+
|
|
117
|
+
- `univerAPI.getFormula() -> FFormula`
|
|
118
|
+
- `onCalculationResultApplied() -> Promise<void>` - wait for formula-calculation results to be applied before reading the computed value
|
|
119
|
+
|
|
120
|
+
## Merge And Unmerge
|
|
121
|
+
|
|
122
|
+
Merge APIs:
|
|
123
|
+
|
|
124
|
+
- `merge(options?) -> void` - merge cells into one block
|
|
125
|
+
- `breakApart() -> void` - unmerge cells
|
|
126
|
+
- `mergeAcross() -> void` - merge each row across the selected columns
|
|
127
|
+
- `mergeVertically() -> void` - merge each column down the selected rows
|
|
128
|
+
|
|
129
|
+
Typical uses:
|
|
130
|
+
|
|
131
|
+
- `merge()` for one combined block
|
|
132
|
+
- `mergeAcross()` to merge each row across the selected columns
|
|
133
|
+
- `mergeVertically()` to merge each column down the selected rows
|
|
134
|
+
- `breakApart()` to remove merges
|
|
135
|
+
- use `merge({ isForceMerge: true })` if you need to clear overlapping merges first
|
|
136
|
+
|
|
137
|
+
Example:
|
|
138
|
+
|
|
139
|
+
```javascript
|
|
140
|
+
() => {
|
|
141
|
+
const workbook = univerAPI.getActiveWorkbook();
|
|
142
|
+
const sheet = workbook.getSheetByName("Report");
|
|
143
|
+
if (!sheet) return { success: false, error: 'Sheet "Report" not found' };
|
|
144
|
+
|
|
145
|
+
sheet.getRange("A1:D1").merge();
|
|
146
|
+
sheet.getRange("A3:D4").mergeAcross();
|
|
147
|
+
|
|
148
|
+
return {
|
|
149
|
+
success: true,
|
|
150
|
+
titleMerged: sheet.getRange("A1").isPartOfMerge()
|
|
151
|
+
};
|
|
152
|
+
};
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
## Clear And Cell Shift Operations
|
|
156
|
+
|
|
157
|
+
Clear APIs:
|
|
158
|
+
|
|
159
|
+
- `clear() -> void` - clear the full range
|
|
160
|
+
- `clearContent() -> void` - clear only content and keep formatting
|
|
161
|
+
- `clearFormat() -> void` - clear only formatting and keep content
|
|
162
|
+
|
|
163
|
+
Use `clear()` when the task is to clear the full range. Use `clearContent()` or `clearFormat()` when you only want one part of that behavior.
|
|
164
|
+
|
|
165
|
+
Cell shift APIs:
|
|
166
|
+
|
|
167
|
+
- `insertCells(dimension) -> void` - insert cells and shift existing cells in the given dimension
|
|
168
|
+
- `deleteCells(dimension) -> void` - delete cells and shift remaining cells in the given dimension
|
|
169
|
+
|
|
170
|
+
Dimension constants:
|
|
171
|
+
|
|
172
|
+
- `univerAPI.Enum.Dimension.ROWS`
|
|
173
|
+
- `univerAPI.Enum.Dimension.COLUMNS`
|
|
174
|
+
|
|
175
|
+
Example:
|
|
176
|
+
|
|
177
|
+
```javascript
|
|
178
|
+
() => {
|
|
179
|
+
const workbook = univerAPI.getActiveWorkbook();
|
|
180
|
+
const sheet = workbook.getSheetByName("Queue");
|
|
181
|
+
if (!sheet) return { success: false, error: 'Sheet "Queue" not found' };
|
|
182
|
+
|
|
183
|
+
sheet.getRange("B2:C3").clear();
|
|
184
|
+
sheet.getRange("D2:D10").insertCells(univerAPI.Enum.Dimension.ROWS);
|
|
185
|
+
|
|
186
|
+
return { success: true };
|
|
187
|
+
};
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
## AutoFill
|
|
191
|
+
|
|
192
|
+
Use `autoFill()` when a correct seed pattern already exists and the workbook should propagate it.
|
|
193
|
+
|
|
194
|
+
- `autoFill(destRange, fillType?) -> Promise<void>` - propagate from the source range into a larger destination that includes the source
|
|
195
|
+
|
|
196
|
+
Notes:
|
|
197
|
+
|
|
198
|
+
- `destRange` must include the source range
|
|
199
|
+
- `fillType` can be `'SERIES'` (default) or `'COPY'`
|
|
200
|
+
- this method is async; use `await`
|
|
201
|
+
|
|
202
|
+
Example:
|
|
203
|
+
|
|
204
|
+
```javascript
|
|
205
|
+
async () => {
|
|
206
|
+
const workbook = univerAPI.getActiveWorkbook();
|
|
207
|
+
const sheet = workbook.getSheetByName("Series");
|
|
208
|
+
if (!sheet) return { success: false, error: 'Sheet "Series" not found' };
|
|
209
|
+
|
|
210
|
+
const source = sheet.getRange("A1:A2");
|
|
211
|
+
const dest = sheet.getRange("A1:A10");
|
|
212
|
+
await source.autoFill(dest);
|
|
213
|
+
|
|
214
|
+
return { success: true, values: dest.getValues() };
|
|
215
|
+
};
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
## Run-Specific Getchas
|
|
219
|
+
|
|
220
|
+
- all `run` code must be wrapped in an arrow function: `() => { ... }` or `async () => { ... }`
|
|
221
|
+
- always return an object such as `{ success: true, ... }`; do not rely on implicit return values
|
|
222
|
+
- only use methods explicitly documented in the run manual topics; do not guess method names or overloads
|
|
223
|
+
- prefer `getSheetByName(...)` so the worksheet boundary stays explicit and reviewable
|
|
224
|
+
- numeric coordinate overloads are 0-based, so `getRange(0, 0)` is `A1`
|
|
225
|
+
- if `setValue('=...')` or `setFormula('=...')` writes a formula, wait for `await univerAPI.getFormula().onCalculationResultApplied()` before reading the computed result
|
|
226
|
+
- `setValues()` requires a rectangular 2D array whose shape exactly matches the target range; `getRange(row, col)` without size only targets one cell
|
|
227
|
+
|
|
228
|
+
## Related Topics
|
|
229
|
+
|
|
230
|
+
- See `formulas` for a formula-first guide to calculation waits and readback.
|
|
231
|
+
- See `formatting` when the job is primarily visual formatting instead of values or structure.
|
|
232
|
+
- See `core` for `getRange()` variants, A1 notation, and coordinate rules.
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
# Sheets
|
|
2
|
+
|
|
3
|
+
This topic focuses on worksheet creation, worksheet structure, row or column presentation, freezing, gridlines, and visibility changes.
|
|
4
|
+
|
|
5
|
+
## What This Topic Is For
|
|
6
|
+
|
|
7
|
+
Use this topic when the task is about sheet-level or row/column-level structure instead of direct cell value changes.
|
|
8
|
+
|
|
9
|
+
## Worksheet Lifecycle
|
|
10
|
+
|
|
11
|
+
Use the workbook object to locate, list, create, and delete sheets.
|
|
12
|
+
|
|
13
|
+
- `getSheetByName(name) -> FWorksheet | null` - recommended explicit lookup by sheet name
|
|
14
|
+
- `getSheets() -> FWorksheet[]` - list all worksheets; useful when the task first needs sheet names
|
|
15
|
+
- `create(name, rows, cols) -> FWorksheet` - create a new worksheet with an initial shape
|
|
16
|
+
- `deleteSheet(sheetId) -> boolean` - delete the specified worksheet by sheet id
|
|
17
|
+
- `getSheetId() -> number` - worksheet id
|
|
18
|
+
- `getSheetName() -> string` - worksheet name
|
|
19
|
+
- `setName(name) -> void` - rename the worksheet
|
|
20
|
+
|
|
21
|
+
Example:
|
|
22
|
+
|
|
23
|
+
```javascript
|
|
24
|
+
() => {
|
|
25
|
+
const workbook = univerAPI.getActiveWorkbook();
|
|
26
|
+
const existing = workbook.getSheetByName("Summary");
|
|
27
|
+
if (existing) {
|
|
28
|
+
existing.setName("Executive Summary");
|
|
29
|
+
return { success: true, sheetName: existing.getSheetName() };
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
const sheet = workbook.create("Summary", 100, 20);
|
|
33
|
+
return { success: true, sheetName: sheet.getSheetName() };
|
|
34
|
+
};
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## Rows And Columns
|
|
38
|
+
|
|
39
|
+
- `insertRows(rowIndex, numRows) -> FWorksheet` - insert rows at a 0-based starting index
|
|
40
|
+
- `deleteRows(rowIndex, numRows) -> FWorksheet` - delete rows at a 0-based starting index
|
|
41
|
+
- `insertColumns(columnIndex, numColumns) -> FWorksheet` - insert columns at a 0-based starting index
|
|
42
|
+
- `deleteColumns(columnIndex, numColumns) -> FWorksheet` - delete columns at a 0-based starting index
|
|
43
|
+
- `getLastRow() -> number` - 0-based index of the last row with data
|
|
44
|
+
- `getLastColumn() -> number` - 0-based index of the last column with data
|
|
45
|
+
|
|
46
|
+
## Freeze Rows And Columns
|
|
47
|
+
|
|
48
|
+
- `setFrozenRows(rows)` or `setFrozenRows(startRow, endRow) -> FWorksheet` - freeze the first `rows` rows, or freeze a row range
|
|
49
|
+
- `setFrozenColumns(columns)` or `setFrozenColumns(startColumn, endColumn) -> FWorksheet` - freeze the first `columns` columns, or freeze a column range
|
|
50
|
+
|
|
51
|
+
Insert rows and freeze the header:
|
|
52
|
+
|
|
53
|
+
```javascript
|
|
54
|
+
() => {
|
|
55
|
+
const workbook = univerAPI.getActiveWorkbook();
|
|
56
|
+
const sheet = workbook.getSheetByName("Ops");
|
|
57
|
+
if (!sheet) return { success: false, error: 'Sheet "Ops" not found' };
|
|
58
|
+
|
|
59
|
+
sheet.insertRows(1, 2);
|
|
60
|
+
sheet.setFrozenRows(1);
|
|
61
|
+
|
|
62
|
+
return { success: true, lastRow: sheet.getLastRow() };
|
|
63
|
+
};
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
## Gridlines
|
|
67
|
+
|
|
68
|
+
- `hasHiddenGridLines() -> boolean` - check whether gridlines are hidden
|
|
69
|
+
- `setHiddenGridlines(hidden) -> FWorksheet` - show or hide sheet gridlines
|
|
70
|
+
- `setGridLinesColor(color) -> FWorksheet` - set gridline color; `undefined` or `null` resets to default
|
|
71
|
+
|
|
72
|
+
Hide gridlines and set their color:
|
|
73
|
+
|
|
74
|
+
```javascript
|
|
75
|
+
() => {
|
|
76
|
+
const workbook = univerAPI.getActiveWorkbook();
|
|
77
|
+
const sheet = workbook.getSheetByName("Dashboard");
|
|
78
|
+
if (!sheet) return { success: false, error: 'Sheet "Dashboard" not found' };
|
|
79
|
+
|
|
80
|
+
sheet.setHiddenGridlines(true);
|
|
81
|
+
sheet.setGridLinesColor("#D9D9D9");
|
|
82
|
+
|
|
83
|
+
return { success: true, hidden: sheet.hasHiddenGridLines() };
|
|
84
|
+
};
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
## Row And Column Presentation
|
|
88
|
+
|
|
89
|
+
- `setRowHeight(rowIndex, height) -> FWorksheet` - set one row height in pixels
|
|
90
|
+
- `setRowHeights(startRow, numRows, height) -> FWorksheet` - set multiple row heights
|
|
91
|
+
- `showRows(rowIndex, numRows) -> FWorksheet` - show hidden rows
|
|
92
|
+
- `hideRows(rowIndex, numRows) -> FWorksheet` - hide rows
|
|
93
|
+
- `autoResizeRows(startRow, numRows) -> FWorksheet` - auto-size row heights to content
|
|
94
|
+
- `setColumnWidth(columnIndex, width) -> FWorksheet` - set one column width in pixels
|
|
95
|
+
- `setColumnWidths(startColumn, numColumns, width) -> FWorksheet` - set multiple column widths
|
|
96
|
+
- `showColumns(columnIndex, numColumns) -> FWorksheet` - show hidden columns
|
|
97
|
+
- `hideColumns(columnIndex, numColumns) -> FWorksheet` - hide columns
|
|
98
|
+
- `autoResizeColumns(startColumn, numColumns) -> FWorksheet` - auto-size column widths to content
|
|
99
|
+
|
|
100
|
+
## Getchas
|
|
101
|
+
|
|
102
|
+
- imported workbooks can contain non-English worksheet names and still work normally
|
|
103
|
+
- quote the full range string in the shell, for example `--range '工作表1!A1:J3'`
|
|
104
|
+
- verify imported templates by reading a small anchor range and checking a few exact cells plus one non-empty cell
|
|
105
|
+
- for workbook-visible structure checks, prefer `inspect workbook` over package metadata
|
|
106
|
+
|
|
107
|
+
## Related Topics
|
|
108
|
+
|
|
109
|
+
- See `core` for workbook entry points, `getRange()`, A1 notation, and coordinates.
|
|
110
|
+
- See `formatting` for cell-level visual formatting after the sheet structure is in place.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{Ct as e}from"./vendor.js";export{e as Af};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{St as e}from"./vendor.js";export{e as As};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{xt as e}from"./vendor.js";export{e as Be};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{bt as e}from"./vendor.js";export{e as Bg};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{yt as e}from"./vendor.js";export{e as Bn};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{vt as e}from"./vendor.js";export{e as Ca};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{_t as e}from"./vendor.js";export{e as Cop};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{gt as e}from"./vendor.js";export{e as Cs};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{ht as e}from"./vendor.js";export{e as Cu};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{mt as e}from"./vendor.js";export{e as Cy};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{pt as e}from"./vendor.js";export{e as Da};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{ft as e}from"./vendor.js";export{e as De1901};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{dt as e}from"./vendor.js";export{e as De1996};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{ut as e}from"./vendor.js";export{e as DeCh1901};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{lt as e}from"./vendor.js";export{e as ElMonoton};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{ct as e}from"./vendor.js";export{e as ElPolyton};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{st as e}from"./vendor.js";export{e as EnGb};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{Jt as e,qt as t}from"./vendor.js";export{e as n,t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{ot as e}from"./vendor.js";export{e as Es};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{at as e}from"./vendor.js";export{e as Et};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{it as e}from"./vendor.js";export{e as Eu};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{rt as e}from"./vendor.js";export{e as Fi};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{nt as e}from"./vendor.js";export{e as Fr};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{tt as e}from"./vendor.js";export{e as Fur};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{et as e}from"./vendor.js";export{e as Ga};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{$ as e}from"./vendor.js";export{e as Gl};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{Q as e}from"./vendor.js";export{e as Grc};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{Z as e}from"./vendor.js";export{e as Gu};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{X as e}from"./vendor.js";export{e as Hi};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{Y as e}from"./vendor.js";export{e as Hr};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{J as e}from"./vendor.js";export{e as Hsb};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{q as e}from"./vendor.js";export{e as Hu};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{K as e}from"./vendor.js";export{e as Hy};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{G as e}from"./vendor.js";export{e as Ia};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{W as e}from"./vendor.js";export{e as Id};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{U as e}from"./vendor.js";export{e as Is};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{H as e}from"./vendor.js";export{e as It};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{V as e}from"./vendor.js";export{e as Ka};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{B as e}from"./vendor.js";export{e as Kmr};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{z as e}from"./vendor.js";export{e as Kn};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{R as e}from"./vendor.js";export{e as La};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{L as e}from"./vendor.js";export{e as LaXClassic};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{I as e}from"./vendor.js";export{e as LaXLiturgic};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{F as e}from"./vendor.js";export{e as Lt};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{P as e}from"./vendor.js";export{e as Lv};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{N as e}from"./vendor.js";export{e as Ml};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{M as e}from"./vendor.js";export{e as MnCyrl};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{j as e}from"./vendor.js";export{e as MnCyrlXLmc};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{A as e}from"./vendor.js";export{e as Mr};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{k as e}from"./vendor.js";export{e as MulEthi};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{O as e}from"./vendor.js";export{e as Nb};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{D as e}from"./vendor.js";export{e as Nl};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{E as e}from"./vendor.js";export{e as Nn};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{T as e}from"./vendor.js";export{e as No};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{w as e}from"./vendor.js";export{e as Oc};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{C as e}from"./vendor.js";export{e as Or};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{S as e}from"./vendor.js";export{e as Pa};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{x as e}from"./vendor.js";export{e as Pi};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{b as e}from"./vendor.js";export{e as Pl};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{y as e}from"./vendor.js";export{e as Pms};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{v as e}from"./vendor.js";export{e as Pt};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{_ as e}from"./vendor.js";export{e as Rm};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{g as e}from"./vendor.js";export{e as Ro};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),s=(e,n)=>{let r={};for(var i in e)t(r,i,{get:e[i],enumerable:!0});return n&&t(r,Symbol.toStringTag,{value:`Module`}),r},c=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},l=(n,r,a)=>(a=n==null?{}:e(i(n)),c(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n)),u=(e=>typeof require<`u`?require:typeof Proxy<`u`?new Proxy(e,{get:(e,t)=>(typeof require<`u`?require:e)[t]}):e)(function(e){if(typeof require<`u`)return require.apply(this,arguments);throw Error('Calling `require` for "'+e+"\" in an environment that doesn't expose the `require` function.")});export{l as i,s as n,u as r,o as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{h as e}from"./vendor.js";export{e as Ru};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{m as e}from"./vendor.js";export{e as Sa};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{p as e}from"./vendor.js";export{e as ShCyrl};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{f as e}from"./vendor.js";export{e as ShLatn};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{d as e}from"./vendor.js";export{e as Sk};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{u as e}from"./vendor.js";export{e as Sl};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{l as e}from"./vendor.js";export{e as SrCyrl};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{c as e}from"./vendor.js";export{e as Sv};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{s as e}from"./vendor.js";export{e as Ta};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{o as e}from"./vendor.js";export{e as Te};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as e}from"./vendor.js";export{e as Th};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{i as e}from"./vendor.js";export{e as Tk};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as e}from"./vendor.js";export{e as Tr};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{n as e}from"./vendor.js";export{e as Uk};
|