PDA

Ver la Versión Completa : Exportacion a Excel incorrecta


jfloro
18-09-2003, 01:18:00
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
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:


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].