Como muita gente utiliza o Excel para enviar por email informações sobre seus clientes, fornecedores, etc....vou postar aqui uma dica muito boa para quem quiser exportar dados de um DBGrid para o Excel em tempo de execução de uma maneira rápida e simples.
1º na Uses da Unit declare ComObj.
2º Crie um botão "Exportar para o Excel"
3º Depois de feita a consulta em um dbGrid, no evento onClick do botão criado coloque o seguinte código :
var linha, coluna : integer;
var planilha : variant;
var valorcampo : string;
begin
Query1.CachedUpdates := true;
planilha:= CreateoleObject('Excel.Application');
planilha.WorkBooks.add(1);
planilha.caption := Exportando dados do dbGrid para o Excel';
planilha.visible := true;
Query1.ApplyUpdates;
Query1.First;
for linha := 0 to Query1.RecordCount - 1 do
begin
for coluna := 1 to Query1.FieldCount do
begin
valorcampo := Query1.Fields[coluna - 1].AsString;
planilha.cells[linha + 2,coluna] := valorCampo;
end;
Query1.Next;
end;
for coluna := 1 to Query1.FieldCount do
begin
valorcampo := Query1.Fields[coluna - 1].DisplayLabel;
planilha.cells[1,coluna] := valorcampo;
end;
planilha.columns.Autofit;
Pronto, você acaba de exportar tudo o que você consultou em um dbGrid para o Excel.
Repare que o Excel respeita os registro se adaptando aos dados, isto porque utilizamos : planilha.columns.Autofit;
Pergunta
Alessandro
Como muita gente utiliza o Excel para enviar por email informações sobre seus clientes, fornecedores, etc....vou postar aqui uma dica muito boa para quem quiser exportar dados de um DBGrid para o Excel em tempo de execução de uma maneira rápida e simples.
1º na Uses da Unit declare ComObj.
2º Crie um botão "Exportar para o Excel"
3º Depois de feita a consulta em um dbGrid, no evento onClick do botão criado coloque o seguinte código :
Pronto, você acaba de exportar tudo o que você consultou em um dbGrid para o Excel.
Repare que o Excel respeita os registro se adaptando aos dados, isto porque utilizamos : planilha.columns.Autofit;
Espero que seja muito útil....
Abraços...
Link para o comentário
Compartilhar em outros sites
11 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.