WorkbookBase.XmlImportXml(String, XmlMap, Object, Object) Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Importa un flujo de datos XML previamente cargado en la memoria.
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
Parámetros
- data
- String
Los datos que se van a importar.
- importMap
- XmlMap
El mapa de esquema que se va a aplicar cuando se importe el archivo.
- overwrite
- Object
Si no se especifica un valor para el Destination
parámetro , este parámetro especifica si se van a sobrescribir o no los datos asignados al mapa de esquema especificado en el ImportMap
parámetro . Establezca este parámetro en true
para sobrescribir los datos o en false
para anexar los nuevos datos a los datos existentes. El valor predeterminado es true
. Si se especifica un valor para el Destination
parámetro , este parámetro especifica si se sobrescriben o no los datos existentes. Establezca el parámetro en true
para sobrescribir datos existentes o en false
para cancelar la importación si supone que se sobrescribirían datos. El valor predeterminado es true
.
Devoluciones
Uno de los valores de XlXmlImportResult.
Ejemplos
En el ejemplo de código siguiente se muestra cómo importar datos XML en un libro. En el ejemplo se crea un DataSet objeto de nombres de cliente y se agrega un XmlMap objeto basado en el esquema XML de DataSet a la XmlMaps colección del libro actual. A continuación, el ejemplo llama al XmlImportXml método para importar los datos en la hoja de cálculo Sheet1
. Cuando se llama al XmlImportXml método , el BeforeXmlImport controlador de eventos solicita al usuario que continúe con o cancele la importación del XML, y el AfterXmlImport controlador de eventos notifica si el XML se importó correctamente.
Este ejemplo es para una personalización de nivel de documento.
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
Comentarios
No especifique un valor para el Destination
parámetro si desea importar datos en una asignación existente.
Las condiciones siguientes harán que este método genere errores en tiempo de ejecución:
Los datos XML especificados contienen errores de sintaxis.
El proceso de importación se canceló porque los datos especificados no caben en la hoja de cálculo.
Use el XmlImport método para importar un archivo de datos XML en el libro actual.
Parámetros opcionales
Para obtener información sobre los parámetros opcionales, vea Parámetros opcionales en soluciones de Office.