Abrir hoja/libro excel
Buenos días a todos. Necesitaba, con una aplicación en BCB 6, abrir un libro excel que contiene varias hojas diferentes. He estado viendo hilos por los foros y el que más información me ha dado es Excel a DBGrid. Me he bajado los ejemplos que cita Neftalí.
Tengo puesto este código para conectarme al libro: Código:
try El libro está cerrado al ejecutar el open y no está protegido con ninguna contraseña. En uno de los ejemplos que cita Neftalí (ADO_Excel_2) veo que define dos constantes: Cita:
Por otra parte me surge una duda: como he comentado el libro tiene varias hojas, ¿cómo hago para ir moviéndome a lo largo de ellas? El elemento ADOTable ¿interpreta cada una de las hojas como una tabla distinta? |
El mensaje de error dice: "... no puede abrir el archivo ''. ..."
Por el hecho de que después de la palabra "archivo" hay dos comilla simples, revisa estos dos comentarios que hago:
En Delphi OpenDialog se utiliza en varios pasos:
|
Gracias por la respuesta. He puesto sólo el código del TADOConnection; evidentemente estoy seguro que el nombre del fichero no está vacío, y para evitar problemas he simplificado el nombre del fichero a RESULTADOS.XLS, eliminando espacios en blanco y demás.
Por otra parte he cogido el código que comentaba antes del ejemplo y he puesto así la conexión: Código:
ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=" + OpenDialog->FileName + ";Extended Properties=Excel 8.0;Persist Security Info=False;HDR=Yes;"; |
Cita:
Fíjate que ahí está usando Jet 4.0 y Excel 8.0. Si el libro está en un formato más nuevo puede ser que de error. Prueba a abrir con esa línea un Excel grabado en una versión antigua. Cita:
El libro es el equivalente a una Base de Datos y cada una de las hojas es el equivalente a una tabla. |
Cita:
|
Cita:
|
Cita:
|
2 Archivos Adjunto(s)
Os adjunto dos ficheros. RESULTADOS.RAR contiene el fichero tal como me lo ha enviado el cliente; en RESULTADOS1.RAR hay una copia guardada en formato Excel 97-2003, por si hubiera alguna diferencia. Mientras seguiré haciendo pruebas a ver que puede pasar. Gracias de antemano.
|
Bueno, gracias a otro hilo (Llevar desde Excel a una BD paradox) he podido hacer que se conecte al libro Excel. El código queda así:
Código:
ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;User ID=admin;" |
Cita:
Basta con que abras la conexión (ADOConnection) y utilices el método GetTableNames. Te devolverá la lista de tablas; En este caso la lista de Hojas del libro de Excel. |
Muchísimas gracias.
|
Por otra parte he descubierto la razón del mensaje de error que ponía en la imagen de mi primer mensaje:
Antes de hacer el proceso de conexión del ADOConnection hay que crear el objeto; es decir que hay que añadir esta línea: Código:
Variant Excel = CreateOleObject("Excel.Application"); |
La franja horaria es GMT +2. Ahora son las 18:23:26. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi