| Exibir mensagem anterior :: Exibir próxima mensagem |
| Autor |
Mensagem |
ecpetini Novato

Registrado: Quarta-Feira, 27 de Junho de 2012 Mensagens: 28
|
Enviada: Qua Set 06, 2017 2:07 pm Assunto: Exportar DBGrid para Excel. ERRO ! |
|
|
Oi pessoal. Fiz uma exportacao de dados de um DBGrid para uma tabela no Excel. Funcionou, mas com um problema. Os valores (Campos DoublePrecision) do Fb 2.1 configurados com Precision de 2 casas decimais aparecem no Excell com 15 digitos. Como resolver isso ? Agradeco dicas e sugestoes. Obrigado.Petini.
Ola Imex. Obrigado pela olhada no assunto. Uso D7, Fb 2.1 e o IBExpertecem .
Abaixo veja como os valores estao no DBGrid e como aparecem no Excel.!!!
Não sei i que ocorre. Jah revisei tudo e nao descobri nada errado.
O mais estranho eh que alguns poucos valores aparecem corretos.
2.100,00 = 210.060.009.765.625
2.520,72 = 252.071.997.070.313
Na configuracao dos campos, que vem setado com Precision de 15 digitos, eu mudei todos para 2 digitos, mas nem assim alterou.
Como resolver ? ou alguém pode me indicar outra rotina que exporte com a formatacao original ?.
Agradeco dias e sugestoes. Obg. Petini
Editado pela última vez por ecpetini em Sex Set 08, 2017 9:00 am, num total de 2 vezes |
|
| Voltar ao Topo |
|
 |
imex Moderador

Registrado: Sexta-Feira, 7 de Janeiro de 2011 Mensagens: 11666
|
Enviada: Qua Set 06, 2017 2:40 pm Assunto: |
|
|
Boa tarde,
Os valores estão com 15 casas decimais? São apenas zeros a direita ou outros valores que não estão no banco de dados?
Você pode postar o código utilizado para passar o valor do campo para a planilha?
Editado pela última vez por imex em Dom Out 01, 2023 5:34 pm, num total de 1 vez |
|
| Voltar ao Topo |
|
 |
ecpetini Novato

Registrado: Quarta-Feira, 27 de Junho de 2012 Mensagens: 28
|
Enviada: Sex Set 08, 2017 9:17 am Assunto: Expportar para o Excel. Erro |
|
|
Ola Imex. Obrigado pela olhada no assunto. Uso D7, Fb 2.1 e o IBExpertecem .
Abaixo veja como os valores estao no DBGrid e como aparecem no Excel.!!!
Não sei i que ocorre. Jah revisei tudo e nao descobri nada errado.
O mais estranho eh que alguns poucos valores aparecem corretos.
2.100,00 = 210.060.009.765.625
2.520,72 = 252.071.997.070.313
Na configuracao dos campos, que vem setado com Precision de 15 digitos, eu mudei todos para 2 digitos, mas nem assim alterou.
Como resolver ? ou alguém pode me indicar outra rotina que exporte com a formatacao original ?. |
|
| Voltar ao Topo |
|
 |
imex Moderador

Registrado: Sexta-Feira, 7 de Janeiro de 2011 Mensagens: 11666
|
Enviada: Sex Set 08, 2017 10:22 am Assunto: |
|
|
| Você pode postar o código que está utilizando para exportar os valores? |
|
| Voltar ao Topo |
|
 |
ecpetini Novato

Registrado: Quarta-Feira, 27 de Junho de 2012 Mensagens: 28
|
Enviada: Sex Set 08, 2017 10:43 am Assunto: Exportar DBGrid para Excel. Erro. |
|
|
Ta ai:
procedure TForm1.BitBtnWithColor3Click(Sender: TObject);
var
coluna, linha: integer;
excel: variant;
valor: string;
begin
try
excel:=CreateOleObject('Excel.Application');
excel.Workbooks.add(1);
except
Application.MessageBox('Erro','Versão Incompatível');
end;
//Abre as Tabelas Verbas.
DataModule1.cdsVRBPLT17.Active:= True;
SQLQuery3.Open; SQLQuery3.First;
for linha:=0 to SQLQuery3.RecordCount-1 do
begin
for coluna:=1 to SQLQuery3.FieldCount do
begin
valor:= SQLQuery3.Fields[coluna-1].AsString; excel.cells [linha+2,coluna]:=valor;
end;
SQLQuery3.Next;
end;
for coluna:=1 to SQLQuery3.FieldCount do
begin
valor:= SQLQuery3.Fields[coluna-1].DisplayLabel;
excel.cells[1,coluna]:=valor;
end;
excel.columns.AutoFit;
excel.visible:=true;
end; |
|
| Voltar ao Topo |
|
 |
imex Moderador

Registrado: Sexta-Feira, 7 de Janeiro de 2011 Mensagens: 11666
|
Enviada: Sex Set 08, 2017 11:48 am Assunto: |
|
|
Experimente alterar o trecho abaixo
| Código: | for coluna:=1 to SQLQuery3.FieldCount do
begin
valor:= SQLQuery3.Fields[coluna-1].AsString; excel.cells [linha+2,coluna]:=valor;
end; |
para
| Código: | for coluna:=1 to SQLQuery3.FieldCount do
begin
if SQLQuery3.Fields[coluna-1] is TFloatField then
begin
excel.cells [linha+2,coluna].NumberFormat := '#.##0,00_);(#.##0,00)';
excel.cells [linha+2,coluna] := SQLQuery3.Fields[coluna-1].AsFloat;
end
else
excel.cells [linha+2,coluna] := SQLQuery3.Fields[coluna-1].AsString;
end; |
Espero que ajude |
|
| Voltar ao Topo |
|
 |
ecpetini Novato

Registrado: Quarta-Feira, 27 de Junho de 2012 Mensagens: 28
|
Enviada: Seg Set 11, 2017 2:48 pm Assunto: Exportar DBGrid para Excel. ERRO ! |
|
|
| OIl IMEX. muito obrigado pela dica. funcionou direitinho. Agora só falta colocar o reIsultado (a tabela) dentro de um arquivo (texto) em processamento, tipo salvar em C:\INICIALTRAB17\VERBAS. Como devo fazer ? Obrigadào. Abs. Petini. |
|
| Voltar ao Topo |
|
 |
imex Moderador

Registrado: Sexta-Feira, 7 de Janeiro de 2011 Mensagens: 11666
|
Enviada: Ter Set 12, 2017 10:10 am Assunto: |
|
|
Olá,
Não consegui entender o que você quer fazer.
Você conseguiu salvar a planilha? |
|
| Voltar ao Topo |
|
 |
ecpetini Novato

Registrado: Quarta-Feira, 27 de Junho de 2012 Mensagens: 28
|
Enviada: Qua Set 13, 2017 5:34 pm Assunto: Exportar DBGrid para Excel. ERRO ! |
|
|
Ola IMEX
desculpe minha demora. tive que resolver uns problemas aqui.
No caso da exportacao é o seguinte. Vou inserir esse relatório dentro de um outro texto e gostaria de fazer automaticamente.
Agora abre o Excel e exibe o resultaado/relatorio.
Eu gostaria de inserir o relatorio ja pronto dentro do texto maior, sem mostrar o Excel aberto.
Se vc tem ou conhece uma rptina assim, por favor me indique. OK ?
Obrigado. Abs. Petini. |
|
| Voltar ao Topo |
|
 |
imex Moderador

Registrado: Sexta-Feira, 7 de Janeiro de 2011 Mensagens: 11666
|
Enviada: Qui Set 14, 2017 9:48 am Assunto: |
|
|
Olá,
Nunca fiz nada parecido, não sei dizer se é possível. |
|
| Voltar ao Topo |
|
 |
|