Compartir a través de


WorkbookBase.XmlImportXml(String, XmlMap, Object, Object) Método

Definición

Importa un flujo de datos XML previamente cargado en la memoria.

public Microsoft.Office.Interop.Excel.XlXmlImportResult XmlImportXml (string data, out Microsoft.Office.Interop.Excel.XmlMap importMap, object overwrite, object destination);
member this.XmlImportXml : string * XmlMap * obj * obj -> Microsoft.Office.Interop.Excel.XlXmlImportResult
Public Function XmlImportXml (data As String, ByRef importMap As XmlMap, Optional overwrite As Object, Optional destination As Object) As XlXmlImportResult

Parámetros

data
String

Los datos que se van a importar.

importMap
XmlMap

El mapa de esquema que se va a aplicar cuando se importe el archivo.

overwrite
Object

Si no se especifica un valor para el Destination parámetro , este parámetro especifica si se van a sobrescribir o no los datos asignados al mapa de esquema especificado en el ImportMap parámetro . Establezca este parámetro en true para sobrescribir los datos o en false para anexar los nuevos datos a los datos existentes. El valor predeterminado es true. Si se especifica un valor para el Destination parámetro , este parámetro especifica si se sobrescriben o no los datos existentes. Establezca el parámetro en true para sobrescribir datos existentes o en false para cancelar la importación si supone que se sobrescribirían datos. El valor predeterminado es true.

destination
Object

Los datos se importarán en una nueva lista XML en el objeto Range especificado.

Devoluciones

Uno de los valores de XlXmlImportResult.

Ejemplos

En el ejemplo de código siguiente se muestra cómo importar datos XML en un libro. En el ejemplo se crea un DataSet objeto de nombres de cliente y se agrega un XmlMap objeto basado en el esquema XML de DataSet a la XmlMaps colección del libro actual. A continuación, el ejemplo llama al XmlImportXml método para importar los datos en la hoja de cálculo Sheet1. Cuando se llama al XmlImportXml método , el BeforeXmlImport controlador de eventos solicita al usuario que continúe con o cancele la importación del XML, y el AfterXmlImport controlador de eventos notifica si el XML se importó correctamente.

Este ejemplo es para una personalización de nivel de documento.

private void WorkbookXmlImportEvents()
{
    this.BeforeXmlImport +=
        new Excel.WorkbookEvents_BeforeXmlImportEventHandler(
        ThisWorkbook_BeforeXmlImport);

    this.AfterXmlImport += new
        Excel.WorkbookEvents_AfterXmlImportEventHandler(
        ThisWorkbook_AfterXmlImport);

    // 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";
    dt.Rows.Add(dr);

    // Add a new XML map to the collection.
    Excel.XmlMap xmlMap1 = this.XmlMaps.Add(ds.GetXmlSchema(),
        "NewDataSet");

    // Import the data stream if the XmlMap was successfully created.
    if (xmlMap1 != null)
    {
        // This will raise the BeforeXmlImport and AfterXmlImport events.
        Excel.Range range1 = Globals.Sheet1.Range["A1"];
        this.XmlImportXml(ds.GetXml(), out xmlMap1, true,
            range1);
    }
    else
    {
        MessageBox.Show("The XmlMap could not be created");
    }
}

void ThisWorkbook_BeforeXmlImport(Excel.XmlMap Map,
    string Url, bool IsRefresh, ref bool Cancel)
{
    if (DialogResult.No == MessageBox.Show("Microsoft Excel is about" +
        " to import XML into the workbook. Continue with importing?",
        "Custom XML Import Dialog", MessageBoxButtons.YesNo))
    {
        Cancel = true;
    }
}

void ThisWorkbook_AfterXmlImport(Excel.XmlMap Map, bool IsRefresh,
    Excel.XlXmlImportResult Result)
{
    if (Result == Excel.XlXmlImportResult.xlXmlImportSuccess)
    {
        MessageBox.Show("XML import succeeded.");
    }
    else
    {
        MessageBox.Show("XML import failed.");
    }
}
Private Sub WorkbookXmlImportEvents()

    ' Create a new DataTable.
    Dim ds As New DataSet()
    Dim dt As DataTable = ds.Tables.Add("Customers")
    dt.Columns.Add(New DataColumn("LastName"))
    dt.Columns.Add(New DataColumn("FirstName"))

    ' Add a new row to the DataTable.
    Dim dr As DataRow = dt.NewRow()
    dr("LastName") = "Chan"
    dr("FirstName") = "Gareth"
    dt.Rows.Add(dr)

    ' Add a new XML map to the collection.
    Dim xmlMap1 As Excel.XmlMap = Me.XmlMaps.Add(ds.GetXmlSchema(), _
        "NewDataSet")

    ' Import the data stream if the XmlMap was successfully created.
    If Not (xmlMap1 Is Nothing) Then

        ' This will raise the BeforeXmlImport and AfterXmlImport events.
        Dim range1 As Excel.Range = Globals.Sheet1.Range("A1")
        Me.XmlImportXml(ds.GetXml(), xmlMap1, True, _
            range1)
    Else
        MsgBox("The XmlMap could not be created")
    End If
End Sub

Sub ThisWorkbook_BeforeXmlImport(ByVal Map As Excel.XmlMap, _
    ByVal Url As String, ByVal IsRefresh As Boolean, _
    ByRef Cancel As Boolean) Handles Me.BeforeXmlImport

    If DialogResult.No = MessageBox.Show("Microsoft Excel is about" & _
        " to import XML into the workbook. Continue with importing?", _
        "Custom XML Import Dialog", MessageBoxButtons.YesNo) Then
        Cancel = True
    End If
End Sub

Sub ThisWorkbook_AfterXmlImport(ByVal Map As Excel.XmlMap, _
    ByVal IsRefresh As Boolean, ByVal Result As Excel.XlXmlImportResult) _
    Handles Me.AfterXmlImport

    If Result = Excel.XlXmlImportResult.xlXmlImportSuccess Then
        MsgBox("XML import succeeded.")
    Else
        MsgBox("XML import failed.")
    End If
End Sub

Comentarios

No especifique un valor para el Destination parámetro si desea importar datos en una asignación existente.

Las condiciones siguientes harán que este método genere errores en tiempo de ejecución:

  • Los datos XML especificados contienen errores de sintaxis.

  • El proceso de importación se canceló porque los datos especificados no caben en la hoja de cálculo.

Use el XmlImport método para importar un archivo de datos XML en el libro actual.

Parámetros opcionales

Para obtener información sobre los parámetros opcionales, vea Parámetros opcionales en soluciones de Office.

Se aplica a