Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Inhald eines DBGrid nach Excel exportieren ? (https://www.delphipraxis.net/71578-inhald-eines-dbgrid-nach-excel-exportieren.html)

omata 18. Jun 2006 18:01

Re: Inhald eines DBGrid nach Excel exportieren ?
 
Was soll ich dazu sagen? Bei mir funktioniert das...

Ist den FieldCount > 0?

Vader 18. Jun 2006 19:07

Re: Inhald eines DBGrid nach Excel exportieren ?
 
hallo,

bin dort auch rausgekommen,wo kann ich da nachschauen ob FieldCount > 0 ist ?
mfg vader

Vader 21. Jun 2006 15:39

Re: Inhald eines DBGrid nach Excel exportieren ?
 
hallo,

könnte wer den code propieren ob der bei euch funktioniert !!

Delphi-Quellcode:
procedure DBGridToExcel(DBGrid:TDBGrid; StartSpalte, StartZeile:integer);
type TSpalten = array[1..256] of string;

  function CreateSpalten:TSpalten;
  var i, j, x:integer;
      abbruch:boolean;
  begin
    x:=1;
    abbruch:=false;
    j:=0;
    while (j <= 26) and not abbruch do begin
      i:=1;
      while (i <= 26) and not abbruch do begin
        if j = 0 then
          Result[x]:=chr(i+64)
        else
          Result[x]:=chr(j+64)+chr(i+64);
        inc(i);
        inc(x);
        abbruch:=(x > 256);
      end;
      inc(j);
    end;
  end;

var Excel:TExcelApplication;
    i, Zeile, lcid:integer;
    Workbook:_Workbook;
    Sheet, Zelle, Inhalt:Variant;
    Spalten:TSpalten;
begin
  if    assigned(DBGrid)
     and assigned(DBGrid.DataSource)
     and assigned(DBGrid.DataSource.DataSet) then
  begin
    if DBGrid.DataSource.DataSet.Active then begin
      Excel:=TExcelApplication.Create(nil);
      try
        lcid:=GetUserDefaultLCID;
        Excel.Connect;
        Excel.Visible[lcid]:=true;
        Excel.UserControl:=true;

        Workbook:=Excel.Workbooks.Add(EmptyParam, lcid);

        Spalten:=CreateSpalten;
        Zeile:=StartZeile;
        for i:=1 to DBGrid.FieldCount do begin
          Inhalt:=DBGrid.Fields[i-1].DisplayName;
          Zelle:=Excel.Cells.Range[ 
            Spalten[i+StartSpalte-1]+inttostr(Zeile),
            Spalten[i+StartSpalte-1]+inttostr(Zeile)
          ];
          Zelle.Value:=Inhalt;
          Zelle.Font.Bold:=true;
        end;

        DBGrid.DataSource.DataSet.First;
        while not DBGrid.DataSource.DataSet.Eof do begin
          inc(Zeile);
          for i:=1 to DBGrid.FieldCount do begin
            Inhalt:=DBGrid.DataSource.DataSet.FieldByName( 
              DBGrid.Fields[i-1].FieldName
            ).AsString;
            Zelle:=Excel.Cells.Range[ 
              Spalten[i+StartSpalte-1]+inttostr(Zeile),
              Spalten[i+StartSpalte-1]+inttostr(Zeile)
            ];
            Zelle.Value:=Inhalt;
          end;
          DBGrid.DataSource.DataSet.Next;
        end;

        Sheet:=Workbook.ActiveSheet;
        Sheet.Columns[ 
          Spalten[StartSpalte]+':'+Spalten[StartSpalte+DBGrid.FieldCount]
        ].EntireColumn.AutoFit;

      finally
        Excel.Disconnect;
        Excel.free;
      end;
    end;
  end;
end;


aufruf


Delphi-Quellcode:
DBGridToExcel(DBGrid, 1, 1);
mfg vader

Vader 23. Jun 2006 08:44

Re: Inhald eines DBGrid nach Excel exportieren ?
 
hallo,
kann keiner das testen :(

mfg vader

Elkos 4. Okt 2006 09:49

Re: Inhald eines DBGrid nach Excel exportieren ?
 
Hallo !

DBGridToExcel funktioniert einwandfrei !
Ich hab nur festgestellt, daß in Delphi 5 die Property Range_ und nicht Range heisst.

Danke !

Gruß
Elkos

Haeger23 11. Okt 2006 13:05

Re: Inhald eines DBGrid nach Excel exportieren ?
 
Hallo allerseits,

also bei mir kommt beim Ausführen der Procedure ...

"DBGridToExcel(DBGrid,1,1);"

.... die Fehlermeldung:

---------------------------
Project1
---------------------------
Klasse nicht registriert.
---------------------------
OK
---------------------------

und zwar an der Stelle

Delphi-Quellcode:
.
.
.
Excel.Connect;
.
.
.
Und das obwohl ich die Units (OleServer, ExcelXP und/oder Excel2000) mit in die Uses aufgenommen habe.

Hat jemand eine Idee was ich falsch mache?

Haeger23 11. Okt 2006 13:08

Re: Inhald eines DBGrid nach Excel exportieren ?
 
Ohh mein Gott ... sorry eure Zeit gestohlen zu haben. Ob ich an diesem Rechner wohl mit OO arbeite und somit gar kein MS Excel installiert habe ?!!! :wall:

.. sowas ist mir noch nie passiert :oops:


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:20 Uhr.
Seite 3 von 3     123   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz