|
|
@ -10,6 +10,8 @@ |
|
|
|
|
|
|
|
## 单元格刷新 |
|
|
|
|
|
|
|
### 单个单元格刷新 |
|
|
|
|
|
|
|
- **格式**: |
|
|
|
|
|
|
|
```json |
|
|
@ -48,6 +50,43 @@ |
|
|
|
``` |
|
|
|
后台在保存前台推送的数据时,会更新 `luckysheetfile[i].celldata` 字段,如果存在该单元格则更新,如果没有则添加,如果存在该单元格但是`v`为null则删除该单元格。 |
|
|
|
|
|
|
|
|
|
|
|
### 范围单元格刷新 |
|
|
|
|
|
|
|
- **格式**: |
|
|
|
|
|
|
|
```json |
|
|
|
{ |
|
|
|
"t": "rv", |
|
|
|
"i": "Sheet_ahKdzaNC65iL_1598343160744", |
|
|
|
"v": [ |
|
|
|
[ |
|
|
|
{ "v": 3, "ct": { "fa": "General", "t": "n" }, "m": "3" } |
|
|
|
], |
|
|
|
[ |
|
|
|
{ "v": 4, "ct": { "fa": "General", "t": "n" }, "m": "4" } |
|
|
|
] |
|
|
|
], |
|
|
|
"range": { |
|
|
|
"row": [ 1, 2 ], |
|
|
|
"column": [ 1, 1 ] |
|
|
|
} |
|
|
|
} |
|
|
|
``` |
|
|
|
|
|
|
|
- **说明**: |
|
|
|
|
|
|
|
|参数|说明| |
|
|
|
| ------------ | ------------ | |
|
|
|
|t|操作类型表示符号| |
|
|
|
|i|当前sheet的索引值| |
|
|
|
|v|范围二维数组,单元格对象参考 [单元格属性表](/zh/guide/cell.html#基本单元格)| |
|
|
|
|range|范围行列数| |
|
|
|
|
|
|
|
- **后台更新**: |
|
|
|
|
|
|
|
前端维护luckysheetfile[i].data,而单元格更新到后台,继续维护`luckysheetfile[i].celldata` 参数,需要将指定位置`range`的所有单元格数据替换为新的数据 |
|
|
|
|
|
|
|
## config操作 |
|
|
|
|
|
|
|
- **格式**: |
|
|
@ -78,7 +117,7 @@ |
|
|
|
|
|
|
|
- **后台更新**: |
|
|
|
|
|
|
|
更新 `luckysheetfile[i].config.[k] = v` ,如果`config`中不存在`k`,则新建一个`k`属性并设置为空。 |
|
|
|
更新 `luckysheetfile[i].config[k] = v` ,如果`config`中不存在`k`,则新建一个`k`属性并设置为空。 |
|
|
|
|
|
|
|
注意一点,修改config中的某个配置时,会把这个配置全部传输到后台,比如修改borderInfo,本来已经有一个含边框的单元格了,再新设置一个单元格边框,这时候会把这两个单元格边框信息都传输到后台,而不做更细颗粒的操作。 |
|
|
|
|
|
|
@ -92,7 +131,7 @@ |
|
|
|
"k": "rowhidden" |
|
|
|
} |
|
|
|
``` |
|
|
|
- 后台更新:`luckysheetfile["Sheet_0554kKiKl4M7_1597974810804"].config.["rowhidden"] = { "5": 0, "6": 0, "13": 0, "14": 0 }` |
|
|
|
- 后台更新:`luckysheetfile["Sheet_0554kKiKl4M7_1597974810804"].config["rowhidden"] = { "5": 0, "6": 0, "13": 0, "14": 0 }` |
|
|
|
|
|
|
|
2. 修改行高: |
|
|
|
- 发送到后台: |
|
|
@ -104,7 +143,7 @@ |
|
|
|
"k": "rowlen" |
|
|
|
} |
|
|
|
``` |
|
|
|
- 后台更新:`luckysheetfile["Sheet_0554kKiKl4M7_1597974810804"].config.["rowlen"] = { "9": 20, "11": 71, "15": 58 }` |
|
|
|
- 后台更新:`luckysheetfile["Sheet_0554kKiKl4M7_1597974810804"].config["rowlen"] = { "9": 20, "11": 71, "15": 58 }` |
|
|
|
|
|
|
|
3. 修改列宽: |
|
|
|
- 发送到后台: |
|
|
@ -116,7 +155,7 @@ |
|
|
|
"k": "columnlen" |
|
|
|
} |
|
|
|
``` |
|
|
|
- 后台更新:`luckysheetfile["Sheet_0554kKiKl4M7_1597974810804"].config.["columnlen"] = { "2": 135 }` |
|
|
|
- 后台更新:`luckysheetfile["Sheet_0554kKiKl4M7_1597974810804"].config["columnlen"] = { "2": 135 }` |
|
|
|
|
|
|
|
## 通用保存 |
|
|
|
|
|
|
@ -128,10 +167,7 @@ |
|
|
|
"i": 0, |
|
|
|
"v": { |
|
|
|
"type": "rangeRow", |
|
|
|
"range": { |
|
|
|
"row_focus": 1, |
|
|
|
"column_focus": 1 |
|
|
|
} |
|
|
|
"range": { "row_focus": 1, "column_focus": 1 } |
|
|
|
}, |
|
|
|
"k": "frozen" |
|
|
|
} |
|
|
@ -148,50 +184,370 @@ |
|
|
|
|
|
|
|
- **后台更新**: |
|
|
|
|
|
|
|
`luckysheetfile[3].[k]= v` |
|
|
|
如果`s`为`true`,则为 `luckysheetfile[3].[k]= JSON.stringify(v)` |
|
|
|
|
|
|
|
1. 数据透视表: |
|
|
|
- 输入:`{"t":"all","i":1,"v":{………},"k":"pivotTable", "s": false}` |
|
|
|
- 更新:`luckysheetfile[1].["pivotTable"] = {………}` |
|
|
|
更新 `luckysheetfile[i][k] = v` ,如果`luckysheetfile[i]`中不存在`k`,则新建一个`k`属性并设置为空。 |
|
|
|
|
|
|
|
2. 冻结行列: |
|
|
|
- 输入:`{"t":"all","i":3,"v":{………},"k":"freezen", "s": false}` |
|
|
|
- 更新:`luckysheetfile[3].["freezen"] = {………}` |
|
|
|
1. 冻结行列: |
|
|
|
- 发送到后台: |
|
|
|
```json |
|
|
|
{ |
|
|
|
"t": "all", |
|
|
|
"i": 0, |
|
|
|
"v": { |
|
|
|
"type": "rangeRow", |
|
|
|
"range": { "row_focus": 1, "column_focus": 1 } |
|
|
|
}, |
|
|
|
"k": "frozen" |
|
|
|
} |
|
|
|
``` |
|
|
|
- 后台更新: |
|
|
|
```js |
|
|
|
luckysheetfile[0]["frozen"] = { |
|
|
|
"type": "rangeRow", |
|
|
|
"range": { "row_focus": 1, "column_focus": 1 } |
|
|
|
} |
|
|
|
``` |
|
|
|
|
|
|
|
3. 筛选范围: |
|
|
|
- 输入:`{"t":"all","i":3,"v":{………},"k":"filter_select", "s": true }` |
|
|
|
- 更新:`luckysheetfile[3].["filter_select"] = JSON.stringify ({………})` |
|
|
|
|
|
|
|
4. Sheet名称: |
|
|
|
- 输入:`{"t":"all","i":1,"v":"文档","k":"name", "s": false}` |
|
|
|
- 更新:`luckysheetfile[1].["name"] = "文档"` |
|
|
|
2. 修改工作表名称: |
|
|
|
- 发送到后台: |
|
|
|
```json |
|
|
|
{ |
|
|
|
"t": "all", |
|
|
|
"i": 0, |
|
|
|
"v": "Cell22", |
|
|
|
"k": "name" |
|
|
|
} |
|
|
|
``` |
|
|
|
- 后台更新:`luckysheetfile[0]["name"] = "Cell22"` |
|
|
|
|
|
|
|
3. 修改工作表颜色: |
|
|
|
- 发送到后台: |
|
|
|
```json |
|
|
|
{ |
|
|
|
"t": "all", |
|
|
|
"i": 0, |
|
|
|
"v": "#f02323", |
|
|
|
"k": "color" |
|
|
|
} |
|
|
|
``` |
|
|
|
- 后台更新:`luckysheetfile[0]["color"] = "#f02323"` |
|
|
|
|
|
|
|
4. 合并单元格: |
|
|
|
- 发送到后台: |
|
|
|
```json |
|
|
|
{ |
|
|
|
"t": "all", |
|
|
|
"i": "Sheet_aheLt0Waf1lk_1598248231626", |
|
|
|
"v": { |
|
|
|
"merge": { |
|
|
|
"0_0": { "r": 0, "c": 0, "rs": 2, "cs": 1 } |
|
|
|
}, |
|
|
|
"rowlen": {} |
|
|
|
}, |
|
|
|
"k": "config" |
|
|
|
} |
|
|
|
``` |
|
|
|
- 后台更新: |
|
|
|
```js |
|
|
|
luckysheetfile["Sheet_aheLt0Waf1lk_1598248231626"]["config"] = { |
|
|
|
"merge": { |
|
|
|
"0_0": { "r": 0, "c": 0, "rs": 2, "cs": 1 } |
|
|
|
}, |
|
|
|
"rowlen": {} |
|
|
|
} |
|
|
|
``` |
|
|
|
|
|
|
|
注意,合并单元格的更新比较特殊,要求把整个config传输到后台,因为合并单元格可能会影响到其他参数。 |
|
|
|
|
|
|
|
5. 筛选范围: |
|
|
|
- 发送到后台: |
|
|
|
```json |
|
|
|
{ |
|
|
|
"t": "all", |
|
|
|
"i": 0, |
|
|
|
"v": { |
|
|
|
"row": [ 16, 21 ], |
|
|
|
"column": [ 2, 3 ] |
|
|
|
}, |
|
|
|
"k": "filter_select" |
|
|
|
} |
|
|
|
``` |
|
|
|
- 后台更新: |
|
|
|
```js |
|
|
|
luckysheetfile[0]["filter_select"] = { |
|
|
|
"row": [ 16, 21 ], |
|
|
|
"column": [ 2, 3 ] |
|
|
|
} |
|
|
|
``` |
|
|
|
|
|
|
|
6. 筛选的具体设置: |
|
|
|
- 发送到后台: |
|
|
|
```json |
|
|
|
{ |
|
|
|
"t": "all", |
|
|
|
"i": "0", |
|
|
|
"v": { |
|
|
|
"0": { |
|
|
|
"caljs": { |
|
|
|
"value": "textinclude", |
|
|
|
"text": "Text contains", |
|
|
|
"type": "1", |
|
|
|
"value1": "Lucky" |
|
|
|
}, |
|
|
|
"rowhidden": { |
|
|
|
"18": 0 |
|
|
|
}, |
|
|
|
"optionstate": true, |
|
|
|
"str": 17, |
|
|
|
"edr": 19, |
|
|
|
"cindex": 2, |
|
|
|
"stc": 2, |
|
|
|
"edc": 3 |
|
|
|
} |
|
|
|
}, |
|
|
|
"k": "filter" |
|
|
|
} |
|
|
|
``` |
|
|
|
- 后台更新: |
|
|
|
```js |
|
|
|
luckysheetfile[0]["filter"] = { |
|
|
|
"0": { |
|
|
|
"caljs": { |
|
|
|
"value": "textinclude", |
|
|
|
"text": "Text contains", |
|
|
|
"type": "1", |
|
|
|
"value1": "Lucky" |
|
|
|
}, |
|
|
|
"rowhidden": { |
|
|
|
"18": 0 |
|
|
|
}, |
|
|
|
"optionstate": true, |
|
|
|
"str": 17, |
|
|
|
"edr": 19, |
|
|
|
"cindex": 2, |
|
|
|
"stc": 2, |
|
|
|
"edc": 3 |
|
|
|
} |
|
|
|
} |
|
|
|
``` |
|
|
|
|
|
|
|
7. 交替颜色: |
|
|
|
- 发送到后台: |
|
|
|
```json |
|
|
|
{ |
|
|
|
"t": "all", |
|
|
|
"i": "Sheet_4N45tpMd0ni4_1598250591760", |
|
|
|
"v": [ |
|
|
|
{ |
|
|
|
"cellrange": { |
|
|
|
"row": [ 2, 6 ], |
|
|
|
"column": [ 1, 4 ] |
|
|
|
}, |
|
|
|
"format": { |
|
|
|
"head": { |
|
|
|
"fc": "#000", |
|
|
|
"bc": "#f6cb4b" |
|
|
|
}, |
|
|
|
"one": { |
|
|
|
"fc": "#000", |
|
|
|
"bc": "#ffffff" |
|
|
|
}, |
|
|
|
"two": { |
|
|
|
"fc": "#000", |
|
|
|
"bc": "#fff9e7" |
|
|
|
}, |
|
|
|
"foot": { |
|
|
|
"fc": "#000", |
|
|
|
"bc": "#ffebac" |
|
|
|
} |
|
|
|
}, |
|
|
|
"hasRowHeader": true, |
|
|
|
"hasRowFooter": true |
|
|
|
} |
|
|
|
], |
|
|
|
"k": "luckysheet_alternateformat_save" |
|
|
|
} |
|
|
|
``` |
|
|
|
- 后台更新: |
|
|
|
```js |
|
|
|
luckysheetfile["Sheet_4N45tpMd0ni4_1598250591760"]["luckysheet_alternateformat_save"] = [ |
|
|
|
{ |
|
|
|
"cellrange": { |
|
|
|
"row": [ 2, 6 ], |
|
|
|
"column": [ 1, 4 ] |
|
|
|
}, |
|
|
|
"format": { |
|
|
|
"head": { |
|
|
|
"fc": "#000", |
|
|
|
"bc": "#f6cb4b" |
|
|
|
}, |
|
|
|
"one": { |
|
|
|
"fc": "#000", |
|
|
|
"bc": "#ffffff" |
|
|
|
}, |
|
|
|
"two": { |
|
|
|
"fc": "#000", |
|
|
|
"bc": "#fff9e7" |
|
|
|
}, |
|
|
|
"foot": { |
|
|
|
"fc": "#000", |
|
|
|
"bc": "#ffebac" |
|
|
|
} |
|
|
|
}, |
|
|
|
"hasRowHeader": true, |
|
|
|
"hasRowFooter": true |
|
|
|
} |
|
|
|
] |
|
|
|
``` |
|
|
|
|
|
|
|
8. 条件格式: |
|
|
|
- 发送到后台: |
|
|
|
```json |
|
|
|
{ |
|
|
|
"t": "all", |
|
|
|
"i": "Sheet_545W7w03kLkC_1598251927583", |
|
|
|
"v": [ |
|
|
|
{ |
|
|
|
"type": "default", |
|
|
|
"cellrange": [ |
|
|
|
{ |
|
|
|
"row": [ 2, 6 ], |
|
|
|
"column": [ 1, 3 ] |
|
|
|
} |
|
|
|
], |
|
|
|
"format": { |
|
|
|
"textColor": "#9c0006", |
|
|
|
"cellColor": "#ffc7ce" |
|
|
|
}, |
|
|
|
"conditionName": "greaterThan", |
|
|
|
"conditionRange": [], |
|
|
|
"conditionValue": [ "3" ] |
|
|
|
} |
|
|
|
], |
|
|
|
"k": "luckysheet_conditionformat_save" |
|
|
|
} |
|
|
|
``` |
|
|
|
- 后台更新: |
|
|
|
```js |
|
|
|
luckysheetfile["Sheet_545W7w03kLkC_1598251927583"]["luckysheet_conditionformat_save"] = [ |
|
|
|
{ |
|
|
|
"type": "default", |
|
|
|
"cellrange": [ |
|
|
|
{ |
|
|
|
"row": [ 2, 6 ], |
|
|
|
"column": [ 1, 3 ] |
|
|
|
} |
|
|
|
], |
|
|
|
"format": { |
|
|
|
"textColor": "#9c0006", |
|
|
|
"cellColor": "#ffc7ce" |
|
|
|
}, |
|
|
|
"conditionName": "greaterThan", |
|
|
|
"conditionRange": [], |
|
|
|
"conditionValue": [ "3" ] |
|
|
|
} |
|
|
|
] |
|
|
|
``` |
|
|
|
|
|
|
|
9. 数据透视表: |
|
|
|
- 发送到后台: |
|
|
|
```json |
|
|
|
{ |
|
|
|
"t": "all", |
|
|
|
"i": "Sheet_r3Cz5bbxipL3_1598252547290", |
|
|
|
"v": { |
|
|
|
"pivot_select_save": { |
|
|
|
"row": [ 0, 2 ], |
|
|
|
"column": [ 0, 2 ] |
|
|
|
}, |
|
|
|
"pivotDataSheetIndex": "Sheet_31ikLMip330K_1598252536645", |
|
|
|
"column": [], |
|
|
|
"row": [], |
|
|
|
"filter": [], |
|
|
|
"values": [], |
|
|
|
"showType": "column" |
|
|
|
}, |
|
|
|
"k": "pivotTable" |
|
|
|
} |
|
|
|
``` |
|
|
|
- 后台更新: |
|
|
|
```js |
|
|
|
luckysheetfile["Sheet_r3Cz5bbxipL3_1598252547290"]["pivotTable"] = { |
|
|
|
"pivot_select_save": { |
|
|
|
"row": [ 0, 2 ], |
|
|
|
"column": [ 0, 2 ] |
|
|
|
}, |
|
|
|
"pivotDataSheetIndex": "Sheet_31ikLMip330K_1598252536645", |
|
|
|
"column": [], |
|
|
|
"row": [], |
|
|
|
"filter": [], |
|
|
|
"values": [], |
|
|
|
"showType": "column" |
|
|
|
} |
|
|
|
``` |
|
|
|
|
|
|
|
5. Sheet颜色: |
|
|
|
- 输入: `{"t":"all","i":2,"v":"#FFF000","k":"color", "s": false}` |
|
|
|
- 更新:`luckysheetfile[2].["color"] = "#FFF000"` |
|
|
|
注意,虽然数据透视表的格式是这个,但是当你选择一个范围之后,点击生产数据透视表时,Luckysheet会先执行新建sheet页和切换到该sheet页的操作,才能在新建的sheet页加上数据透视表。 |
|
|
|
|
|
|
|
10. 动态数组: |
|
|
|
- 发送到后台: |
|
|
|
```json |
|
|
|
{ |
|
|
|
"t": "all", |
|
|
|
"i": "Sheet_r3Cz5bbxipL3_1598252547290", |
|
|
|
"v": [ |
|
|
|
{ |
|
|
|
"r": 4, |
|
|
|
"c": 5, |
|
|
|
"f": "=UNIQUE(B2:E9)", |
|
|
|
"data": [ |
|
|
|
[ 1, 2, 3, 4 ], |
|
|
|
[ 2, 3, 4, 5 ], |
|
|
|
[ 3, 4, 5, 6 ], |
|
|
|
[ 4, 5, 6, 7 ], |
|
|
|
[ 5, 6, 7, 8 ], |
|
|
|
[ 6, 7, 8, 9 ], |
|
|
|
[ 7, 8, 9, 10 ], |
|
|
|
[ 8, 9, 10, 11 ] |
|
|
|
] |
|
|
|
} |
|
|
|
], |
|
|
|
"k": "dynamicArray" |
|
|
|
} |
|
|
|
``` |
|
|
|
- 后台更新: |
|
|
|
```js |
|
|
|
luckysheetfile["Sheet_r3Cz5bbxipL3_1598252547290"]["dynamicArray"] = [ |
|
|
|
{ |
|
|
|
"r": 4, |
|
|
|
"c": 5, |
|
|
|
"f": "=UNIQUE(B2:E9)", |
|
|
|
"data": [ |
|
|
|
[ 1, 2, 3, 4 ], |
|
|
|
[ 2, 3, 4, 5 ], |
|
|
|
[ 3, 4, 5, 6 ], |
|
|
|
[ 4, 5, 6, 7 ], |
|
|
|
[ 5, 6, 7, 8 ], |
|
|
|
[ 6, 7, 8, 9 ], |
|
|
|
[ 7, 8, 9, 10 ], |
|
|
|
[ 8, 9, 10, 11 ] |
|
|
|
] |
|
|
|
} |
|
|
|
] |
|
|
|
``` |
|
|
|
|
|
|
|
## 函数链操作 |
|
|
|
|
|
|
|
- **格式**: |
|
|
|
|
|
|
|
```json |
|
|
|
|
|
|
|
{ |
|
|
|
"t": "fc", |
|
|
|
"i": 0, |
|
|
|
"v": { |
|
|
|
"r": 3, |
|
|
|
"c": 7, |
|
|
|
"index": 0, |
|
|
|
"func": [ |
|
|
|
true, |
|
|
|
187282, |
|
|
|
"=SUM(E4:G4)" |
|
|
|
] |
|
|
|
}, |
|
|
|
"i": "0", |
|
|
|
"v": "{\"r\":1,\"c\":1,\"index\":\"0\",\"func\":[true,3,\"=sum(A1:B1)\"]}", |
|
|
|
"op": "add", |
|
|
|
"pos": 0 |
|
|
|
"pos": 1 |
|
|
|
} |
|
|
|
|
|
|
|
``` |
|
|
|
|
|
|
|
- **说明**: |
|
|
@ -207,13 +563,29 @@ |
|
|
|
- **后台更新**: |
|
|
|
|
|
|
|
calcChain为一个数组 |
|
|
|
- 如果`op`的值为`add`则添加到末尾 `luckysheetfile[i].calcChain.push (v)`, |
|
|
|
- 如果`op`的值为`update`则更新 `luckysheetfile[i].calcChain[pos]= v`, |
|
|
|
- 如果`op`的值为`del`则删除 `luckysheetfile[i].calcChain.splice(pos, 1)`。 |
|
|
|
|
|
|
|
- **前台查看**: |
|
|
|
|
|
|
|
可以修改任意单元格的数值,然后到chrome控制台中查看`"t"=="v"`的操作。 |
|
|
|
- 如果`op`的值为`add`则添加到末尾 `luckysheetfile[0].calcChain.push(v)`, |
|
|
|
- 如果`op`的值为`update`,格式为: |
|
|
|
```json |
|
|
|
{ |
|
|
|
"t": "fc", |
|
|
|
"i": "0", |
|
|
|
"v": "{\"r\":0,\"c\":3,\"index\":\"0\",\"func\":[true,1,\"=Formula!A1+Formula!B1+1\"],\"color\":\"w\",\"parent\":null,\"chidren\":{},\"times\":0}", |
|
|
|
"op": "update", |
|
|
|
"pos": 0 |
|
|
|
} |
|
|
|
``` |
|
|
|
更新 `luckysheetfile[0].calcChain[pos] = v`, |
|
|
|
- 如果`op`的值为`del`则删除,格式为: |
|
|
|
```json |
|
|
|
{ |
|
|
|
"t": "fc", |
|
|
|
"i": 0, |
|
|
|
"v": null, |
|
|
|
"op": "del", |
|
|
|
"pos": 0 |
|
|
|
} |
|
|
|
``` |
|
|
|
`luckysheetfile[0].calcChain.splice(pos, 1)`。 |
|
|
|
|
|
|
|
## 行列操作 |
|
|
|
|
|
|
@ -271,10 +643,6 @@ |
|
|
|
主要是对 `luckysheetfile[i].celldata` 中的单元格进行操作,删除参数中所描述符合条件的单元格并且更新其他单元格的行列值,以上述为例,首先查找单元格中`r`值在4到8的所有单元格并删除,然后把本来行号9以后的单元格的`r`值减去5,最后把 `luckysheetfile[i].row` 减去5。 |
|
|
|
如果`v`值为 `"#__qkdelete#"`(不含引号),则此处为需要删除的单元格。 |
|
|
|
|
|
|
|
- **前台查看**: |
|
|
|
|
|
|
|
可以删除行或者列,然后到chrome控制台中查看`"t"=="drc"`的操作。 |
|
|
|
|
|
|
|
### 增加行或列 |
|
|
|
|
|
|
|
- **格式**: |
|
|
@ -282,13 +650,14 @@ |
|
|
|
```json |
|
|
|
{ |
|
|
|
"t": "arc", |
|
|
|
"i": 0, |
|
|
|
"i": "0", |
|
|
|
"v": { |
|
|
|
"index": 5, |
|
|
|
"len": 10, |
|
|
|
"index": 1, |
|
|
|
"len": 1, |
|
|
|
"direction": "lefttop", |
|
|
|
"data": [] |
|
|
|
}, |
|
|
|
"rc": "c" |
|
|
|
"rc": "r" |
|
|
|
} |
|
|
|
``` |
|
|
|
|
|
|
@ -312,7 +681,7 @@ |
|
|
|
<td>行操作还是列操作,值`r`代表行,`c`代表列</td> |
|
|
|
</tr> |
|
|
|
<tr> |
|
|
|
<td rowspan="3">v</td> |
|
|
|
<td rowspan="4">v</td> |
|
|
|
<td>index</td> |
|
|
|
<td>从第几行或者列开始新增</td> |
|
|
|
</tr> |
|
|
@ -320,6 +689,10 @@ |
|
|
|
<td>len</td> |
|
|
|
<td>增加多少行或者列</td> |
|
|
|
</tr> |
|
|
|
<tr> |
|
|
|
<td>direction</td> |
|
|
|
<td>方向</td> |
|
|
|
</tr> |
|
|
|
<tr> |
|
|
|
<td>data</td> |
|
|
|
<td>新增行或者列的内容</td> |
|
|
@ -346,39 +719,8 @@ |
|
|
|
return ret; |
|
|
|
``` |
|
|
|
|
|
|
|
- **前台查看**: |
|
|
|
可以新增行或者列,然后到chrome控制台中查看`"t"=="arc"`的操作。如果想查看具有`data`值的操作,则先删除某几行或几列,然后再撤销删除(Ctrl+Z),就能看到。 |
|
|
|
|
|
|
|
## 筛选操作 |
|
|
|
|
|
|
|
### 选择筛选条件 |
|
|
|
|
|
|
|
- **格式**: |
|
|
|
|
|
|
|
```json |
|
|
|
{ |
|
|
|
"t": "f", |
|
|
|
"i": 0, |
|
|
|
"v": "{\"caljs\":{},\"selected\":{\"青岛\":\"1\",\"广西\":\"1\",\"重庆\":\"1\"},\"rowhidden\":{\"1\":0,\"2\":0,\"3\":0,\"4\":0,\"6\":0,\"7\":0,\"8\":0,\"9\":0,\"10\":0,\"11\":0,\"12\":0,\"13\":0,\"14\":0,\"15\":0,\"16\":0,\"17\":0,\"18\":0,\"19\":0,\"21\":0,\"22\":0,\"24\":0,\"25\":0,\"26\":0,\"27\":0,\"28\":0,\"29\":0,\"30\":0,\"31\":0,\"32\":0,\"33\":0,\"34\":0,\"35\":0}}", |
|
|
|
"op": "upOrAdd", |
|
|
|
"pos": 1 |
|
|
|
} |
|
|
|
``` |
|
|
|
|
|
|
|
- **说明**: |
|
|
|
|
|
|
|
|参数|说明| |
|
|
|
| ------------ | ------------ | |
|
|
|
|t|操作类型表示符号| |
|
|
|
|i|当前sheet的index值| |
|
|
|
|v|对象值,这里对象的内部字段不需要单独更新,所以存为文本即可| |
|
|
|
|op|操作类型`upOrAdd`为更新,如果不存在则增加,`del`为删除| |
|
|
|
|pos|更新或者删除的`option`位置| |
|
|
|
|
|
|
|
- **后台更新**: |
|
|
|
|
|
|
|
更新 `luckysheetfile[i].filter = { pos : v }`, v值为一个JSON格式的字符串。filter为一个键值对,key表示选项位置的索引值(以字符表示),v表示一个json字符串参数。filter代表一个筛选条件的集合。 |
|
|
|
|
|
|
|
### 清除筛选 |
|
|
|
|
|
|
|
- **格式**: |
|
|
@ -393,7 +735,7 @@ |
|
|
|
|
|
|
|
- **后台更新**: |
|
|
|
|
|
|
|
清除 `luckysheetfile[i]. filter = null` , `luckysheetfile[i]. filter_select = null`。 |
|
|
|
清除 `luckysheetfile[0].filter = null` , `luckysheetfile[i].filter_select = null`。 |
|
|
|
|
|
|
|
### 恢复筛选 |
|
|
|
|
|
|
@ -425,12 +767,14 @@ |
|
|
|
"t": "sha", |
|
|
|
"i": null, |
|
|
|
"v": { |
|
|
|
"name": "Sheet4", |
|
|
|
"name": "Sheet11", |
|
|
|
"color": "", |
|
|
|
"status": "0", |
|
|
|
"order": 3, |
|
|
|
"index": 3, |
|
|
|
"data": [], |
|
|
|
"order": 10, |
|
|
|
"index": "Sheet_oWlM5pKnwL1s_1598331858653", |
|
|
|
"celldata": [], |
|
|
|
"row": 84, |
|
|
|
"column": 60, |
|
|
|
"config": {}, |
|
|
|
"pivotTable": null, |
|
|
|
"isPivotTable": false |
|
|
@ -454,7 +798,7 @@ |
|
|
|
<td>当前sheet的index值</td> |
|
|
|
</tr> |
|
|
|
<tr> |
|
|
|
<td rowspan="9">v</td> |
|
|
|
<td rowspan="11">v</td> |
|
|
|
<td>name</td> |
|
|
|
<td>隐藏后跳转的sheet的index值</td> |
|
|
|
</tr> |
|
|
@ -478,6 +822,14 @@ |
|
|
|
<td>celldata</td> |
|
|
|
<td>单元格数据集</td> |
|
|
|
</tr> |
|
|
|
<tr> |
|
|
|
<td>row</td> |
|
|
|
<td>行数</td> |
|
|
|
</tr> |
|
|
|
<tr> |
|
|
|
<td>column</td> |
|
|
|
<td>列数</td> |
|
|
|
</tr> |
|
|
|
<tr> |
|
|
|
<td>config</td> |
|
|
|
<td>设置</td> |
|
|
@ -496,6 +848,8 @@ |
|
|
|
- **后台更新**: |
|
|
|
|
|
|
|
添加一行(一个文档)到数据库中。 |
|
|
|
`luckysheetfile.push(json)` |
|
|
|
|
|
|
|
|
|
|
|
### 复制sheet |
|
|
|
|
|
|
@ -504,9 +858,10 @@ |
|
|
|
```json |
|
|
|
{ |
|
|
|
"t": "shc", |
|
|
|
"i": "新建sheet的位置", |
|
|
|
"i": "Sheet_e5pKTeloilhe_1598332166630", |
|
|
|
"v": { |
|
|
|
"copyindex": "copyindex" |
|
|
|
"copyindex": 0, |
|
|
|
"name": "Cell(Copy)" |
|
|
|
} |
|
|
|
} |
|
|
|
``` |
|
|
@ -552,15 +907,61 @@ |
|
|
|
|
|
|
|
删除索引为`deleIndex`对应值的sheet。 |
|
|
|
|
|
|
|
### 位置 |
|
|
|
### 删除sheet后恢复操作 |
|
|
|
|
|
|
|
- **格式**: |
|
|
|
|
|
|
|
```json |
|
|
|
{ |
|
|
|
"t": "shre", |
|
|
|
"i": null, |
|
|
|
"v": { |
|
|
|
"reIndex": "0" |
|
|
|
} |
|
|
|
} |
|
|
|
``` |
|
|
|
|
|
|
|
- **说明**: |
|
|
|
|
|
|
|
<table> |
|
|
|
<tr> |
|
|
|
<td colspan="2">参数</td> |
|
|
|
<td>说明</td> |
|
|
|
</tr> |
|
|
|
<tr> |
|
|
|
<td colspan="2">t</td> |
|
|
|
<td>操作类型表示符号</td> |
|
|
|
</tr> |
|
|
|
<tr> |
|
|
|
<td rowspan="2">v</td> |
|
|
|
<td>deleIndex</td> |
|
|
|
<td>需要恢复的sheet索引</td> |
|
|
|
</tr> |
|
|
|
|
|
|
|
</table> |
|
|
|
|
|
|
|
- **后台更新**: |
|
|
|
|
|
|
|
恢复索引为`reIndex`对应值的sheet。 |
|
|
|
|
|
|
|
### 调整sheet位置 |
|
|
|
|
|
|
|
- **格式**: |
|
|
|
|
|
|
|
```json |
|
|
|
{ |
|
|
|
"t": "shr", |
|
|
|
"i": null, |
|
|
|
"v": { |
|
|
|
"index": "positon" |
|
|
|
"0": 1, |
|
|
|
"1": 0, |
|
|
|
"2": 2, |
|
|
|
"3": 3, |
|
|
|
"4": 4, |
|
|
|
"5": 5, |
|
|
|
"6": 6, |
|
|
|
"7": 7, |
|
|
|
"Sheet_6az6nei65t1i_1596209937084": 8 |
|
|
|
} |
|
|
|
} |
|
|
|
``` |
|
|
@ -580,17 +981,15 @@ |
|
|
|
`luckysheetfile[key2].order = value2` |
|
|
|
`luckysheetfile[key3].order = value3` |
|
|
|
|
|
|
|
## sheet属性(隐藏或显示) |
|
|
|
### 切换到指定sheet |
|
|
|
|
|
|
|
- **格式**: |
|
|
|
|
|
|
|
```json |
|
|
|
{ |
|
|
|
"t": "sh", |
|
|
|
"i": 0, |
|
|
|
"v": 1, |
|
|
|
"op": " hide", |
|
|
|
"cur": 2 |
|
|
|
"t": "shs", |
|
|
|
"i": null, |
|
|
|
"v": 1 |
|
|
|
} |
|
|
|
``` |
|
|
|
|
|
|
@ -599,27 +998,27 @@ |
|
|
|
|参数|说明| |
|
|
|
| ------------ | ------------ | |
|
|
|
|t|操作类型表示符号| |
|
|
|
|i|当前sheet的index值| |
|
|
|
|op|操作选项,有hide、show| |
|
|
|
|v|如果`hide`为`1`则隐藏,为`0`或者空则为显示| |
|
|
|
|cur|隐藏后设置索引对应`cur`的sheet为激活状态| |
|
|
|
|v|要切换到的sheet页索引| |
|
|
|
|
|
|
|
- **后台更新**: |
|
|
|
|
|
|
|
更新`i`对应sheet的根路径`hide`字段为`v`,当隐藏时`status`值为`0`,当显示时为`1`,如果为隐藏则更新`index`对应`cur`的sheet的`status`状态为`1`。 |
|
|
|
对sheet的`index`等于`v`的页,设置其`status`属性为`1`值。示例: |
|
|
|
|
|
|
|
## 表格信息更改 |
|
|
|
`luckysheetfile[v].status = 1` |
|
|
|
|
|
|
|
### 表格名称 |
|
|
|
## sheet属性(隐藏或显示) |
|
|
|
|
|
|
|
- **格式**: |
|
|
|
|
|
|
|
```json |
|
|
|
{ |
|
|
|
"t": "na", |
|
|
|
"i": null, |
|
|
|
"v": "数据" |
|
|
|
"t": "sh", |
|
|
|
"i": 0, |
|
|
|
"v": 1, |
|
|
|
"op": "hide", |
|
|
|
"cur": 1 |
|
|
|
} |
|
|
|
|
|
|
|
``` |
|
|
|
|
|
|
|
- **说明**: |
|
|
@ -627,32 +1026,57 @@ |
|
|
|
|参数|说明| |
|
|
|
| ------------ | ------------ | |
|
|
|
|t|操作类型表示符号| |
|
|
|
|v|表格的名称| |
|
|
|
|i|当前sheet的index值| |
|
|
|
|op|操作选项,有hide、show| |
|
|
|
|v|如果`hide`为`1`则隐藏,为`0`或者空则为显示| |
|
|
|
|cur|隐藏后设置索引对应`cur`的sheet为激活状态| |
|
|
|
|
|
|
|
- **后台更新**: |
|
|
|
|
|
|
|
根据gridkey更新数据库中的表格名称。 |
|
|
|
更新`i`对应sheet的根路径`hide`字段为`v` |
|
|
|
|
|
|
|
当隐藏时`status`值为`0`,更新`index`对应`cur`的sheet的`status`状态为`1` |
|
|
|
|
|
|
|
`luckysheetfile[0].hide = 1` |
|
|
|
`luckysheetfile[0].status = 0` |
|
|
|
`luckysheetfile[1].status = 1` |
|
|
|
|
|
|
|
### 缩略图 |
|
|
|
显示某个sheet页时,json为 |
|
|
|
```json |
|
|
|
{ |
|
|
|
"t": "sh", |
|
|
|
"i": 6, |
|
|
|
"v": 0, |
|
|
|
"op": "show" |
|
|
|
} |
|
|
|
``` |
|
|
|
`status`值为`1`,上一个激活sheet的`status`状态为`0` |
|
|
|
|
|
|
|
`luckysheetfile[6].hide = 0` |
|
|
|
`luckysheetfile[6].status = 1` |
|
|
|
`luckysheetfile[old_cur].status = 0` |
|
|
|
|
|
|
|
## 表格信息更改 |
|
|
|
|
|
|
|
### 修改工作簿名称 |
|
|
|
|
|
|
|
- **格式**: |
|
|
|
|
|
|
|
```json |
|
|
|
{ |
|
|
|
"t": "thumb", |
|
|
|
"img": "base64", |
|
|
|
"curindex": "curindx" |
|
|
|
} |
|
|
|
``` |
|
|
|
```json |
|
|
|
{ |
|
|
|
"t": "na", |
|
|
|
"i": null, |
|
|
|
"v": "Luckysheet Demo1" |
|
|
|
} |
|
|
|
``` |
|
|
|
|
|
|
|
- **说明**: |
|
|
|
|
|
|
|
|参数|说明| |
|
|
|
| ------------ | ------------ | |
|
|
|
|t|操作类型表示符号| |
|
|
|
|img|当前表格的缩略图,为base64字符串| |
|
|
|
|curindex|当前表格默认打开的sheet| |
|
|
|
|v|工作簿名称| |
|
|
|
|
|
|
|
- **后台更新**: |
|
|
|
|
|
|
|
根据gridkey更新mysql中表格的缩略图字段为img值,同时更新index为curindex值的sheet的status字段为1,设置其他sheet的status值为0。 |
|
|
|
Luckysheet配置,修改title为`"Luckysheet Demo1"` |