Exportar dados do DBGRID para Excel
Galera estou com um codigo aqui para exportar os dados do DBgrid para o Excel, esse codigo está funcionando corretamente mas com um unico problema.
Tenho um campo no meu banco de dados com codigos tipo esse 020761181916377537000001 que está como VARCHAR em meu BD.
quando eu exporto para o Excel ele me da o seguinte codigo nesse campo 22+E2207+22 e mesmo que eu tente mudar a formatação no Excel ele não muda o valor fica sempre esse.
segue o codigo para exportar:
procedure TForm1.BitBtn1Click(Sender: TObject);
var linha, coluna : integer;
var planilha : variant;
var valorcampo : string;
begin
//DM.SQLQuery1.CachedUpdates := true;
planilha:= CreateoleObject(´Excel.Application´);
planilha.WorkBooks.add(1);
planilha.caption := ´Exportando dados do dbGrid para o Excel´;
planilha.visible := true;
DM.ClientDataSet1.ApplyUpdates(1);
DM.ClientDataSet1.First;
for linha := 0 to DM.ClientDataSet1.RecordCount - 1 do
begin
for coluna := 1 to DM.ClientDataSet1.FieldCount do
begin
valorcampo := DM.ClientDataSet1.Fields[coluna - 1].AsString;
planilha.cells[linha + 2,coluna] := valorCampo;
end;
DM.ClientDataSet1.Next;
end;
for coluna := 1 to DM.ClientDataSet1.FieldCount do
begin
valorcampo := DM.ClientDataSet1.Fields[coluna - 1].DisplayLabel;
planilha.cells[1,coluna] := valorcampo;
end;
planilha.columns.Autofit;
end;
Se alguem suber oq está acontecendo por favor me ajude.
Valeuu
Tenho um campo no meu banco de dados com codigos tipo esse 020761181916377537000001 que está como VARCHAR em meu BD.
quando eu exporto para o Excel ele me da o seguinte codigo nesse campo 22+E2207+22 e mesmo que eu tente mudar a formatação no Excel ele não muda o valor fica sempre esse.
segue o codigo para exportar:
procedure TForm1.BitBtn1Click(Sender: TObject);
var linha, coluna : integer;
var planilha : variant;
var valorcampo : string;
begin
//DM.SQLQuery1.CachedUpdates := true;
planilha:= CreateoleObject(´Excel.Application´);
planilha.WorkBooks.add(1);
planilha.caption := ´Exportando dados do dbGrid para o Excel´;
planilha.visible := true;
DM.ClientDataSet1.ApplyUpdates(1);
DM.ClientDataSet1.First;
for linha := 0 to DM.ClientDataSet1.RecordCount - 1 do
begin
for coluna := 1 to DM.ClientDataSet1.FieldCount do
begin
valorcampo := DM.ClientDataSet1.Fields[coluna - 1].AsString;
planilha.cells[linha + 2,coluna] := valorCampo;
end;
DM.ClientDataSet1.Next;
end;
for coluna := 1 to DM.ClientDataSet1.FieldCount do
begin
valorcampo := DM.ClientDataSet1.Fields[coluna - 1].DisplayLabel;
planilha.cells[1,coluna] := valorcampo;
end;
planilha.columns.Autofit;
end;
Se alguem suber oq está acontecendo por favor me ajude.
Valeuu
Cleiflavio
Curtidas 0
Respostas
Joaoshi
01/09/2008
Colega, tente assim:
Espero ter ajudado.
for coluna := 1 to DM.ClientDataSet1.FieldCount do begin valorcampo := DM.ClientDataSet1.Fields[coluna - 1].AsString; planilha.cells[linha + 2,coluna] := ´´´´ + valorCampo; end;
Espero ter ajudado.
GOSTEI 0
Cleiflavio
01/09/2008
Cara, vc resolveu 1 problema meu quando trazia os dados se meu codigo era 001.45 ele trazia 1,45 mas com esse codigo isso foi resolvido, mas o grande problema ainda não pois se tenho esse 0095655454100001500001
ele exporta esse codigo 009655545 deixando o resto, tem algum jeito de fazer com que ele exporte todo o codigo ??
Valeuu
ele exporta esse codigo 009655545 deixando o resto, tem algum jeito de fazer com que ele exporte todo o codigo ??
Valeuu
GOSTEI 0
Cleiflavio
01/09/2008
joaoshi, Valeuu deu certo sim eu comi bronha na hora de exportar mas deu certo os valores veio igaul..
Cara muito obrigado essa dica me salvouu.
Vleu
Cara muito obrigado essa dica me salvouu.
Vleu
GOSTEI 0