Crear ficheros Excel

22/11/2005 - 12:07 por Mario Vázquez | Informe spam
Hola,

¿Alguien podría facilitarme código de ejemplo para crear dinámicamente un
archivo de Excel desde VB.NET?

Saludos y gracias,
Mario Vázquez

Preguntas similare

Leer las respuestas

#1 Mario Vázquez
23/11/2005 - 08:34 | Informe spam
Gracias,
tiraré del hilo


"SoftJaén" escribió en el mensaje
news:
"Mario Vázquez" preguntó:

¿Alguien podría facilitarme código de ejemplo para crear
dinámicamente un archivo de Excel desde VB.NET?




Hola, Mario:

Por ejemplo, puedes utilizar en tu solución .net, una referencia COM a la
biblioteca «Microsoft Excel x.0 Object Library», e importar el espacio de
nombres «Microsoft.Office.Interop». Seguidamente utilizarías el siguiente
código para crear un nuevo libro de trabajo:

Dim oExcel As Excel.Application
Dim oBook As Excel.Workbook

' Creamos un nuevo libro de trabajo de Excel.
oExcel = New Excel.Application
oBook = oExcel.Workbooks.Add

' Guardamos el libro de trabajo, y cerramos Excel.
oBook.SaveAs("C:\Mis documentos\Libro100.xls")
oBook = Nothing
oExcel.Quit()
oExcel = Nothing

' Obligamos a que se lleve a cabo la
' recolección de elementos no utilizados.
GC.Collect()

Te advierto que el código anterior lo he probado utilizando la referencia
a
la versión 11.0 de la biblioteca de Excel, la cual se corresponde con
Microsoft Excel 2003, por lo que no te puedo indicar si trabaja igual de
bien con otra versión anterior de Excel.

Para más información sobre cómo trabajar con Excel desde Visual Basic
.NET,
te remito a la lectura del siguiente artículo de la Base del Conocimiento
(en inglés):

How to automate Microsoft Excel from Visual Basic .NET
http://support.microsoft.com/defaul...-US;301982

Un saludo


Enrique Martínez
[MS MVP - VB]

Nota informativa: La información contenida en este mensaje, así como el
código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin
garantías de ninguna clase, y no otorga derecho alguno. Usted asume
cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado
o
sugerido en el presente mensaje.




Respuesta Responder a este mensaje
#2 SoftJaén
23/11/2005 - 12:39 | Informe spam
"Mario Vázquez" escribió:

tiraré del hilo



Otra opción que tienes para evitar utilizar la biblioteca de Excel, es crear
un libro de Excel utilizando el proveedor de datos OleDb y el ISAM
instalable de Excel:

Dim cnn As New OleDb.OleDbConnection
Dim cmd As New OleDb.OleDbCommand

cnn.ConnectionString = _
"Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=C:\Mis documentos\Libro100.xls;" & _
"Extended Properties=""Excel 8.0;"""

Try
' Abrimos la conexión
cnn.Open()

' Configuramos el comando
With cmd
.Connection = cnn
.CommandType = CommandType.Text

' Creamos la hoja de cálculo
.CommandText = "CREATE TABLE [Hoja1](Campo1 INT)"
.ExecuteNonQuery()

' Eliminamos la hoja
.CommandText = "DROP TABLE [Hoja1]"
.ExecuteNonQuery()
End With

MessageBox.Show("Se ha creado con éxito el libro de trabajo.")

Catch ex As Exception

MessageBox.Show(ex.Message)

Finally
' Cerramos la conexión
cnn.Close()
cnn = Nothing

End Try

Como observarás, elimino posteriormente la tabla (hoja de trabajo), para que
el libro de Excel tenga una hoja de cálculo limpia. No obstante, con éste
código, siempre te creará un rango de celdas con el nombre de la tabla que
hayas designado, que posteriormente podrás eliminarlo desde el propio
Microsoft Excel.

Enrique Martínez
[MS MVP - VB]

Nota informativa: La información contenida en este mensaje, así como el
código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin
garantías de ninguna clase, y no otorga derecho alguno. Usted asume
cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o
sugerido en el presente mensaje.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida