PDA

Ver la Versión Completa : detectar final en excel.


vetustas
08-11-2003, 19:07:18
Estoy trabajando con Delphi5 y Paradox. Estoy leyendo datos desde un fichero excel y cargandolos en mi base de datos. El problema es que no se como detectar el final de fichero, es decir que no hay más datos. Yo tengo puesto:

...

final:=excel.cells[fila,1].value;
until (final='0');

vetustas
08-11-2003, 19:09:25
No se que hice que lancé el msj antes de acabar de escribirlo :mad: lo que decia era que yo tengo ese codigo pero para que me funcione tengo que poner un 0 en el fichero de excel lo cual es un rollo porque tengo que entrar en el fichero y modificarlo manualmente y no queda nada pofesional :D No hay alguna forma de hacerlo usando alguna funcion que mire si una casilla esta vacia o algo asi?
Gracias

Ruben_Cu
08-11-2003, 19:33:42
Hola vetustas, prueba utilizar final='' a ver que resultado te da.
En que paró lo de la función Sum
Saludos

roman
09-11-2003, 04:46:37
vetustas comentó:
para que me funcione tengo que poner un 0 en el fichero de excel lo cual es un rollo porque tengo que entrar en el fichero y modificarlo manualmente y no queda nada pofesional :D No hay alguna forma de hacerlo usando alguna funcion que mire si una casilla esta vacia o algo asi?


A mí me parece que tú misma estás dando la respuesta. ¿Por qué no simplemente comparas el valor de "final" con una cadena vacía en lugar de un cero?

// Saludos

marcoszorrilla
09-11-2003, 11:06:49
También habría que tener en cuenta que un campo puede estar vacio y sin embargo no acabar el fichero ahí.

Yo propongo convertir todo el registro a texto, y si despues de esta operación está vacio, es que hemos llegado al final.

Aunque ahora que lo pienso veo otro inconveniente, que pueda haber un registro completamente vacio y no estar al final.

He hecho una prueba con excel mediante macros, y tampoco excel detecta el final de los datos si hay una fila en blanco, se queda justo antes de esta fila, así que creo que la idea puede valer.

Un Saludo.

rruffino
15-12-2004, 16:18:11
me paso lo mismo, lo resolvi haciendo una funcion que recorra las filas hasta que el valor de la celda en es fila=' '. Esto me dio resultado en el caso de que el documento sea continuo, es decir, que no hay filas en blanco.

saludos, Román.-

Toñico
17-01-2005, 10:03:18
Hola, yo tenía el mismo problema y lo solucioné con estas dos líneas de código
ExcelWS.Cells.SpecialCells(xlCellTypeLastCell,EmptyParam).Activate;
nNumLinExcel := ExcelApp.ActiveCell.Row;

No me acuerdo de donde lo saque, pero conseguí que en la variable nNumLinExcel se almacenara el número de líneas usadas en la hoja excel activa.

Al principio buscaba la primera fila que estuviera en blanco la primera celda, pero me encontré con hojas que tenían filas en blanco aunque detrás seguían con información válida.

Un saludo.

DarkSide
17-01-2005, 16:39:19
Prueba con Null en vez de '':

...
final:=excel.cells[fila,1].value;
until (final = Null)

A mi me funciono, claro que estaba trabajando con ADO, pero supongo que es lo mismo.

Saludos