XmlImport Method
Collapse the table of content
Expand the table of content
This documentation is archived and is not being maintained.

Workbook.XmlImport Method

Imports an XML data file into the current workbook.

Namespace: Microsoft.Office.Tools.Excel
Assembly: Microsoft.Office.Tools.Excel (in microsoft.office.tools.excel.dll)

public virtual XlXmlImportResult XmlImport (
	string Url,
	out XmlMap ImportMap,
	[OptionalAttribute] Object Overwrite,
	[OptionalAttribute] Object Destination



A uniform resource locator (URL) or a uniform naming convention (UNC) path to an XML data file.


The schema map to apply when importing the file.


If a value is not specified for the Destination parameter, then this parameter specifies whether or not to overwrite data that has been mapped to the schema map specified in the ImportMap parameter. Set to true to overwrite the data or false to append the new data to the existing data. The default value is true. If a value is specified for the Destination parameter, then this parameter specifies whether or not to overwrite existing data. Set to true to overwrite existing data or false to cancel the import if data would be overwritten. The default value is true.


The data will be imported into a new XML list at the Range specified.

Return Value

One of the XlXmlImportResult values.

XML features, except for saving files in the XML Spreadsheet format, are available only in Microsoft Office Professional Edition 2003 and Microsoft Office Excel 2003.

Do not specify a value for the Destination parameter if you want to import data into an existing mapping.

The following conditions will cause this method to generate run-time errors:

  • The specified XML data contains syntax errors.

  • The import process was cancelled because the specified data cannot fit into the worksheet.

Use the XmlImportXml method to import XML data that has been previously loaded into memory.

Usage Requirements

XmlImport does not work when the ExcelLocale1033Attribute attribute in your project is set to true (the default). If the ExcelLocale1033Attribute attribute is true, you must perform the following steps:

  • You must call the XmlImport method of the underlying Microsoft.Office.Interop.Excel.Workbook, instead of the Microsoft.Office.Tools.Excel.Workbook host item.

  • You must use the Unwrap method on all of the following objects before calling XmlImport:

    • The underlying Microsoft.Office.Interop.Excel.Workbook.

    • The XmlMap that is passed into the ImportMap parameter.

    • The Range that is passed into the Destination parameter.

    Unwrap modifies these objects so that they pass the locale ID of the current thread to the Excel object model, instead of passing locale ID 1033.

The code example in this topic shows how to use XmlImport when the ExcelLocale1033Attribute attribute is true. For more information about ExcelLocale1033Attribute and the Unwrap method, see Formatting Data in Excel with Various Regional Settings.

Optional Parameters

For information on optional parameters, see Understanding Optional Parameters in COM Interop.

The following code example creates an XmlMap based on a schema generated from a DataSet, writes the DataSet to an XML file, and then uses the XmlImport method to write the data in the XML file to a range in worksheet Sheet1.


This example assumes that the ExcelLocale1033Attribute attribute is true (the default). If the ExcelLocale1033Attribute attribute is false, you can call the XmlImport method of the Microsoft.Office.Tools.Excel.Workbook host item, and you do not need to use the Unwrap method. For more information, see the Remarks section in this topic.

private void WorkbookXmlImport()
    // Create a new DataTable.
    DataSet ds = new DataSet();
    DataTable dt = ds.Tables.Add("Customers");
    dt.Columns.Add(new DataColumn("LastName"));
    dt.Columns.Add(new DataColumn("FirstName"));

    // Add a new row to the DataTable.
    DataRow dr = dt.NewRow();
    dr["LastName"] = "Chan";
    dr["FirstName"] = "Gareth";

    // Add a new XML map and write the XML to a file.
    Excel.XmlMap xmlMap1 = this.XmlMaps.Add(ds.GetXmlSchema(),

    // Get objects that can be used while the ExcelLocale1033 
    // attribute is true (the default).
    Excel.Workbook workbook1 = (Excel.Workbook)Microsoft.Office.Tools.
    Excel.Range range1 = Globals.Sheet1.Range["A1", missing];
    range1 = (Excel.Range)Microsoft.Office.Tools.Excel.
    xmlMap1 = (Excel.XmlMap)Microsoft.Office.Tools.Excel.

    // Import the XML from the file.
    workbook1.XmlImport(@"C:\Customers.xml", out xmlMap1, true, range1);

© 2016 Microsoft