We're sorry Aspose doesn't work properply without JavaScript enabled.

Free Support Forum - aspose.com

Using Word template based on Content Controls

Good afternoon,

My company uses your product for specific document creation. One of our main need is to copy a document from a word template (in docx format) where we have inserted many content controls then fill out this copy with data from our database.
I can’t find any appropriate way to search a specific content control into my template and replace the content by the data I want. Is there any method(s) to get a specific content control of my document? If not, how do I have to build my template to use Aspose correctly?

Best Regards,


Hi Quentin,

Thanks for your inquiry.

The StructuredDocumentTag class represents a structured document tag (SDT or content control) in a document. The StructuredDocumentTag.Tag
property specifies a tag associated with the current SDT node. A tag is
an arbitrary string which applications can associate with SDT in order
to identify it without providing a visible friendly name.

You can add/modify contents of content controls (StructuredDocumentTag) by using Aspose.Words. Here is the code to insert plain text and select the Drop Down List item from the content control:

Document doc = new Document(@“c:\test\SDTs.docx”);

foreach (StructuredDocumentTag sdt in doc.GetChildNodes(NodeType.StructuredDocumentTag, true, true))


if (sdt.SdtType == SdtType.PlainText)



Paragraph para = sdt.AppendChild(new Paragraph(doc)) as Paragraph;

Run run = new Run(doc, “new text goes here”);



else if (sdt.SdtType == SdtType.DropDownList)


SdtListItem secondItem = sdt.ListItems[2];

sdt.ListItems.SelectedValue = secondItem;