Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Internet (https://www.clubdelphi.com/foros/forumdisplay.php?f=3)
-   -   contar el numero de filas de una hoja de excel (https://www.clubdelphi.com/foros/showthread.php?t=70495)

ingmichel 24-10-2010 18:58:19

contar el numero de filas de una hoja de excel
 
buenas a todos, mi duda es como puedo contar las filas que contiene una hoja de calculo excel, en este caso solo me intereza contar las filas k contengan datos, existe alguna funcion en delphi para este fin ? o si alguien lo ha hecho por favor necesito ayuda...

Aleca 24-10-2010 21:57:01

Código Delphi [-]
  while True do
  begin
    .... 
    Rango := ExcelApp.Range[cRango_Ficha, cRango_Ficha];
    nId := Rango.Value2;
    if nId = 0 then
      Break
    else
    begin
      ExcelApp.StatusBar[0] := 'Actualizando Fila N° ' + IntTostr(nFila);
      PonerDatos(nId, nFila);
    end;
    Inc(nFila);
  end;
estó lo uso para actualizar datos en una planilla a partir de una columna que contiene un valor hasta q llegue a una fila sin valor (vacia), asegurate q esa columna siempre tiene algun dato.

ingmichel 24-10-2010 22:58:17

saludos
 
hola, no entiendo mucho el codigo, que representa la variable rango ?, el metodo poner datos para que es ? y nld no comprendo mucho, gracias de antemano...

Aleca 25-10-2010 04:53:26

Cita:

Empezado por ingmichel (Mensaje 380285)
hola, no entiendo mucho el codigo, que representa la variable rango ?, el metodo poner datos para que es ? y nld no comprendo mucho, gracias de antemano...

rango es una variable del tipo ExcelRange, poner datos es un procedimiento que uso para pasar los datos a excel (no hace al ejemplo, me olvide de sacarlo).
nId es una variable Double y nfila es integer (esta es la que te devolveria al final del bucle la cantidad de filas).
el codigo seria algo asi.
Código Delphi [-]
...
    ExcelApp: TExcelApplication;
....
function Cuentofilas: Integer;
var
  Rango: ExcelRange;
  nId: Double;
  nFila: Integer;
  cCol_Ficha, cRango_Ficha, cRango_Avios, cCol_Avios: String;
begin
  nFila := 1; 
  while True do
  begin
    cRango_Ficha := 'A' + IntToStr(nFila); //suponiendo que sea la columna 'A'
    Rango := ExcelApp.Range[cRango_Ficha, cRango_Ficha];
    nId := Rango.Value2; //Si la celda no tiene valor devuelve 0

    if nId = 0 then
      Break

    Inc(nFila);
  end;
  Result := nFila - 1;
tene en cuenta que seguramente hay soluciones mejores, seguramente en las busquedas de los foros vas a encontrar mas info.

ingmichel 25-10-2010 05:51:39

muchisimas gracias funciono perfecto
 
hola hermano, ahora si pude entender correctamente el codigo, el cual me funciono a la perfeccion, era justo lo que buscaba, me estaba dando un error de conversion en la linea nid:=rango.value2, lo que hice para corregirlo fue ponerle la funcion vartype de delphi como sigue
nId := vartype(Rango.Value2) y listo ya no me dio error, muchisimas
gracias nuevamente y k dios te bendiga...


La franja horaria es GMT +2. Ahora son las 21:02:33.

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