Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Como contar los registros en un archivo de Excel (https://www.clubdelphi.com/foros/showthread.php?t=57721)

carlos gonzalez 25-06-2008 20:59:35

Como contar los registros en un archivo de Excel
 
Hola amigos tengo una duda, no se si pueda hacer,

Tengo un sistema el cual procesa archivos de Excel que tienen cierta información, lo que hago es recorrer el archivo hasta que me encuentro una celda en blanco en la columna A, esto con el fin de saber cuantos registros tiene el archivo de Excel, esta información la paso como parametro antes de procesar el archivo, mi duda es si existe alguna otra manera, instrucción o funcion que me pudiera decir cuantos registros tengo en el archivo de excel sin tener que barrer el archivo,

Si alguien sabe si esto es posible, se los agradeceria bastante que lo compartieran con un servidor.

Saludos su amigo charless

felipe88 25-06-2008 21:05:32

Trabajas con ADO..?, si es asi solo usa el RecordCount del ADODataSet y listo...

enecumene 25-06-2008 21:09:47

Hola, al menos nos puedes decir qué versión delphi utilizas y un poco del código. :rolleyes:

Saludos.

carlos gonzalez 25-06-2008 21:23:27

Para hacer este proceso utilizo Delphi 7, les pongo un parte del codigo

Código Delphi [-]
 
AdmonQuint.ExcelApplication1.Workbooks.Open(AdmonQuint.Abrir.FileName,null,null,null,null,null,null,  null,null,null,null,null,null,null,null,0);
    Hoja:= AdmonQuint.ExcelApplication1.Sheets[1] as _Worksheet;
    total:=0;
    CTE:='1400A';
    USR:='00784';
    fec:='20080616';
    mes:='200806';
    while length(hoja.Cells.Item[total+1,3])>0 do
    total:=total+1;
 
    datam.SDSms1.Active:=false;
    datam.SDSms1.Active:=true;
     for r:=2 to total do
     begin
        datam.SDSms1.Insert;
        datam.SDSms1.FieldByName('CTE').AsString:=CTE;
         for c:=3 to 16 do
         begin
           VALOR:=hoja.Cells.Item[r,c];
           datam.SDSms1.FieldByName(datam.SDSms1.Fields.FieldByNumber(c-1).FieldName).AsString:=VALOR;
         end;
         datam.SDSms1.Post;
     end;
       datam.SDSms1.ApplyUpdates(0);
     except
        MessageDlg('Excel no se pudo inciar.',mtError,[mbOk],0);
        exit;
     end;
      AdmonQuint.ExcelApplication1.Quit;
      AdmonQuint.ExcelApplication1.Disconnect;

felipe88 25-06-2008 21:30:51

Si SDSms1 es una tabla, entonces solo seria contar los registros como te digo :)

coso 25-06-2008 21:43:20

Hola,

el tipo TExcelWorkSheet (delphi 5) contiene la propiedad UsedRange.

a ver si te sirve o te da alguna pista

saludos

felipe88 25-06-2008 23:33:35

Cita:

Empezado por coso (Mensaje 296213)
Hola,

el tipo TExcelWorkSheet (delphi 5) contiene la propiedad UsedRange.

a ver si te sirve o te da alguna pista

saludos

Interezante aporte coso :)


La franja horaria es GMT +2. Ahora son las 22:36:47.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi