How to: Add Text to a Shape
- 2 minutes to read
This topic describes how to add text to a shape.
Create a Text Box
Call the ShapeCollection.AddTextBox method to create a text box.
The code sample below shows how to insert, rotate and color a text box:
Shape textBox = worksheet.Shapes.AddTextBox(50, 120, 500, 100, "Spreadsheet");
textBox.Fill.SetSolidFill(Color.PowderBlue);
textBox.Rotation = 30;
Tip
You can change the text box’s geometry type by setting the ShapeGeometry.Preset property to one of the ShapeGeometryPreset values.
Add Text to an Existing Shape
The table below lists API members used to add and format shape text:
Member | Description |
---|---|
Shape.ShapeText | Returns shape text options. |
ShapeText.Characters | Returns a ShapeTextRange object that specifies a text range within a shape. |
ShapeTextRange.Text | Defines shape text. |
ShapeText.Formula | Allows you to link shape text to a cell. |
ShapeTextRange.AddBefore | Adds a new text range before the current range. |
ShapeTextRange.AddAfter | Adds a new text range after the current range. |
ShapeTextRange.Font | Allows you to change font attributes for a shape text range. |
ShapeTextRange.ParagraphFormat | Allows you to specify paragraph options for a shape text range. |
ShapeText.VerticalAnchor | Specifies the vertical alignment for shape text. |
ShapeText.HorizontalAnchor | Specifies the horizontal alignment for shape text. |
The code sample below creates and formats shape text to look as it does on the image below.
ShapeText shapeText = shape.ShapeText;
// Create a text range.
ShapeTextRange range = shapeText.Characters();
// Specify the shape's text.
range.Text = "Shape ";
// Set font properties.
range.Font.Bold = true;
range.Font.Color = Color.YellowGreen;
// Add a new text range after the existing text
// and specify its font attributes.
ShapeTextRange range2 = range.AddAfter("Text");
range2.Font.Italic = true;
range2.Font.Name = "Arial";
range2.Font.Color = Color.BurlyWood;
// Define the text's vertical and horizontal alignment.
shapeText.VerticalAnchor = ShapeTextVerticalAnchorType.Center;
shapeText.HorizontalAnchor = ShapeTextHorizontalAnchorType.Center;