Fórum Rotina para exportar de DBGrid para Excel #263252
23/12/2004
0
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
Curtir tópico
+ 0Posts
23/12/2004
Elias Jr
Gostei + 0
23/12/2004
Paulo_amorim
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é+
Gostei + 0
23/12/2004
Elias Jr
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...
Gostei + 0
23/12/2004
Paulo_amorim
Viajei agora... ColCount eh do próprio StringGrid...
Onde está ColCount, leia Fileds.Count
Até+
Gostei + 0
23/12/2004
Elias Jr
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?
Gostei + 0
27/12/2004
Elias Jr
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?
Gostei + 0
27/12/2004
Martins
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
Gostei + 0
27/12/2004
Elias Jr
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.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)