Sdílet prostřednictvím


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

Definice

Importuje datový proud XML, který byl dříve načten do paměti.

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

Parametry

data
String

Data, která se mají importovat.

importMap
XmlMap

Mapa schématu, která se použije při importu souboru.

overwrite
Object

Pokud pro parametr není zadána Destination hodnota, pak tento parametr určuje, zda se mají přepsat data, která byla namapována na mapu schématu zadanou v parametru ImportMap . Nastavte na true pro přepsání dat nebo false pro připojení nových dat k existujícím datům. Výchozí hodnota je true. Pokud je pro Destination parametr zadána hodnota, pak tento parametr určuje, zda se mají přepsat existující data. Pokud chcete přepsat existující data, nebo false zrušit import, pokud by se data přepsala, nastavte na true hodnotu . Výchozí hodnota je true.

destination
Object

Data se naimportují do nového seznamu XML v zadaném Range seznamu.

Návraty

Jedna z XlXmlImportResult hodnot.

Příklady

Následující příklad kódu ukazuje, jak lze importovat data XML do sešitu. Příklad vytvoří DataSet jména zákazníků a přidá XmlMap na základě schématu XML pro DataSet objekt do XmlMaps kolekce aktuálního sešitu. Příklad pak zavolá metodu XmlImportXml importu dat do listu Sheet1. Při zavolání XmlImportXmlBeforeXmlImport metody obslužná rutina události vyzve uživatele k pokračování nebo zrušení importu XML a AfterXmlImport obslužná rutina události hlásí, zda byl xml úspěšně importován.

Tento příklad je pro přizpůsobení na úrovni dokumentu.

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

Poznámky

Nezadávejte hodnotu parametru Destination , pokud chcete importovat data do existujícího mapování.

Následující podmínky způsobí, že tato metoda vygeneruje chyby za běhu:

  • Zadaná data XML obsahují chyby syntaxe.

  • Proces importu byl zrušen, protože zadaná data se nevejdou na list.

XmlImport Pomocí metody importujte datový soubor XML do aktuálního sešitu.

Volitelné parametry

Informace o volitelných parametrech najdete v tématu Volitelné parametry v řešeních pro Systém Office.

Platí pro