![]() |
Font Typ für Excel festlegen
Hey Ihr ;)
Ich hab folgenden Code hier im Forum gefunden der auch wunderbar funktioniert:
Delphi-Quellcode:
Mein Problem ist allerdings, dass alle Schriftarten auf Arial gesetzt werden. Allerdings will ich das meine Schriftarten aus DBGrid übernommen werden.
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; Thx.4.cmts Lill Jens :coder2: |
Re: Font Typ für Excel festlegen
Das hier sollte funktionieren:
Delphi-Quellcode:
Geht natürlich nur mit installierten Schriftarten.
Zelle.Font.Name := 'Times New Roman';
MFG Lorenz |
Re: Font Typ für Excel festlegen
Zitat:
Installiert sind die Schriftarten natürlich ;) Allerdings der Code nur für die Zellen ich brauch das aber für die dritte Spalte...funzt des auch ?! |
Re: Font Typ für Excel festlegen
Also was ich jetzt rausgefunden hab und auch funktioniert ist
Delphi-Quellcode:
Allerdings nur für C3, C3...wie kann ich das für die ganze C-Spalte festlegen?
Excel.Cells.Range['C3', 'C3'].Font.Name:= 'Code 39';
|
Re: Font Typ für Excel festlegen
Ich kann es grade nicht testen, aber statt Cells müsste es dann glaub ich Colums heißen. :gruebel:
MFG Lorenz |
Re: Font Typ für Excel festlegen
Zitat:
Delphi-Quellcode:
Das sind meiner meinung nach schon die cells allerdings will ich ja die ganze C-Spalte mit der schriftart...
[Pascal Fehler] Unit1.pas(155): E2149 Klasse besitzt keine Standardeigenschaft
|
Re: Font Typ für Excel festlegen
Argh ich nehm alles zurück...allerdings besteht das problem weiterhin das hier nur C3, C3 angesprochen wird
|
Re: Font Typ für Excel festlegen
Man könnte dann noch den Range erhöhen, aber da muss man ja auch nen Wert festlegen, z.B.:
Delphi-Quellcode:
aber ein Befehl für die komplette Spalte fällt mir grade nicht ein.
Excel.Cells.Range['C1', 'C500'].Font.Name:= 'Code 39';
MFG Lorenz |
Re: Font Typ für Excel festlegen
Zitat:
Ahhh du bist ein Held ;) Danke jetzt geht es :-D :cheers: :dancer: |
Re: Font Typ für Excel festlegen
Hallo Lill Jens,
mit Columns ist der bessere Weg, damit wird die gesamte Spalte markiert. In dem Beispiel wird die Spalten C bis E markiert und anschließend die neue Schrift gesetzt.
Delphi-Quellcode:
Bis bald Chemiker
Excel.Columns['C:E'].Select; // Spalten markieren
Excel.Selection.Font.Name := 'Algerian'; // Für die markierten Spalten neue Schrift setzen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:07 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