Previous topicNext topic
Help > 开发指南 > Excel > API > 示例 > Shape形状 >
如何:创建形状

本主题介绍如何创建形状并更改其形状、大小和旋转角度。

创建形状

下面的示例演示如何使用 ShapeCollection.AddShape 方法重载将形状插入到工作表中。

Vb.Net
'将测量单位设置为英寸。
workbook.Unit = DevExpress.Office.DocumentUnit.Inch

'在工作表中的指定位置插入形状。
Dim shape1 As DevExpress.Spreadsheet.Shape = worksheet.Shapes.AddShape(DevExpress.Spreadsheet.ShapeGeometryPreset.RectangularCallout, 0.68F, 0.22F, 2F, 1.25F)

'插入一个形状,使其左上角位于指定的单元格中。
Dim shape2 As DevExpress.Spreadsheet.Shape = worksheet.Shapes.AddShape(DevExpress.Spreadsheet.ShapeGeometryPreset.RoundedRectangularCallout, worksheet.Cells("F2"), 2F, 1.25F)

'插入一个适合指定单元格范围的形状。
Dim shape3 As DevExpress.Spreadsheet.Shape = worksheet.Shapes.AddShape(DevExpress.Spreadsheet.ShapeGeometryPreset.OvalCallout, worksheet("J2:L7"))

C#
// 将测量单位设置为英寸。
workbook.Unit = DevExpress.Office.DocumentUnit.Inch;

// 在工作表中的指定位置插入形状。
DevExpress.Spreadsheet.Shape shape1 = worksheet.Shapes.AddShape(DevExpress.Spreadsheet.ShapeGeometryPreset.RectangularCallout, 0.68F, 0.22F, 2F, 1.25F);

// 插入一个形状,使其左上角位于指定的单元格中。
DevExpress.Spreadsheet.Shape shape2 = worksheet.Shapes.AddShape(DevExpress.Spreadsheet.ShapeGeometryPreset.RoundedRectangularCallout, worksheet.Cells["F2"], 2F, 1.25F);

// 插入一个适合指定单元格范围的形状。
DevExpress.Spreadsheet.Shape shape3 = worksheet.Shapes.AddShape(DevExpress.Spreadsheet.ShapeGeometryPreset.OvalCallout, worksheet["J2:L7"]);

更改形状的位置

使用以下 API 定义形状在工作表中的位置:

成员 说明 描述
FloatingObject.Move 移动 按指定的偏移量移动形状。
FloatingObject.Top 返回页首 指定工作表的上边缘与形状的左上角之间的距离。
FloatingObject.Left 指定工作表左边缘与形状左上角之间的距离。
FloatingObject.TopLeftCell 左上角单元格 指定形状左上角所在的单元格。
FloatingObject.BottomRightCell 右下角单元格 指定形状右下角所在的单元格。
FloatingObject.OffsetX 偏移量X 指定形状的左上角与TopLeft单元格细胞。
FloatingObject.OffsetY 偏移量Y 指定形状的左上角与形状的上边缘之间的距离TopLeft单元格细胞。

Vb.Net

 shape2.TopLeftCell = worksheet.Cells("F4")

shape2.BottomRightCell = worksheet.Cells("H9")

C#

 shape2.TopLeftCell = worksheet.Cells["F4"];

shape2.BottomRightCell = worksheet.Cells["H9"];

调整形状大小和旋转形状

使用以下属性可旋转形状并调整其大小:

财产 说明 描述
Shape.Rotation 旋转 指定形状的旋转角度。
FloatingObject.Width 宽度 指定形状的宽度。
FloatingObject.Height 高度 指定形状的高度。

Vb.Net

 shape3.Rotation = 45

shape3.Width = 2.2F

shape3.Height = 1.5F

C#

 shape3.Rotation = 45;

shape3.Width = 2.2f;

shape3.Height = 1.5f;

更改形状的形状

使用 ShapeGeometry.Preset 属性可更改形状的几何类型。下面的示例显示了如何将矩形标注转换为云标注。

Vb.Net
 shape1.ShapeGeometry.Preset = ShapeGeometryPreset.CloudCallout

C#
 shape1.ShapeGeometry.Preset = ShapeGeometryPreset.CloudCallout;