Fórum Rotina para exportar de DBGrid para Excel #263252

23/12/2004

0

Boa tarde gente,
eu pesquisei aqui no fórum e encontrei um código que envia os dados de uma StringGrid para uma planilha excel. Implementei e funciona legal. Agora eu gostaria de saber: é possível (eu acho que sim, lógico) fazer o mesmo com uma DBGrid? Eu só gostaria de saber qual a propriedade do DBGrid que devo utilizar. No StringGrid eu uso este código (apenas um teste):
procedure Tfrmimport.btesteClick(Sender: TObject);
var
  excel: variant;
  wlin, wcol : integer;
begin
      excel := CreateOleObject(´Excel.Application´);
      excel.Workbooks.add(1); 
      excel.Cells.Select; 
      excel.Selection.NumberFormat := ´@´; 

      with strg1 do
      begin
        for wlin := 1 to RowCount-1 do
          for wcol := 0 to 3 do
            if Cells[wcol,wlin] <> ´´ then
            begin
               excel.cells[wcol,wlin] := Strg1.cells[wlin,wcol];
               excel.columns.AutoFit;
            end

Como faria para exportar usando o DBGrid? Alguém pode ajudar? Muito obrigado.


Elias Jr

Elias Jr

Responder

Posts

23/12/2004

Elias Jr

Apenas completando o que eu postei: Uso o Delphi 5.0 Pro, MySql 5.0, a paleta MyDAC, e a DBGrid está setada a uma query.


Responder

Gostei + 0

23/12/2004

Paulo_amorim

Olá

Nesse caso é necessário varrer o DataSet, não o grid
Para fazê-lo, creio que isso funciona:

      with Query do
      begin
        for iLinha := 1 to RecordCount -1 do
        begin
             for iColuna := 0 to ColCount do
             begin
                  if Fields[iColuna] <> ´´ then
                  begin
                       excel.cells[iColuna, iLinha] := Fields[iColuna];
                       excel.columns.AutoFit;
                  end;
             end;
             Next;
        end;

Espero que ajude
Até+


Responder

Gostei + 0

23/12/2004

Elias Jr

Amigo,
estou utilizando a sua dica porém o sistema acusa Identificador não declarado no termo ColCount. Este termo existe ou eu preciso declarar alguma Unit? Muito obrigado...


Responder

Gostei + 0

23/12/2004

Paulo_amorim

Olá

Viajei agora... ColCount eh do próprio StringGrid...

Onde está ColCount, leia Fileds.Count

Até+


Responder

Gostei + 0

23/12/2004

Elias Jr

Olá amigo,
desculpe por abusar da sua bondade mas é que estou apanhando mesmo com este caso. O problema é que quando fiz a modificação que vc me pediu o delphi acusou erro de tipo de array requerida. Pode me ajudar?


Responder

Gostei + 0

27/12/2004

Elias Jr

Olá gente, estou precisando de ajuda neste problemina...meu código está dessa forma:

with qryExcel do
    begin
      close;
      sql.clear;
      sql.add(´select * from ´+vNomeTable+´´);
      prepare;
      open;
      camposgrid;

      excel := CreateOleObject(´Excel.Application´);
      excel.Workbooks.add(1);
      excel.Cells.Select;
      excel.Selection.NumberFormat := ´@´;

      for wlin := 1 to RecordCount -1 do
        begin
             for wcol := 0 to FieldCount -1 do
             begin
                excel.cells[wcol, wlin] := fields.count[wcol];*
                excel.columns.AutoFit;
             end;
        end;
        Next;
      end;

Na linha marcada com o asterisco está acusando o erro ´array type required´. Como resolvo isso?


Responder

Gostei + 0

27/12/2004

Martins

[quote:c48865d3a6=´Elias Jr´]Olá gente, estou precisando de ajuda neste problemina...meu código está dessa forma:

with qryExcel do
    begin
      close;
      sql.clear;
      sql.add(´select * from ´+vNomeTable+´´);
      prepare;
      open;
      camposgrid;

      excel := CreateOleObject(´Excel.Application´);
      excel.Workbooks.add(1);
      excel.Cells.Select;
      excel.Selection.NumberFormat := ´@´;

      for wlin := 1 to RecordCount -1 do
        begin
             for wcol := 0 to FieldCount -1 do
             begin
                excel.cells[wcol, wlin] := fields.count[wcol];*
                excel.columns.AutoFit;
             end;
        end;
        Next;
      end;

Na linha marcada com o asterisco está acusando o erro ´array type required´. Como resolvo isso?[/quote:c48865d3a6]

Acho q vc deve mudar essa linha marca, não posso testar pq estou sem Delphi aqui, vc poderia acessar esse link, talvez lhe ajude.

[url]http://www.inf.ufsc.br/~prass/vcl/export.html[/url]


Espero q seja ultil.

Martins


Responder

Gostei + 0

27/12/2004

Elias Jr

Saudações Martins,
já resolvi o problema. Encontrei uma dica pesquisando pelo google e já impelmentei meu código. Mesmo assim agradeço a ajuda. Irei testar estes componentes que vc me enviou. Muito obrigado.


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar