Red de conocimiento informático - Material del sitio web - Cómo escribir datos en Excel en un archivo xml

Cómo escribir datos en Excel en un archivo xml

1. Generar XML basado en el conjunto de datos y usarlo en Excel

Esta sección explica cómo crear un objeto DataSet y cómo exportar los datos contenidos en el objeto a un XML. archivo a través del método WriteXML. Una parte clave del acceso a datos en Microsoft .NET Framework, el objeto DataSet es un objeto en memoria que contiene tablas, vistas y relaciones.

Puedes abrir archivos XML generados directamente en Excel. A modo de ejemplo, utilice el proveedor Jet OLEDB para crear un objeto DataSet basado en el ejemplo de Access Northwind. Se puede utilizar código similar con objetos DataSet creados con Visual Basic .NET.

1.

¿Iniciar Microsoft Visual Studio .NET? En el menú Archivo, haga clic en Nuevo y luego haga clic en Proyecto. Seleccione Aplicación de Windows del tipo de proyecto de Visual Basic. Form1 se creará de forma predeterminada.

2.

En el menú Ver, elija Caja de herramientas y luego agregue un botón a Form1.

3.

Haga doble clic en el botón1. Aparece la ventana del código del formulario.

4.

Agregue las siguientes variables miembro privadas a la clase Form1:

Private strConn As String = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" _ "C:\Program Files\Microsoft Office\Office11\Samples\Northwind.mdb;"

Nota: Es posible que deba modificar la ruta a Northwind.mdb en la cadena de conexión para que coincida la instalación coincide. Puede descargar la base de datos de muestra de Northwind Traders desde el Centro de descarga de Microsoft. Además, tenga en cuenta que hay un espacio entre los datos y la fuente de la cadena de ruta.

5.

Agregue el siguiente código al controlador Button1_Click:

'Conectar a la fuente de datos.

Atenuar objConn como nuevo System.Data.OleDb.OleDbConnection(strConn)

Probar

objConn.Open()

' Complete el conjunto de datos con registros de la tabla de clientes.

Atenuar strSQL como cadena

Atenuar objDataset como nuevo conjunto de datos

Atenuar objAdapter como nuevo System.Data.OleDb.OleDbDataAdapter

'OLEDbDataAdapter Actúa como un puente entre las fuentes de datos.

'En este caso, es un puente entre la tabla de clientes y el conjunto de datos.

strSQL = "Seleccione CustomerID, CompanyName, ContactName, " & _

"País/región y teléfono del cliente"

objAdapter.SelectCommand = New System .Data .OleDb.OleDbCommand( _

strSQL, objConn)

objAdapter.Fill(objDataset)

'Crea un FileStream para usar.

Dim strFilename As String

strFilename = "C:\Customers.xml"

Dim fs As New System.IO.FileStream(strFilename, _ p>

System.IO.FileMode.Create)

'Crea un XmlTextWriter para FileStream.

Dim xtw As New System.Xml.XmlTextWriter(fs, _

System.Text.Encoding.Unicode)

'Agregar instrucciones de procesamiento al archivo XML Al principio del ' comentario,

' comenta una de las instrucciones de procesamiento indicando la hoja de estilo.

xtw.WriteProcessingInstruction("xml", "version='1.0'")

'xtw.WriteProcessingInstruction( _

'"xml-stylesheet", "type='text/xsl' href='customers.xsl'")

'Escribe XML desde el conjunto de datos en el archivo.

objDataset.WriteXml(xtw)

xtw.Close()

MsgBox("Los datos del cliente se han exportado a C:\Customers.xml.")

Capturar ex como excepción

MsgBox(ex.Message)

Finalizar intento

6.

Presione Tecla F5 para crear y ejecutar el programa.

7.

Haga clic en el Botón1 para crear el archivo XML y luego cierre Form1 para finalizar el programa.

8.

Inicie Excel y abra el archivo de salida C:\Customers.xml.

9.

Después de haber visto cómo Excel analiza el XML y lo asigna a las filas y columnas del nuevo libro, cierre el archivo y salga de Excel.

2. Utilice hojas de estilo para formatear XML.

Este paso muestra cómo utilizar una hoja de estilo de lenguaje de estilo extensible (XSL) para transformar la forma en que un libro de Excel da formato y organiza los datos XML.

Nota: En un archivo de hoja de estilo XML, las etiquetas XML describen los datos en el archivo de texto, pero XML por sí solo no puede especificar cómo se muestran los datos al usuario.

Las reglas para formatear datos XML suelen estar contenidas en hojas de estilo XSL. Una hoja de estilo XML es un documento XML bien formado que utiliza XSL para transformar datos XML para su visualización. Puede haber muchas hojas de estilo para los mismos datos XML. Aunque la estructura de datos XML real puede ser la misma, las hojas de estilo XSL brindan la flexibilidad de mostrar los datos en muchos formatos diferentes.

1.

Usando cualquier editor HTML o editor de texto (como el Bloc de notas de Microsoft), guarde el siguiente XSL como C:\Customers.xsl:

lt ; "gt;

lt; HTMLgt;

lt; HEADgt;

lt; ESTILOgt;

.HDR { color de fondo : bisque; peso de fuente: negrita }

lt;/STYLEgt;

lt;/HEADgt;

lt;BODYgt;

lt;TABLEgt;

lt;COLGROUP WIDTH="100" ALIGN="CENTER"gt;lt;/COLGROUPgt;

lt;COLGROUP WIDTH="200" ALIGN=" LEFT "gt;lt;/COLGROUPgt;

lt;COLGROUP WIDTH="200" ALIGN="LEFT"gt;lt;/COLGROUPgt;

lt;COLGROUP WIDTH="100 " ALIGN="LEFT"gt;lt;/COLGROUPgt;

lt;COLGROUP WIDTH="100" ALIGN="LEFT"gt;lt;/COLGROUPgt;

lt;TD CLASS ="HDR"gt;ID de clientelt;/TDgt;

lt;TD CLASS="HDR"gt;Companylt;/TDgt;

lt;TD CLASS="HDR" gt;Contactolt;/TDgt;

lt;TD CLASS="HDR"gt;País/Regiónlt;/TDgt;

lt;TD CLASS="HDR"gt ;tellt; /TDgt;

lt;xsl:para cada select="NewDataSet/Table"gt;

lt;TRgt;

lt; /TDgt;

lt;TDgt;lt;xsl:valor-de select="Nombre de Contacto"/gt;lt;/TDgt;

lt;T

Dgt;lt;xsl: valor-de select="País"/gt;lt;/TDgt;

lt;TDgt;lt;xsl: valor-de select="Teléfono"/gt;lt; /TDgt;

lt; /TRgt;

lt; /xsl:para-cadagt;

lt; lt;/BODYgt;

lt;/HTMLgt;

lt;/xsl:templategt;

lt;/xsl:stylesheetgt;

2.

Elimine la marca de comentario de la siguiente línea de código en el controlador Button1_Click:

xtw.WriteProcessingInstruction( _ "xml-stylesheet", "type='text/ xsl' href='customers.xsl'")

Esta línea de código escribe instrucciones de procesamiento en el archivo XML que Excel utiliza para ubicar la hoja de estilos XSL (Customers.xsl).

3.

Presiona la tecla F5 para crear y ejecutar el programa.

4.

Haga clic en el Botón1 para crear el archivo XML y luego cierre Form1 para finalizar el programa.

5.

Inicie Excel y abra el archivo de salida C:\Customers.xml.

6.

Debido a que Excel puede especificar las instrucciones de procesamiento para la hoja de estilos XSL a través del archivo XML, recibirá un cuadro de diálogo cuando abra el archivo. En el cuadro de diálogo Importar XML, seleccione Abrir este archivo y aplique la siguiente hoja de estilo. En la lista, seleccione Customers.xsl y haga clic en Aceptar. Tenga en cuenta que Excel da formato a los datos XML y organiza las columnas según una hoja de estilo XSL.

7.

Cierre el archivo y salga de Excel.

3. Abra el XML convertido usando código

En este punto, ha abierto el archivo XML usando la interfaz de usuario de Excel. Esta sección explica cómo hacer que Excel abra automáticamente un libro mediante programación. El siguiente ejemplo muestra cómo convertir el XML en un objeto DataSet al lenguaje de marcado de hipertexto (HTML) antes de abrir el XML convertido sin intervención del usuario.

1.

En el proyecto Visual Basic .NET, agregue otro botón a Form1.

2.

Haga doble clic en el botón2. Una vez que se muestre la ventana de código del formulario, agregue el siguiente código al controlador Button2_Click:

'Conéctese a la fuente de datos.

Atenuar objConn como nuevo System.Data.OleDb.OleDbConnection(strConn)

Probar

objConn.Open()

'Usar Los registros de la tabla Clientes completan el conjunto de datos.

Atenuar strSQL como cadena

Atenuar objDataset como nuevo conjunto de datos

Atenuar objAdapter como nuevo System.Data.OleDb.OleDbDataAdapter

strSQL = "Seleccione CustomerID, CompanyName, ContactName, " & _

"País y teléfono del cliente"

objAdapter.SelectCommand = New System.Data.OleDb.OleDbCommand( _

strSQL, objConn)

objAdapter.Fill(objDataset)

' Crea un FileStream para usar.

Dim strFilename As String

strFilename = "C:\Customers.htm"

Dim fs As New System.IO.FileStream(strFilename, _ p>

System.IO.FileMode.Create)

'Crea un XmlTextWriter para FileStream.

Dim xtw As New System.Xml.XmlTextWriter(fs, _

System.Text.Encoding.Unicode)

'Convierte XML usando una hoja de estilo.

Dim xmlDoc As System.Xml.XmlDataDocument = _

Nuevo System.Xml.XmlDataDocument(objDataset)

Dim xslTran As System. >

Nuevo System.Xml.Xsl.XslTransform

xslTran.Load("c:\customers.xsl")

xslTran.Transform(xmlDoc, Nothing, xtw, Nothing )

'Escribe el XML convertido en el archivo.

objDataset.WriteXml(xtw)

xtw.Close()

'Inicia Excel y abre el archivo resultante.

Dim oExcel As Object

oExcel = CreateObject("Excel.Application")

oExcel.Workbooks.Open("C:\Customers.htm")

'Hacer visible Excel y otorgar permiso a los usuarios para controlar la aplicación.

'

oExcel.Visible = True

oExcel.UserControl = True

Capturar ex como excepción

MsgBox(ex.Message) p>

Finalizar intento

3.

Presione la tecla F5 para crear y ejecutar el programa.

4.

Haga clic en el Botón 2 para abrir el XML convertido en Microsoft Excel.

Nota: Aunque el método OpenXML del modelo de objetos de Excel le permite abrir mediante programación un archivo XML y aplicar una hoja de estilos, el ejemplo anterior no llama a este método. Porque existe un problema conocido al utilizar este método en el cliente de automatización. Llamar al método OpenXML desde una macro de Excel funciona como se esperaba; sin embargo, al llamar al método desde un cliente de automatización, se ignora el parámetro . La llamada automatización es el proceso de controlar otro producto a través de un producto. El resultado final es que el producto del cliente puede utilizar los objetos, métodos y propiedades del producto del servidor.

IV.Conclusión

Este artículo presenta cómo generar conjuntos de datos basados ​​en XML, cómo usar esquemas para formatear datos XML y cómo automatizar Excel y mostrar XML. Puede utilizar estas acciones para agregar funciones importantes a su aplicación. Pruebe los ejemplos de código proporcionados en este artículo para poder combinar diferentes operaciones y aumentar la efectividad de su aplicación.