Winny 发表于 2021-6-28 18:29:20

SpreadJS清除表单所有内容

本帖最后由 Joestar.Xu 于 2024-9-4 16:01 编辑

在实际项目中,用户会有需要清除表单或者整个工作簿内容的需求,本文介绍清除表单或工作簿内容的方法及注意事项。
1. 清除表单中的所有数据
清除表单数据的API为:
sheet.clear(row,column,rowCount,columnCount,area,storageType)该API中各参数的含义为:
row: 起始行索引;
column: 起始列索引;
rowCount: 待清除行数;
columnCount: 待清除列数;
area: 待清除区域;
storageTpye: 待清除数据类型。用户在清除当前表单中的内容时,一般调用的方法为:
sheet.clear(0,0,sheet.getRowCount(),sheet.getColumnCount(),GC.Spread.Sheets.SheetArea.viewport,GC.Spread.Sheets.StorageType.data)当表单内容为纯数据时,此时可以顺利的将表单中的所有内容删除,而当表单中包含单选框、复选框这些单元格时,会有用户发现,无法一次清除所有内容,这是什么原因呢?
我们来看看clear()方法的第六个参数storageType,代表的是需要清除内容的类型,查阅API可知,该参数的可选值如下:

由此可知,一个表单中待清除的数据类型可能不止有数据,还有很多样式、批注、标签等信息,这些内容如果不清除的话都会影响后续的使用。
而storageType参数是支持用或关系组合传递的,举例要清除表单中的数据及样式时,可以使用如下方法:
sheet.clear(0,0,sheet.getRowCount(),sheet.getColumnCount(),GC.Spread.Sheets.SheetArea.viewport,GC.Spread.Sheets.StorageType.data | GC.Spread.Sheets.StorageType.style)
当然,也可以将所有类型进行组合传递。

2. 清除工作簿内容
清除工作簿内容时可以采用遍历工作簿中的表单,之后一次清除表单内容的方法。
初次之外,也可以使用如下方法:
spread.clearSheets()但是有很多用户在清除所有sheet后会特别茫然,因为spread中没有一张工作表了,这个时候可以调用:
spread.addSheet(0,new GC.Spread.Sheets.Worksheet('custom'))执行完成后,spread中就已经有工作表,可以进行正常的后续操作了。

Joestar.Xu 发表于 2024-9-9 14:16:39

在目前的最新版本中,也可以使用reset接口来重置表单内容:https://demo.grapecity.com.cn/spreadjs/help/api/classes/GC.Spread.Sheets.Worksheet#reset

silver 发表于 2024-9-4 15:54:08

clear清空的第6个参数或的形式清空多种数据没有效果,比如GC.Spread.Sheets.StorageType.data || GC.Spread.Sheets.StorageType.style只清空了数据,样式并没有清空

Joestar.Xu 发表于 2024-9-4 16:01:25

您好,文章中的代码有误,您试试:GC.Spread.Sheets.StorageType.data | GC.Spread.Sheets.StorageType.style
页: [1]
查看完整版本: SpreadJS清除表单所有内容