Export (0) Print
Expand All
Expand Minimize

How to: Search and Replace Content in a Document Part from an Office Open XML Package by Using the Open XML API

This content is outdated and is no longer being maintained. It is provided as a courtesy for individuals who are still using these technologies. This page may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist.

The Office Open XML Package specification defines a set of XML files that contain the content and define the relationships for all of the document parts stored in a single package. These packages combine the parts that comprise the document files for Microsoft® Office Excel® 2007, Microsoft Office PowerPoint® 2007, and Microsoft Office Word 2007. The Open XML Application Programming Interface (API) allows you to create packages and manipulate the files that comprise the packages. This topic walks through the code and steps to replace the contents of a document part (file) in an Office Open XML package with other content in Office Word 2007, although the steps are the same for each of the three 2007Microsoft Office system programs that support the Office Open XML Format.


The code samples in this topic are in Microsoft Visual Basic .NET and Microsoft Visual C#. You can use them in an add-in created in Microsoft Visual Studio 2008. For more information about how to create an add-in in Visual Studio 2008see Getting Started with the Open XML Format SDK 1.0.

In the following code, you search and replace a text value stored in the content of a MainDocumentPart part in a WordprocessingDocument package using regular expressions.

// How to search and replace content in a document part.
public static void SearchAndReplace(string document)
    using (WordprocessingDocument wordDoc = WordprocessingDocument.Open(document, true))
        string docText = null;
        using (StreamReader sr = new StreamReader(wordDoc.MainDocumentPart.GetStream()))
            docText = sr.ReadToEnd();

        Regex regexText = new Regex("Hello world!");
        docText = regexText.Replace(docText, "Hi Everyone!");

        using (StreamWriter sw = new StreamWriter(wordDoc.MainDocumentPart.GetStream(FileMode.Create)))

To search and replace a text value stored in the content of a MainDocumentPart part by using regular expressions

  1. First, pass in parameters representing the path to and name of the source Word 2007 document and the name and path of a document part containing theme content.

  2. Then, open the document as a WordprocessingDocument object.

  3. Next, define regular expressions to search and replace text stored in the MainDocumentPart part of the WordProcessingDocument package.

  4. Finally, read the content of the original document file and write it to the new part by using a StreamReader object and a StreamWriter object, respectively.

© 2014 Microsoft