Freigeben über


WorkbookBase.XmlImportXml(String, XmlMap, Object, Object) Methode

Definition

Importiert einen zuvor in den Arbeitsspeicher geladenen XML-Datenstream.

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

Parameter

data
String

Die zu importierenden Daten.

importMap
XmlMap

Die beim Importieren der Datei anzuwendende Schemazuordnung.

overwrite
Object

Wenn kein Wert für den Destination Parameter angegeben wird, gibt dieser Parameter an, ob Daten überschrieben werden sollen, die der im ImportMap Parameter angegebenen Schemazuordnung zugeordnet wurden. true, wenn die Daten überschrieben werden sollen, bzw. false, um die neuen Daten an die vorhandenen Daten anzuhängen. Der Standardwert ist true. Wenn ein Wert für den Destination Parameter angegeben wird, 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
Object

Die Daten werden in den angegebenen Range einer neue XML-Liste importiert.

Gibt zurück

Einer der XlXmlImportResult-Werte.

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, wie XML-Daten in eine Arbeitsmappe importiert werden. Im Beispiel wird ein DataSet von Kundennamen erstellt und basierend auf dem XML-Schema für die DataSetXmlMaps der Auflistung der aktuellen Arbeitsmappe hinzugefügtXmlMap. Im Beispiel wird dann die XmlImportXml -Methode aufgerufen, um die Daten in das Arbeitsblatt Sheet1zu importieren. Wenn die XmlImportXml Methode aufgerufen wird, fordert der BeforeXmlImport Ereignishandler den Benutzer auf, den Import des XML-Codes fortzusetzen oder abzubrechen, und der AfterXmlImport Ereignishandler meldet, ob der XML-Code erfolgreich importiert wurde.

Dieses Beispiel gilt für eine Anpassung auf Dokumentebene.

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

Hinweise

Geben Sie keinen Wert für den Destination Parameter an, wenn Sie Daten in eine vorhandene Zuordnung importieren möchten.

Die folgenden Bedingungen führen dazu, dass diese Methode Laufzeitfehler generiert:

  • Die angegebenen XML-Daten enthalten Syntaxfehler.

  • Der Importvorgang wurde abgebrochen, da die angegebenen Daten nicht in das Arbeitsblatt passen können.

Verwenden Sie die XmlImport -Methode, um eine XML-Datendatei in die aktuelle Arbeitsmappe zu importieren.

Optionale Parameter

Informationen zu optionalen Parametern finden Sie unter Optionale Parameter in Office-Projektmappen.

Gilt für: