PDA

Ver la Versión Completa : Como contar los registros en un archivo de Excel


carlos gonzalez
25-06-2008, 20:59:35
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


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
Hola,

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

a ver si te sirve o te da alguna pista

saludos

Interezante aporte coso :)