Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   recorriendo un archivo de excel (https://www.clubdelphi.com/foros/showthread.php?t=38617)

ronimaxh 20-12-2006 18:47:56

recorriendo un archivo de excel
 
Hola amigos del club, ya estoy casi terminando lo propuesto, sólo me falta de que forma se puede saber cuantas filas tiene el archivo que deseo importar, si se cuantas columnas tienes en este caso son tres, paro las filas pueden variar porque son muchos archivos a importar.


Miren como va el codigo:
try
Excel := CreateOleObject('Excel.Application');
except
Excel.Quit;
showmessage('No se pudo crear el Objecto Excel.');
raise;
end;

//***** Asignamos el archivo a abrir *****//
if OpenDialogXls.Execute then Archivo:= OpenDialogXls.FileName
else exit;
Excel.Workbooks.Open(Archivo);
...
//para recorrerlo con un bucle en esta parte es que me falta


Excel.quit

Neftali [Germán.Estévez] 20-12-2006 18:57:07

¿Has probado a importar de Excel conectándolo mediante ADO? Facilita mucho las cosas.

Otro comentario, con más de 150 mensajes podrías utilizar TAG's, que ya no eres un novato...

Gydba 20-12-2006 19:42:03

Buenas tardes,

Un link interesante relacionado con el manejo de Excel:
http://delphi.about.com/od/database/l/aa090903a.htm

Saludos!

lgarcia 20-12-2006 19:47:46

Final de archivo Excel
 
Hola:

Una solucion podria ser de buscar la fila con una columna que sea obligatoria y chequear si esta vacia. Un ejemplo.

Código:

repeat
                with InsertarProductos do
                  begin
                  Parameters.ParamByName('@codplu').Value:= Excel.Cells[j,1].Value;
                  Parameters.ParamByName('@codtrasval').Value:= Excel.Cells[j,2].Value;
                  Parameters.ParamByName('@codfabricante').Value:= Excel.Cells[j,3].Value;
                  Parameters.ParamByName('@descripcionplu').Value:= Excel.Cells[j,4].Value;
                  Parameters.ParamByName('@preciocosto').Value:= Excel.Cells[j,6].Value;
                  Parameters.ParamByName('@precioventa').Value:= Excel.Cells[j,7].Value;
                  Parameters.ParamByName('@um').Value:= 1;
                  Parameters.ParamByName('@categoria').Value:= Excel.Cells[j,13].Value;
                  Prepared:= True;
                  ExecProc;
                  end;                 
      inc(j);
      until Excel.Cells[j,2].Value = '';

Saludos
Luis Garcia

ronimaxh 20-12-2006 20:02:08

Gracias por responder, he probado con ado, pero el asunto es que son muchos archivo de excel si hay una forma de que se conecte al acrivo que uno le diga y que se pueda redireccionar fuera mejor esa parte no la vi.

ronimaxh 21-12-2006 20:17:48

Gracias por la idea Garcia, ya lo resuelto.


La franja horaria es GMT +2. Ahora son las 12:24:30.

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