Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Servers (https://www.clubdelphi.com/foros/forumdisplay.php?f=9)
-   -   Exportacion a Excel incorrecta (https://www.clubdelphi.com/foros/showthread.php?t=3728)

jfloro 18-09-2003 01:18:00

Exportacion a Excel incorrecta
 
Hola,
estoy realizando una exportación a excel de una query , y bien al realizar la siguiente sentencia asigno los valores a mostrar para cada fila mediante una variable de tipo variant...

WS.Range['A' + IntToStr(W), 'O' + IntToStr(W)].Value2:= TABLA;

La variable tabla es de tipo variant y asigna los valores visibles en cada fila....
bien cuando acabo la exportacion se me muestra lo siguiente:

IdReferencia
10/0
10/00
37631
37662
37690
37721
37751
1001/4
1001/5
1001/6

En el fichero exportado aparecen en determinadas ocasiones los valores 37690,37721,37751,3...etc...
Estos valores no son de mi base de datos...no existen en ella....he comprobado los valores de las variables empleadas y son correctas.....
Alguien me puede ayudar y (si le ha pasado alguna vez decirme como lo soluciono) indicarme la causa de esto...
Las celdas de la hoja excel no tienen ninguna formatos.....

andres1569 18-09-2003 08:52:53

Hola:

No sé si te servira, porque yo cuando he hecho algo así no he utilizado los componentes de la paleta Servers, sino por código, y siempre le he pasado los valores como string, aunque fueran numéricos.

Aprendiz 18-09-2003 09:46:06

Hola,

Has comprobado que los registros que exporta estos valores no tengan valor NULL. Puede que este sea el problema, que se haga un lio al encontrar un NULL, y te devuelva lo que le de la gana.

En otro caso lo que ha comentado andres1569 tb puede solucionarte el problema.

Saludos

jfloro 18-09-2003 21:40:02

asignar valor a columna de excel
 
Hola,
estoy intentando solucionar el problema anterior y he decidido asignar directamente a la celda en cuestion el valor
pero el problema es q no se q sentencia emplear .....

WS.Range['A' + IntToStr(W), 'O' + IntToStr(W)].Value2:= TABLA;

Esta sentencia asigna valores a una fila.....lo que deseo es hacerlo celda a celda ....me podeis ayudar?

GRacias

andres1569 19-09-2003 08:48:36

Mira si esto te sirve:

Código:

var
  i, j : Integer;

Tabla.First;
j := 0;
while NOT Tabla.EOF do
begin
  for i:=0 to Tabla.FieldCount - 1 do
    WS.Cells[i, j] := Tabla.Fields[i].AsString;
  Inc(j);
  Tabla.Next;
end;

NOTA: No estoy muy seguro del orden , si Cells[i, j] o si Cells[j, i].


La franja horaria es GMT +2. Ahora son las 16:51:35.

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