You can store XML data in a Microsoft Office Excel workbook or Microsoft Office Word document by creating a custom XML part in a document-level customization. For more information, see Custom XML Parts Overview.
Applies to: The information in this topic applies to document-level projects for the following applications: Excel 2013 and Excel 2010; Word 2013 and Word 2010. For more information, see Features Available by Office Application and Project Type.
Note
Visual Studio does not provide document-level projects for Microsoft Office PowerPoint. For information about adding a custom XML part to a PowerPoint presentation by using an application-level add-in, see How to: Add Custom XML Parts to Documents by Using Application-Level Add-Ins.
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. - Private Sub AddCustomXmlPartToWorkbook() 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 = Me.CustomXMLParts.Add(xmlString) End Sub- private void AddCustomXmlPartToWorkbook() { 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 = this.CustomXMLParts.Add(xmlString, missing); }
- Add the AddCustomXmlPartToWorkbook method to the ThisWorkbook class in a document-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 the workbook, call the method from the ThisWorkbook_Startup event handler. 
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. - Private Sub AddCustomXmlPartToDocument() 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 = _ Me.CustomXMLParts.Add(xmlString) End Sub- private void AddCustomXmlPartToDocument() { 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 = this.CustomXMLParts.Add(xmlString, missing); }
- Add the AddCustomXmlPartToDocument method to the ThisDocument class in a document-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 the document, call the method from the ThisDocument_Startup event handler. 
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 Documents by Using Application-Level Add-Ins