Referencia de Excel - Urgente

15/12/2004 - 20:59 por Juan | Informe spam
Buenas a tod@s

Mi pregunta es la siguiente, tengo una aplicación en VB.Net que tiene una
referencia a Excel 2003. Cuando hago la instalación en un equipo de trabajo
que tiene la misma versión de office no hay problema, pero cuando lo instalo
sobre una versión anterior me envía un mensaje de error que dice que "la
versión es antigua. Interop.Excel".

Mi pregunta es como puedo solucionar esto de tal manera el sistema pueda
manejar varias versiones del office.

Gracias
 

Leer las respuestas

#1 Carlos Durán Urenda
16/12/2004 - 16:28 | Informe spam
Hola Juan

Yo me enfrenté con el mismo problema y al parecer no tiene solucion, algunas
de las soluciones que he visto son las siguientes

1) Referenciar a la libreria de objetos en excel, esto es en el diseño,
lamentablemete depende de la version que tienes instalada en tu equipo, lo
unico bueno es que dispones del intelicense al escribir codigo para objetos
de excel

2) Crear la referencia dinamicamente en tiempo de ejecucion la referencia,
mediante el comando CreateObject, la instriccion seria de la siguiente
manera

Dim XLS as Object = CreateObject("Excel.Application")

y todas tus variables de tipo Libro, hoja de trabajo tambien tendrian que
ser creadas de tipo Object, lo malo es que pierdes el intelicense, y todas
las constantes definidas en excel tendiras que cambiarlas por su valor
numerico.

Supuestamente de esta manera obtienes cierta independencia de la version de
excel, pero acarrea otros problemas, como el hecho que al crearse
dinamicamente la referencia, la compilacion se realiza en tiempo de
ejecucion, lo que relentiza tu codigo, ademas de la perdida del intelicense,
en mi experiencia es FALSO que proporcione alguna independencia del codigo.

3) Por ultimo, podrias utilizar el comando Shell para abrir un libro y dejar
que Windows sea el encargado de llamar a Excel, de forma que no tendrias
ningún problema con la version, sin embargo tampoco tendirias control alguno
sobre el libro, lo que podrias hacer en este caso es utilizar el libro de
excel como si se tratase de una base de datos, introducir datos en el
mediante ADO.Net, y el resto programarlo en macros dentro del mismo libro,
de forma que puedas darle la presentacion necesarial al momento de abrirlo,
claro, con el molesto mensaje de que si deseas habilitar las macros.


Espero te sea de utilidad, si tienes alguna mejor idea te agradeceria me la
compartas


Carlos Durán Urenda







"Juan" escribió en el mensaje
news:
Buenas a

Mi pregunta es la siguiente, tengo una aplicación en VB.Net que tiene una
referencia a Excel 2003. Cuando hago la instalación en un equipo de
trabajo
que tiene la misma versión de office no hay problema, pero cuando lo
instalo
sobre una versión anterior me envía un mensaje de error que dice que "la
versión es antigua. Interop.Excel".

Mi pregunta es como puedo solucionar esto de tal manera el sistema pueda
manejar varias versiones del office.

Gracias

Preguntas similares