PDA

Ver la Versión Completa : Formato numerico excel


Sick boy
14-04-2004, 12:34:32
Hola,

Tengo unos procedimientos que pasan los contenidos de unos grids (dbgrid y stringgrid) a excel.

Hasta aqui todo perfecto, pero cuando abro el fichero creado, todos los numeros estan como texto, y la suma automatica no funciona (entre otras cosas)

Llevo toda la mañana buscando como añadir el formato numerico a las celdas de excel, pero lo que encuentro no se hacerlo funcionar.

En un hilo encontre esto:
Range['H2','G'+LineString].NumberFormat := '0.00%';
Range['G2','G'+LineString].NumberFormat := '$#,##0.00';
Range['I2','I'+LineString].NumberFormat := '$#,##0.00';
Range['J2','J'+LineString].NumberFormat := '$#,##0.00';
Range['A1','J'+LineString].AutoFormat(xlRangeAutoFormatlist1, true,
true,true,true,true,true);
Range['A1','J'+LineString].Columns.AutoFit;

Donde linestring es una variable que se incrementa fila a fila.

Probe a poner esto en mi codigo pero no funciona :(

Tambien he probado a poner selection.numberformat:='@' , pero tampoco funciona

Alguien puede ayudarme ????

sur-se
16-04-2004, 10:42:38
Hola. Yo también tuve el mismo problema y encontré la forma de poner las máscaras de manera que al abrir el excel están en el formato correcto. Lo tengo puesto en mi programa y me funciona perfectamente. Yo utilizo lo siguiente:

- Para textos y fechas: excelworksheet1.Range[x,y].NumberFormat:='@';
- Para porcentajes: excelworksheet1.Range[x,y].NumberFormat:='0%';
- Para números enteros: excelworksheet1.Range[x,y].NumberFormat:='0';
- Para números decimales: excelworksheet1.Range[x,y].NumberFormat:='#.##0,00';

en este último caso, la máscara variará en función del número de decimales y de enteros que desees.

Con estos formatos, cuando miro el tipo de celda en excel, ésta tiene el correcto y me funcionan bien el resto de las celdas que efectúan cálculos.

Salu2.

Nebli
28-03-2005, 23:16:31
Hola, soy José Luis.

He visto lo de dar formato a celdas de Excel y lo probaré a ver que tal me funciona, ya que yo también tenía el mismo problema.

Lo que te quería pedir es si sabes como hacer lo contrario, es decir, leer una celda de excel que es numérica, o es horaria, o es de texto, etc. y pasarla a una variable de Delphi con la que poder trabajar.

Mi caso concreto es que estoy tratando de leer una celda que tiene el formato de hora ( 00:00 ) en horas y minutos, y no sé como puedo pasar el contenido de esta celda a una variable con la que pueda comparar la hora leída con otra con la que la tenga que comparar para saber si es mayor o menor, etc.

Te agradezco anticipadamente tu ayuda.

Un saludo.