How to: Add Custom XML Parts to Documents by Using Application-Level Add-Ins
You can store XML data in the following types of documents by creating a custom XML part in an application-level add-in:
A Microsoft Office Excel workbook.
A Microsoft Office Word document.
A Microsoft Office PowerPoint presentation.
For more information, see Custom XML Parts Overview.
Applies to: The information in this topic applies to application-level projects for the following applications: Excel 2007 and Excel 2010; PowerPoint 2007 and PowerPoint 2010; Word 2007 and Word 2010. For more information, see Features Available by Office Application and Project Type.
To add a custom XML part to an Excel workbook
Add a new CustomXMLPart object to the CustomXMLParts collection in the workbook. The CustomXMLPart contains the XML string that you want to store in the workbook.
The following code example adds a custom XML part to a specified workbook.
Private Sub AddCustomXmlPartToWorkbook(ByVal workbook As Excel.Workbook) Dim xmlString As String = _ "<?xml version=""1.0"" encoding=""utf-8"" ?>" & _ "<employees https://schemas.microsoft.com/vsto/samples"">" & _ "<employee>" & _ "<name>Karina Leal</name>" & _ "<hireDate>1999-04-01</hireDate>" & _ "<title>Manager</title>" & _ "</employee>" & _ "</employees>" Dim employeeXMLPart As Office.CustomXMLPart = _ workbook.CustomXMLParts.Add(xmlString) End Sub
private void AddCustomXmlPartToWorkbook(Excel.Workbook workbook) { string xmlString = "<?xml version=\"1.0\" encoding=\"utf-8\" ?>" + "<employees xmlns=\"https://schemas.microsoft.com/vsto/samples\">" + "<employee>" + "<name>Karina Leal</name>" + "<hireDate>1999-04-01</hireDate>" + "<title>Manager</title>" + "</employee>" + "</employees>"; Office.CustomXMLPart employeeXMLPart = workbook.CustomXMLParts.Add(xmlString, missing); }
Add the AddCustomXmlPartToWorkbook method to the ThisAddIn class in an application-level project for Excel.
Call the method from other code in your project. For example, to create the custom XML part when the user opens a workbook, call the method from an event handler for the WorkbookOpen event.
To add a custom XML part to a Word document
Add a new CustomXMLPart object to the CustomXMLParts collection in the document. The CustomXMLPart contains the XML string that you want to store in the document.
The following code example adds a custom XML part to a specified document.
Private Sub AddCustomXmlPartToActiveDocument(ByVal document As Word.Document) Dim xmlString As String = _ "<?xml version=""1.0"" encoding=""utf-8"" ?>" & _ "<employees https://schemas.microsoft.com/vsto/samples"">" & _ "<employee>" & _ "<name>Karina Leal</name>" & _ "<hireDate>1999-04-01</hireDate>" & _ "<title>Manager</title>" & _ "</employee>" & _ "</employees>" Dim employeeXMLPart As Office.CustomXMLPart = _ document.CustomXMLParts.Add(xmlString) End Sub
private void AddCustomXmlPartToActiveDocument(Word.Document document) { string xmlString = "<?xml version=\"1.0\" encoding=\"utf-8\" ?>" + "<employees xmlns=\"https://schemas.microsoft.com/vsto/samples\">" + "<employee>" + "<name>Karina Leal</name>" + "<hireDate>1999-04-01</hireDate>" + "<title>Manager</title>" + "</employee>" + "</employees>"; Office.CustomXMLPart employeeXMLPart = document.CustomXMLParts.Add(xmlString, missing); }
Add the AddCustomXmlPartToDocument method to the ThisAddIn class in an application-level project for Word.
Call the method from other code in your project. For example, to create the custom XML part when the user opens a document, call the method from an event handler for the DocumentOpen event.
To add a custom XML part to a PowerPoint presentation
Add a new CustomXMLPart object to the CustomXMLParts collection in the presentation. The CustomXMLPart contains the XML string that you want to store in the presentation.
The following code example adds a custom XML part to a specified presentation.
Private Sub AddCustomXmlPartToPresentation(ByVal presentation As PowerPoint.Presentation) Dim xmlString As String = _ "<?xml version=""1.0"" encoding=""utf-8"" ?>" & _ "<employees https://schemas.microsoft.com/vsto/samples"">" & _ "<employee>" & _ "<name>Karina Leal</name>" & _ "<hireDate>1999-04-01</hireDate>" & _ "<title>Manager</title>" & _ "</employee>" & _ "</employees>" Dim employeeXMLPart As Office.CustomXMLPart = _ presentation.CustomXMLParts.Add(xmlString) End Sub
private void AddCustomXmlPartToPresentation(PowerPoint.Presentation presentation) { string xmlString = "<?xml version=\"1.0\" encoding=\"utf-8\" ?>" + "<employees xmlns=\"https://schemas.microsoft.com/vsto/samples\">" + "<employee>" + "<name>Karina Leal</name>" + "<hireDate>1999-04-01</hireDate>" + "<title>Manager</title>" + "</employee>" + "</employees>"; Office.CustomXMLPart employeeXMLPart = presentation.CustomXMLParts.Add(xmlString, missing); }
Add the AddCustomXmlPartToPresentation method to the ThisAddIn class in an application-level project for PowerPoint.
Call the method from other code in your project. For example, to create the custom XML part when the user opens a presentation, call the method from an event handler for the AfterPresentationOpen event.
Robust Programming
For simplicity, this example uses an XML string that is defined as a local variable in the method. Typically, you should obtain the XML from an external source, such as a file or a database.
See Also
Tasks
How to: Add Custom XML Parts to Document-Level Customizations
How to: Add Custom XML Parts to Documents Without Starting Microsoft Office