找回密码
 立即注册

QQ登录

只需一步,快速开始

Winny

超级版主

130

主题

246

帖子

1530

积分

超级版主

Rank: 8Rank: 8

积分
1530
Winny
超级版主   /  发表于:2023-9-5 16:42  /   查看:788  /  回复:0
需求背景:

同一张工作表中有多个形状,需要删除其中的照相机类型的形状。
实现方式:
SpreadJS中,形状Shape分了六类(V16),具体如下所示。其中前五类继承了ShapeBase类型
image.png451010436.png
而形状删除的API作用在ShapeCollection上,它会返回当前工作表中的所有形状。而这是如果想要只删除CameraShape就需要做额外的判断。具体实现方式如下:
1. 获取当前工作表中的所有形状
  1. sheet.shapes.all()
复制代码
该方法会返回一个数组,代表sheet中的所有形状对象。
2. 遍历判断形状是否为目标形状类型cameraShape
  1. sheet.shapes.all()[0] instanceof GC.Spread.Sheets.Shapes.CameraShape
复制代码

若上述代码返回为true,则表示当前shape是cameraShape
3. 删除命中shape
shapeCollection上提供remove方法,可以根据shape.name()获取形状的名称,之后调用remove方法即可。
  1. sheet.shapes.all().remove(name)
  2. sheet.shapes.remove(name)
复制代码


0 个回复

您需要登录后才可以回帖 登录 | 立即注册
返回顶部