Winny 发表于 2023-9-5 16:42:28

删除特定的形状类型

需求背景:

同一张工作表中有多个形状,需要删除其中的照相机类型的形状。
实现方式:
SpreadJS中,形状Shape分了六类(V16),具体如下所示。其中前五类继承了ShapeBase类型

而形状删除的API作用在ShapeCollection上,它会返回当前工作表中的所有形状。而这是如果想要只删除CameraShape就需要做额外的判断。具体实现方式如下:
1. 获取当前工作表中的所有形状
sheet.shapes.all()该方法会返回一个数组,代表sheet中的所有形状对象。
2. 遍历判断形状是否为目标形状类型cameraShape
sheet.shapes.all() instanceof GC.Spread.Sheets.Shapes.CameraShape
若上述代码返回为true,则表示当前shape是cameraShape
3. 删除命中shape
shapeCollection上提供remove方法,可以根据shape.name()获取形状的名称,之后调用remove方法即可。
sheet.shapes.all().remove(name)
sheet.shapes.remove(name)

页: [1]
查看完整版本: 删除特定的形状类型