![]() |
Re: Inhald eines DBGrid nach Excel exportieren ?
Was soll ich dazu sagen? Bei mir funktioniert das...
Ist den FieldCount > 0? |
Re: Inhald eines DBGrid nach Excel exportieren ?
hallo,
bin dort auch rausgekommen,wo kann ich da nachschauen ob FieldCount > 0 ist ? mfg vader |
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:
mfg vader
DBGridToExcel(DBGrid, 1, 1);
|
Re: Inhald eines DBGrid nach Excel exportieren ?
hallo,
kann keiner das testen :( mfg vader |
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 |
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:
Und das obwohl ich die Units (OleServer, ExcelXP und/oder Excel2000) mit in die Uses aufgenommen habe.
.
. . Excel.Connect; . . . Hat jemand eine Idee was ich falsch mache? |
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 16:06 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz