Udostępnij za pośrednictwem


Metoda WorkbookBase.XmlImportXml —

Importuje strumienia danych XML, który został poprzednio załadowany do pamięci.

Przestrzeń nazw:  Microsoft.Office.Tools.Excel
Zestaw:  Microsoft.Office.Tools.Excel.v4.0.Utilities (w Microsoft.Office.Tools.Excel.v4.0.Utilities.dll)

Składnia

'Deklaracja
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
)

Parametry

  • overwrite
    Typ: System.Object
    Jeśli nie określono wartość dla Destination parametr, a następnie ten parametr określa, czy do zastępowania danych, która została zamapowana do mapy schematu, określonej w ImportMap parametru.Zestaw do true do zastępowania danych lub false dołączyć nowe dane do istniejących danych.Wartością domyślną jest true.Jeżeli określono wartość dla Destination parametr, a następnie ten parametr określa, czy zastąpić istniejące dane.Zestaw do true do zastępowania istniejących danych lub false Aby anulować operację importowania, jeśli dane byłyby zastępowane.Wartością domyślną jest true.
  • destination
    Typ: System.Object
    Dane zostaną zaimportowane do nowej listy XML w Range określony.

Wartość zwracana

Typ: Microsoft.Office.Interop.Excel.XlXmlImportResult
Jednym z XlXmlImportResult wartości.

Uwagi

Nie należy określać wartość dla Destination parametr, jeśli chcesz zaimportować dane do istniejącego mapowania.

Ta metoda powoduje wystąpienie błędów wykonania spowoduje, że następujące warunki:

  • Określone dane XML zawiera błędy składni.

  • Proces importowania zostało anulowane, ponieważ określone dane nie pasują do arkusza.

Użycie XmlImport metody do importowania pliku danych XML do bieżącego skoroszytu.

Parametry opcjonalne

Aby uzyskać informacje o opcjonalnych parametrów, zobacz Parametry opcjonalne w rozwiązania dla pakietu Office.

Przykłady

Poniższy przykład kodu demonstruje, jak importować dane XML do skoroszytu.W przykładzie jest tworzona DataSet klienta nazwy i dodaje XmlMap na podstawie schematu XML dla DataSet do XmlMaps kolekcji bieżącego skoroszytu.Przykład następnie wywołuje XmlImportXml metody do importowania danych do arkusza Sheet1.Gdy XmlImportXml wywoływana jest metoda, BeforeXmlImport programu obsługi zdarzeń monitujące użytkownika, aby kontynuować lub anulować importowanie danych XML i AfterXmlImport moduł obsługi zdarzeń zgłasza czy XML został pomyślnie zaimportowany.

Ten przykład dotyczy dostosowywania poziomie dokumentu.

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

Zabezpieczenia programu .NET Framework

Zobacz też

Informacje

WorkbookBase Klasa

Przestrzeń nazw Microsoft.Office.Tools.Excel