[]
GcExcel 允许您在工作表中对形状进行组合或取消组合。当需要对多个形状执行特定操作时,可以将它们组合在一起。例如:为形状添加相似样式、对齐、旋转、复制或粘贴组合后的形状等。这不仅能节省大量时间和精力,还有助于确保所有形状保持所需的一致性。
可以使用 IShapeRange 接口的 Group 方法将多个形状组合在一起。IShapeRange 接口表示需要组合在一起的形状范围。组合后的形状会作为一个单独的形状发挥作用。
参考以下示例代码来组合形状:
// 初始化工作簿
Workbook workbook = new Workbook();
// 获取默认工作表
IWorksheet worksheet = workbook.getWorksheets().get(0);
// 为活动工作表创建形状集合
IShapes shapes = worksheet.getShapes();
// 向形状集合添加形状
IShape ShapeBegin = shapes.addShape(AutoShapeType.Wave, 10, 10, 100, 100);
IShape EndBegin = shapes.addShape(AutoShapeType.RoundedRectangle, 200, 200, 100, 100);
// 向形状集合添加连接器形状
IShape ConnectorShape = shapes.addConnector(ConnectorType.Straight, 10, 10, 101, 101);
// 通过连接器形状连接 ShapeBegin 和 EndBegin 形状
ConnectorShape.getConnectorFormat().beginConnect(ShapeBegin, 3);
ConnectorShape.getConnectorFormat().endConnect(EndBegin, 0);
// 向形状集合添加等腰三角形形状
shapes.addShape(AutoShapeType.IsoscelesTriangle, 370.8, 50.8, 81.6, 102.0);
// 创建 shpRange 集合,用于将数组中指定的某些形状组合起来
IShapeRange shpRange = shapes
.getRange(new String[] { shapes.get(0).getName(), shapes.get(1).getName(), shapes.get(2).getName() });
// 组合形状
IShape grouped = shpRange.group();
// 为组合后的形状统一设置样式
grouped.getLine().getColor().setRGB(Color.GetDarkOrange());
grouped.getFill().getColor().setRGB(Color.GetLightGreen());
System.out.println("组合名称为:" + grouped.getName());
// 将工作簿保存为 Xlsx 格式
workbook.save("9-GroupedShapes.xlsx", SaveFileFormat.Xlsx);
可以使用 IShape 接口的 Ungroup 方法对指定范围内的一组形状进行取消组合操作。
参考以下示例代码来取消组合形状:
// 初始化工作簿
Workbook workbook = new Workbook();
// 打开工作簿
workbook.open("9-GroupedShapes.xlsx");
IShapes shapes = workbook.getWorksheets().get(0).getShapes();
// 取消组合形状
for (int i = 0; i < shapes.getCount(); i++) {
if (shapes.get(i).getType() == ShapeType.Group) // 或者,if (shapes[i].Name == "Group 1")
shapes.get(i).ungroup();
}
// 或者,我们可以直接通过组合名称来取消组合
// shapes["Group 1"].Ungroup();
// 将工作簿保存为 Xlsx 格式
workbook.save("10-UnGroupedShapes.xlsx", SaveFileFormat.Xlsx);