Udostępnij za pośrednictwem


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

Definicja

Importuje strumień danych XML, który został wcześniej załadowany do pamięci.

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

Dane do zaimportowania.

importMap
XmlMap

Mapa schematu do zastosowania podczas importowania pliku.

overwrite
Object

Jeśli wartość nie zostanie określona dla parametru Destination , ten parametr określa, czy zastąpić dane, które zostały zamapowane na mapę schematu określoną w parametrze ImportMap . Ustaw wartość , aby true zastąpić dane lub false dołączyć nowe dane do istniejących danych. Wartość domyślna to true. Jeśli dla parametru Destination określono wartość, ten parametr określa, czy zastąpić istniejące dane. Ustaw wartość na , aby true zastąpić istniejące dane lub false anulować importowanie, jeśli dane zostaną zastąpione. Wartość domyślna to true.

destination
Object

Dane zostaną zaimportowane do nowej listy XML w Range określonym.

Zwraca

XlXmlImportResult Jedna z wartości.

Przykłady

Poniższy przykład kodu demonstruje, jak importować dane XML do skoroszytu. Przykład tworzy DataSet nazwy klientów i dodaje XmlMap element oparty na schemacie XML do DataSetXmlMaps kolekcji bieżącego skoroszytu. W przykładzie metoda jest następnie wywoływana w XmlImportXml celu zaimportowania danych do arkusza Sheet1. Po wywołaniu XmlImportXml metody program obsługi zdarzeń monituje użytkownika o kontynuowanie lub anulowanie importowania kodu XML, a AfterXmlImport program obsługi zdarzeń zgłasza, BeforeXmlImport czy kod XML został pomyślnie zaimportowany.

Ten przykład dotyczy dostosowywania na poziomie 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

Uwagi

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

Poniższe warunki sprawiają, że metoda generuje czasu wykonywania:

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

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

XmlImport Użyj metody , aby zaimportować plik danych XML do bieżącego skoroszytu.

Parametry opcjonalne

Aby uzyskać informacje na temat parametrów opcjonalnych, zobacz Parametry opcjonalne w rozwiązaniach pakietu Office.

Dotyczy