Hola amigos necesito ayuda, miren necesito saber como cargar archivo de excel (.xls) y agregarlo a una base de datos mysql
miren le explico Tengo que hacer un sistema para un usuario que no tiene nada de conocimientos informaticos a el le entregan un archivo de exel con los registros lo que quiero hacer es que desde delphi pueda hacer un sistema para cargar el exel y cargarlo a la base de datos de mysql ¿Alguna idea de que debo utilizar para realizarlo?.
Agradezco sus respuestas

Excel a mysql con delphi
Started by
edorantes
, Mar 09 2013 10:21 AM
3 replies to this topic
#1
Posted 09 March 2013 - 10:21 AM
#2
Posted 09 March 2013 - 11:51 AM
Hola amigo...
Lo primero y más importante es poder abrir el archivo desde Delphi.
Hay muchos métodos que puedes utilizar, pero yo recomendaría que utilizaras ADO para conectarte al archivo en excel y lo manejaras como una Base de Datos, de tal manera que puedas hacer consultas y que desde ahí puedas insertar los datos que necesites hacia MySQL.
Sigue estos pasos para que puedas lograrlo:
1. Agrega un compnente TAdoConnection.
2. Estable la propiedad LoginPrompt del TAdoConnection en False;
3. Para configurar la conexión, da doble click sobre el componente o en su propiedad ConnectionString hay unos puntitos que abren un cuadro de diálogo. Estando ahí, click en el botón Build.
4. En la pestaña de Proveedor selecciona Microsoft Jet 4.0 OLE DB.
5. En la pestaña Conexión, en la opción que dice Seleccione o escriba el nombre de una base de datos, coloca el nombre (ruta incluida) de tu archivo excel.
6. En la pestaña Todas seleccionar la opción Extended Properties y colocas Excel 8.0.
7. Puedes probar la conexión nuevamente en la pestaña Conexión, en el botón Probar Conexión.
8. Aceptar en la ventana para que cierre.
De esa manera ya tienes la conexión establecida y ahora si ya puedes usar los componentes de TADOQuery o TADOTable o los que desees para usar la información de tu archivo.
Cuéntanos tus resultados
Saludox !
Lo primero y más importante es poder abrir el archivo desde Delphi.
Hay muchos métodos que puedes utilizar, pero yo recomendaría que utilizaras ADO para conectarte al archivo en excel y lo manejaras como una Base de Datos, de tal manera que puedas hacer consultas y que desde ahí puedas insertar los datos que necesites hacia MySQL.
Sigue estos pasos para que puedas lograrlo:
1. Agrega un compnente TAdoConnection.
2. Estable la propiedad LoginPrompt del TAdoConnection en False;
3. Para configurar la conexión, da doble click sobre el componente o en su propiedad ConnectionString hay unos puntitos que abren un cuadro de diálogo. Estando ahí, click en el botón Build.
4. En la pestaña de Proveedor selecciona Microsoft Jet 4.0 OLE DB.
5. En la pestaña Conexión, en la opción que dice Seleccione o escriba el nombre de una base de datos, coloca el nombre (ruta incluida) de tu archivo excel.
6. En la pestaña Todas seleccionar la opción Extended Properties y colocas Excel 8.0.
7. Puedes probar la conexión nuevamente en la pestaña Conexión, en el botón Probar Conexión.
8. Aceptar en la ventana para que cierre.
De esa manera ya tienes la conexión establecida y ahora si ya puedes usar los componentes de TADOQuery o TADOTable o los que desees para usar la información de tu archivo.
Cuéntanos tus resultados

Saludox !

#3
Posted 11 March 2013 - 11:02 AM
Si lo prefieres puedes acceder a tu .xls directamente desde delphi -sin ADO ni ODBC ni nada- utilizando una unidad que tengo en github donde manejas un documento de excel o de openoffice mediante un objeto "intermediario" que usa DCOM (objetos OLE) para conectar con excel o lo que tengas instalado (con LibreOffice funciona "a medias", no lo tengo muy probado la verdad, pero es compatible con OO a nivel de APIs, o al menos lo erá) y hacer el trabajo sucio.
La ventaja del método es que permite abrir un .xls solo con tener OpenOffice instalado, o Excel claro, lo que encuentre instalado.
Aparte puedes leer de una hoja del documento sabiendo su nombre, leer el color de la celda, y demás "tonterías" que igual no te sirven de nada en tu caso.
La tienes aquí: https://github.com/s...hi-SpreadSheets
La ventaja del método es que permite abrir un .xls solo con tener OpenOffice instalado, o Excel claro, lo que encuentre instalado.
Aparte puedes leer de una hoja del documento sabiendo su nombre, leer el color de la celda, y demás "tonterías" que igual no te sirven de nada en tu caso.
La tienes aquí: https://github.com/s...hi-SpreadSheets
#4
Posted 13 March 2013 - 01:27 PM
Bueno boy a probarlos primero opte por TAdoConnection pues he puesto una caja de texto con un boton para cargar la direccion del .Xls despues un boton de pobar la conexión este es mi codigo
Bueno al darle la excepcion de conexion SIEMPRE ME SALE EL MENSAJE DE 'CONECTADO' AUNQUE LA CAJA DE TEXTO ESTE VACIA.
Bueno mi idea es mas o menos asi:
1.- Buscar el archivo .xls y mostrar la ruta del archivo
2.- cargar con TAdoConnection el archivo .xls
3.- Insertar a una base de datos mysql la informacion contenida en el .xls
Bueno como veran he tratado de cargar el archivo .xls(Excel) pero siempre me sale el mensaje de conectado aunque no seleccione el archivo espero puedan ayudarme como puedo cargarlo y despues vaciar su informacion a una bd
Bendiciones
delphi
//archivo contiene la direccion del .xls archivo := ediUrl.Text; ADOConnection1.ConnectionString := 'Provider = Microsoft.Jet.OLEDB.4.0;' + 'Data Source =' + archivo + ';' + 'Extended Properties = Excel 8.0; ' ; try ADOConnection1.Connected; ShowMessage('Conectado'); Except ShowMessage('Error'); end;
Bueno al darle la excepcion de conexion SIEMPRE ME SALE EL MENSAJE DE 'CONECTADO' AUNQUE LA CAJA DE TEXTO ESTE VACIA.
Bueno mi idea es mas o menos asi:
1.- Buscar el archivo .xls y mostrar la ruta del archivo
2.- cargar con TAdoConnection el archivo .xls
3.- Insertar a una base de datos mysql la informacion contenida en el .xls
Bueno como veran he tratado de cargar el archivo .xls(Excel) pero siempre me sale el mensaje de conectado aunque no seleccione el archivo espero puedan ayudarme como puedo cargarlo y despues vaciar su informacion a una bd
Bendiciones