WorkbookBase.XmlImportXml-Methode

Importiert einen zuvor in den Arbeitsspeicher geladenen XML-Datenstream.

Namespace:  Microsoft.Office.Tools.Excel
Assembly:  Microsoft.Office.Tools.Excel.v4.0.Utilities (in Microsoft.Office.Tools.Excel.v4.0.Utilities.dll)

Syntax

'Declaration
Public Function XmlImportXml ( _
    data As String, _
    <OutAttribute> ByRef importMap As XmlMap, _
    overwrite As Object, _
    destination As Object _
) As XlXmlImportResult
public XlXmlImportResult XmlImportXml(
    string data,
    out XmlMap importMap,
    Object overwrite,
    Object destination
)

Parameter

  • overwrite
    Typ: System.Object
    Wenn für den Destination-Parameter kein Wert angegeben ist, gibt dieser Parameter an, ob Daten, die der mit dem ImportMap-Parameter angegebenen Schemazuordnung zugeordnet sind, überschrieben werden sollen.true, wenn die Daten überschrieben werden sollen, bzw. false, um die neuen Daten an die vorhandenen Daten anzuhängen.Der Standardwert ist true.Wenn für den Destination-Parameter ein Wert angegeben ist, gibt dieser Parameter an, ob vorhandene Daten überschrieben werden sollen.true, wenn vorhandene Daten überschrieben werden sollen, bzw. false, um den Importvorgang abzubrechen, wenn durch diesen Daten überschrieben würden.Der Standardwert ist true.
  • destination
    Typ: System.Object
    Die Daten werden in den angegebenen Range einer neue XML-Liste importiert.

Rückgabewert

Typ: Microsoft.Office.Interop.Excel.XlXmlImportResult
Einer der XlXmlImportResult-Werte.

Hinweise

Um Daten in eine vorhandene Zuordnung zu importieren, geben Sie keinen Wert für den Destination-Parameter an.

Unter den folgenden Bedingungen generiert diese Methode Laufzeitfehler:

  • Die angegebenen XML-Daten enthalten Syntaxfehler.

  • Der Importprozess wurde abgebrochen, da die angegebenen Daten nicht in das Arbeitsblatt passen.

Importieren Sie mithilfe der XmlImport-Methode eine XML-Datendatei in die aktuelle Arbeitsmappe.

Optionale Parameter

Informationen zu optionalen Parametern finden Sie unter Optionale Parameter in Office-Lösungen.

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, wie XML-Daten in eine Arbeitsmappe importiert werden. Im Beispiel wird ein DataSet mit Kundennamen erstellt, und dann wird der XmlMaps-Auflistung der aktuellen Arbeitsmappe auf der Grundlage des XML-Schemas für das DataSet eine XmlMap hinzugefügt. Anschließend wird die XmlImportXml-Methode aufgerufen, um die Daten in das Sheet1-Arbeitsblatt zu importieren. Wenn die XmlImportXml-Methode aufgerufen wird, fordert der BeforeXmlImport-Ereignishandler den Benutzer auf, den Import der XML-Daten entweder fortzusetzen oder abzubrechen, und dann meldet der AfterXmlImport-Ereignishandler, ob die XML-Daten erfolgreich importiert wurden.

Dieses Beispiel bezieht sich auf eine Anpassung auf Dokumentebene.

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
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", missing];
        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.");
    }
}

.NET Framework-Sicherheit

Siehe auch

Referenz

WorkbookBase Klasse

Microsoft.Office.Tools.Excel-Namespace