WorkbookBase.XmlImportXml-Methode
Importiert einen zuvor in den Arbeitsspeicher geladenen XML-Datenstream.
Namespace: Microsoft.Office.Tools.Excel
Assembly: Microsoft.Office.Tools.Excel.v4.0.Utilities (in Microsoft.Office.Tools.Excel.v4.0.Utilities.dll)
Syntax
'Declaration
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
)
Parameter
- data
Typ: System.String
Die zu importierenden Daten.
- importMap
Typ: Microsoft.Office.Interop.Excel.XmlMap%
Die beim Importieren der Datei anzuwendende Schemazuordnung.
- overwrite
Typ: System.Object
Wenn für den Destination-Parameter kein Wert angegeben ist, gibt dieser Parameter an, ob Daten, die der mit dem ImportMap-Parameter angegebenen Schemazuordnung zugeordnet sind, überschrieben werden sollen.true, wenn die Daten überschrieben werden sollen, bzw. false, um die neuen Daten an die vorhandenen Daten anzuhängen.Der Standardwert ist true.Wenn für den Destination-Parameter ein Wert angegeben ist, 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
Typ: System.Object
Die Daten werden in den angegebenen Range einer neue XML-Liste importiert.
Rückgabewert
Typ: Microsoft.Office.Interop.Excel.XlXmlImportResult
Einer der XlXmlImportResult-Werte.
Hinweise
Um Daten in eine vorhandene Zuordnung zu importieren, geben Sie keinen Wert für den Destination-Parameter an.
Unter den folgenden Bedingungen generiert diese Methode Laufzeitfehler:
Die angegebenen XML-Daten enthalten Syntaxfehler.
Der Importprozess wurde abgebrochen, da die angegebenen Daten nicht in das Arbeitsblatt passen.
Importieren Sie mithilfe der XmlImport-Methode eine XML-Datendatei in die aktuelle Arbeitsmappe.
Optionale Parameter
Informationen zu optionalen Parametern finden Sie unter Optionale Parameter in Office-Lösungen.
Beispiele
Im folgenden Codebeispiel wird veranschaulicht, wie XML-Daten in eine Arbeitsmappe importiert werden. Im Beispiel wird ein DataSet mit Kundennamen erstellt, und dann wird der XmlMaps-Auflistung der aktuellen Arbeitsmappe auf der Grundlage des XML-Schemas für das DataSet eine XmlMap hinzugefügt. Anschließend wird die XmlImportXml-Methode aufgerufen, um die Daten in das Sheet1-Arbeitsblatt zu importieren. Wenn die XmlImportXml-Methode aufgerufen wird, fordert der BeforeXmlImport-Ereignishandler den Benutzer auf, den Import der XML-Daten entweder fortzusetzen oder abzubrechen, und dann meldet der AfterXmlImport-Ereignishandler, ob die XML-Daten erfolgreich importiert wurden.
Dieses Beispiel bezieht sich auf eine Anpassung auf Dokumentebene.
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", missing];
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.");
}
}
.NET Framework-Sicherheit
- Volle Vertrauenswürdigkeit für den unmittelbaren Aufrufer. Dieser Member kann von nur teilweise vertrauenswürdigem Code nicht verwendet werden. Weitere Informationen finden Sie unter Verwenden von Bibliotheken aus teilweise vertrauenswürdigem Code.