Principales respuestas
¿Cómo abrir desde VB.Net archivos *.xls o *.xlsx sin OleDB ni Excel instalado previamente?

Pregunta
-
El tema es así, desarrollé un programa que se encarga de instalar una aplicación web específica, los servicios que son necesarios para el correcto funcionamiento de la aplicación web, y también se encarga de configurar el IIS.
Hasta aquí todo bien, pero al cliente se le envía una planilla excel con un formato específico, la cuál el cliente es el que se encarga de rellenar los datos que se le pide. Y luego el cliente le envía el xls a la persona que va usar el instalador, y el instalador se encarga de abrir el xls, leerlo y configurar la base de datos de la aplicación.
El problema está en que el instalador se va a enfrentar a todo tipo de máquinas que van actuar como servidores, desde Win XP a Win 8.1, y de 32 y 64 bits... Algunos 'servidores' van a tener excel instalado, otros apenas van a tener el framework necesario para la aplicación web y hasta ahí no más. Me voy a encontrar desde la máquina más precaria a la más avanzada para instalarle la aplicación y en todas debe correr el instalador.
Bueno, el instalador corre en todas esas máquinas porque ya me enfrenté a muchas, pero últimamente, me he topado con máquinas de 64 bits las cuales no me funciona el acceso a un archivo de xls o xlsx desde OleDB, y claro, para complicarmela más todavía, estas máquinas no cuentan con Excel instalado y no me permiten instalarle ninguna clase de programa de oficina.
Si saben de alguna forma de abrir un archivo *.xls o *.xlsx sin usar OleDB o contar con Microsft Excel instalado, les agradecería muchísimo la ayuda.
Un saludo enorme!
..::vddcn::..
Respuestas
-
Para abrir un .xlsx (pero no un .xls) puedes usar el OpenXML SDK:
http://msdn.microsoft.com/en-us/library/office/bb448854(v=office.15).aspx
Es una descarga gratuita, que al final te proporciona una DLL que puedes adjuntar a tu instalador. Tiene una curva de aprendizaje muy empinada, pero una vez que aprendes a usarlo es potentísimo para acceder a los distintos archivos de Office, Excel incluido.
- Marcado como respuesta Víctor da Cunha miércoles, 30 de julio de 2014 18:35
- Desmarcado como respuesta Víctor da Cunha miércoles, 30 de julio de 2014 18:36
- Marcado como respuesta Víctor da Cunha miércoles, 30 de julio de 2014 18:36
Todas las respuestas
-
Para abrir un .xlsx (pero no un .xls) puedes usar el OpenXML SDK:
http://msdn.microsoft.com/en-us/library/office/bb448854(v=office.15).aspx
Es una descarga gratuita, que al final te proporciona una DLL que puedes adjuntar a tu instalador. Tiene una curva de aprendizaje muy empinada, pero una vez que aprendes a usarlo es potentísimo para acceder a los distintos archivos de Office, Excel incluido.
- Marcado como respuesta Víctor da Cunha miércoles, 30 de julio de 2014 18:35
- Desmarcado como respuesta Víctor da Cunha miércoles, 30 de julio de 2014 18:36
- Marcado como respuesta Víctor da Cunha miércoles, 30 de julio de 2014 18:36
-
hola
coincido con Alberto para estandarizar deberia ir a open xml, aunque hay algunos puntos a tener en cuenta
si usas esto xls no vas a poder abrir, solo xlsx, o sea office 2007 o superior ya que a partir de esa version aparece el estandar
depsues usar open xml no es facil, por eso hay librerias que lo hacen mas simple
ClosedXML - The easy way to OpenXML
podrias evaluar tambien
http://netoffice.codeplex.com/documentation
son otras alternativas muy buenas para trabjar con excel sin usar las librerias COM de office
saludos
Leandro Tuttini
Blog
Buenos Aires
Argentina -
Muchas gracias por tu tiempo...
Te cuento que busque información de cómo usar OpenXML y proyectos de ejemplo en internet, encontré esta página: Download links
Investigando un poquito en el proyecto que te brinda para descargar logré abrir un .xslx
¿Qué hice?
Modifiqué el xsd para que quede a la medida de mi xslx
Hice Debug de los pasos que sigue
Es muy fácil programar a partir de este proyecto de ejemplo.
..::vddcn::..
- Editado Víctor da Cunha miércoles, 30 de julio de 2014 18:45 Link roto
-