Skip to main content

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.Rotation = 30;


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;