Fórum DbGrid para Excel #380446
01/07/2010
0
Olá , gostaria da ajuda de vocês para Exportação de um Consulta do DbGrid para o Excel
já encontrei algumas rotinas que fazem isso porem todas necessitam ter o excel instalado na máquina
outro problema é que é passado o ClientDataSet e não realmente o Grid Visualizado então se contem campos que não estão sendo exibidos, na conversão para excel vai todo CDS ate as informações que não era necessario.
se alguem ja utilizou de outra maneira gostaria de apreender...
já encontrei algumas rotinas que fazem isso porem todas necessitam ter o excel instalado na máquina
outro problema é que é passado o ClientDataSet e não realmente o Grid Visualizado então se contem campos que não estão sendo exibidos, na conversão para excel vai todo CDS ate as informações que não era necessario.
se alguem ja utilizou de outra maneira gostaria de apreender...
Timuio
Curtir tópico
+ 0
Responder
Post mais votado
02/07/2010
procedure TForm1.ExportaExcel(Grid: TDBGrid; DataSet: TDataSet);var Linha, Coluna: Integer;var Planilha : Variant;var ValorCampo : String;begin
Planilha := CreateoleObject('Excel.Application');Planilha.WorkBooks.Add(1);Planilha.Caption := 'Exportando dados do dbGrid para o Excel';Planilha.Visible := True;Grid.DataSource.DataSet.First;for Linha := 0 to DataSet.RecordCount - 1 dobeginfor Coluna := 1 to Grid.Columns.Count dobeginif Grid.Columns.Items[Coluna - 1].Visible thenbeginValorCampo := dbgrPadrao.Columns.Grid.Fields[Coluna - 1].AsString;Planilha.Cells[Linha + 2, Coluna] := ValorCampo;end; end;Grid.DataSource.DataSet.Next;end;for Coluna := 1 to Grid.Columns.Count dobeginif Grid.Columns.Items[Coluna - 1].Visible thenbeginValorCampo := Grid.Columns.Grid.Fields[Coluna - 1].DisplayLabel;Planilha.Cells[1, Coluna] := ValorCampo;end; end;Planilha.Columns.Autofit;end;João Nascimento
Responder
Gostei + 1
Mais Posts
02/07/2010
Timuio
Alguem poderia me ajudar a passar o grid como parametro e não o DataSet nesta função??porque preciso algo do tipo
if DBGrid.Columns.Items[I].Visible then //recebe o valor;
procedure Form1.ExportaExcel( DataSet: TDataSet ); // procedure Form1.ExportaExcel( DbGrid: TDbGrid );var Linha, Coluna: Integer; Planilha : Variant; ValorCampo : String;begin Planilha := CreateoleObject('Excel.Application'); Planilha .WorkBooks.add(1); Planilha.Caption := 'Exportando dados do dbGrid para o Excel'; Planilha.Visible := True;
DataSet.First; for Linha := 0 to DataSet.RecordCount - 1 do begin for Coluna := 1 to DataSet.FieldCount do begin ValorCampo := DataSet.Fields[Coluna - 1].AsString; Planilha.Cells[Linha + 2, Coluna] := ValorCampo; end; DataSet.Next; end; for Coluna := 1 to DataSet.FieldCount do begin ValorCampo := DataSet.Fields[Coluna - 1].DisplayLabel; Planilha.Cells[1, Coluna] := ValorCampo; end; Planilha.Columns.Autofit;end;
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)