Sdílet prostřednictvím


WorkbookBase.XmlImportXml – metoda

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

Obor názvů:  Microsoft.Office.Tools.Excel
Sestavení:  Microsoft.Office.Tools.Excel.v4.0.Utilities (v Microsoft.Office.Tools.Excel.v4.0.Utilities.dll)

Syntaxe

'Deklarace
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
    Pokud není zadána hodnota Destination parametr, pak tento parametr určuje, zda chcete přepsat data, která byla namapována na uvedené v mapě schématu ImportMap parametr.Nastavte na true k přepsání dat nebo false na nová data připojit k existující data.Výchozí hodnota je true.Pokud je zadána hodnota Destination parametr, pak tento parametr určuje, zda chcete nebo nechcete přepsat existující data.Nastavte na true Chcete-li přepsat existující data nebo false -li import zrušit, pokud by data přepsána.Výchozí hodnota je true.
  • destination
    Typ: System.Object
    Data budou importována do nového seznamu XML v Range zadané.

Vrácená hodnota

Typ: Microsoft.Office.Interop.Excel.XlXmlImportResult
Jeden z XlXmlImportResult hodnoty.

Poznámky

Nezadávejte hodnotu Destination parametr, chcete-li importovat data do existujícího mapování.

Tato metoda generovat chyby run-time způsobí, že následující podmínky:

  • Zadaná data XML obsahuje syntaktické chyby.

  • Proces importu byl zrušen, protože zadaná data nelze umístit do listu.

Použití XmlImport metoda importu dat XML do aktuálního sešitu.

Volitelné parametry

Informace o volitelných parametrů naleznete v tématu Volitelné parametry v Office Solutions.

Příklady

Následující příklad kódu ukazuje, jak importovat XML data do sešitu.V příkladu je vytvořen DataSet zákazníka názvy a přidá XmlMap na základě schématu XML pro DataSet na XmlMaps kolekce aktuálního sešitu.V příkladu je potom zavolá XmlImportXml metodu, chcete-li importovat data do listu Sheet1.Při XmlImportXml je volána metoda BeforeXmlImport obslužná rutina události zobrazí výzvu k pokračovat nebo zrušit import XML a AfterXmlImport obslužnou rutinu události hlásí, zda byl úspěšně importován XML.

V tomto příkladu je úroveň dokument přizpůsobení.

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

Zabezpečení rozhraní .NET Framework

Viz také

Referenční dokumentace

WorkbookBase Třída

Microsoft.Office.Tools.Excel – obor názvů