Crear libros Excel

15/09/2006 - 15:19 por Baldor | Informe spam
Tengo una aplicación que exporta ciertos datos a Excel, para la cual crea el
libro desde VB.NET, etc.

Para ello, agregué la referencia a "Microsoft Excel 11.0 Object Library",
para poder declarar objetos como:

Excel.Application, Excel.Worksheet, etc

El problema es que al instalar el programa en una máquina que tiene Office
2000 en lugar del 2003, no funciona al no estar instalada la misma versión
de Microsoft Excel.

¿Se puede conseguir de alguna manera trabajar con objetos Excel en VB.NET de
forma que funcione en PCs con cualquier versión de Office instalada a partir
del Office 2000?
 

Leer las respuestas

#1 SoftJaén
15/09/2006 - 19:18 | Informe spam
"Baldor" preguntó:

¿Se puede conseguir de alguna manera trabajar con objetos Excel en VB.NET
de forma que funcione en PCs con cualquier versión de Office instalada a
partir del Office 2000?



¡Hombre! Tanto como poder, se puede, a costa de declarar variables del tipo
«Object» y hacer las conversiones de datos oportunas, deshabilitando
previamente la instrucción «Option Strict», cosa ésta última que no se
recomienda en absoluto.

Como no tengo Office 2000, no te puedo decir si funciona el ejemplo que
expongo, pero entiendo que debería de funcionar:

Option Strict Off

Dim oApp As Object ' Aplicación
Dim oWorkBook As Object ' Libro de trabajo
Dim oSheet As Object ' Hoja de trabajo

' Creamos una nueva instancia de Excel
oApp = CType(CreateObject("Excel.Application"), Excel.Application)

' Creo un nuevo objeto WorkBook
oWorkBook = oApp.Workbooks.Add

MessageBox.Show("Se ha creado la instancia de Excel, " & _
"pero todavía no es visible.")

' Establezco el objeto Sheet con la primera hoja activa
oSheet = CType(oWorkBook.Sheets(1), Excel.Worksheet)

' Hago visible la aplicación, activando la primera hoja
oApp.Visible = True
oWorkBook.Windows(1).Activate()

' Le doy al usuario el control de la aplicación.
oApp.UserControl = True

' Indico que el libro ya ha sido guardado
oWorkBook.Saved = True

MessageBox.Show("El libro ha sido guardado. " & _
"Ahora vamos a cerrar el libro y Excel.")

' Cierro el libro
oWorkBook.Close()

' Cierro Excel
oApp.Quit()

oApp = Nothing

' Aunque no se recomienda, obligamos a que se
' lleve a cabo la recolección de elementos
' no utilizados.
GC.Collect()

' Detenemos el proceso actual hasta que finalice
' el método Collect
GC.WaitForPendingFinalizers()

¡Suerte!

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.

Preguntas similares