DbGrid para Excel
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
Curtidas 0
Melhor post
João Nascimento
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;GOSTEI 1
Mais Respostas
Timuio
01/07/2010
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;GOSTEI 0