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;
Question
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 to comment
Share on other sites
11 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.