AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Font Typ für Excel festlegen

Ein Thema von Lill Jens · begonnen am 10. Sep 2007 · letzter Beitrag vom 10. Sep 2007
Antwort Antwort
Lill Jens

Registriert seit: 12. Dez 2006
Ort: Nbg
121 Beiträge
 
Delphi 2007 Architect
 
#1

Font Typ für Excel festlegen

  Alt 10. Sep 2007, 15:17
Hey Ihr

Ich hab folgenden Code hier im Forum gefunden der auch wunderbar 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;
Mein Problem ist allerdings, dass alle Schriftarten auf Arial gesetzt werden. Allerdings will ich das meine Schriftarten aus DBGrid übernommen werden.

Thx.4.cmts


Lill Jens
  Mit Zitat antworten Zitat
Benutzerbild von Reinhardtinho
Reinhardtinho

Registriert seit: 26. Feb 2007
411 Beiträge
 
Delphi 5 Enterprise
 
#2

Re: Font Typ für Excel festlegen

  Alt 10. Sep 2007, 15:29
Das hier sollte funktionieren:
Zelle.Font.Name := 'Times New Roman'; Geht natürlich nur mit installierten Schriftarten.

MFG
Lorenz
Ich habe viel von meinem Geld für Alkohol, Weiber und schnelle Autos ausgegeben ... Den Rest habe ich einfach verpraßt.

George Best - 22.05.1946 - 25.11.2005 - nordirischer Fußballspieler
  Mit Zitat antworten Zitat
Lill Jens

Registriert seit: 12. Dez 2006
Ort: Nbg
121 Beiträge
 
Delphi 2007 Architect
 
#3

Re: Font Typ für Excel festlegen

  Alt 10. Sep 2007, 15:49
Zitat von Reinhardtinho:
Das hier sollte funktionieren:
Zelle.Font.Name := 'Times New Roman'; Geht natürlich nur mit installierten Schriftarten.

MFG
Lorenz

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 ?!
  Mit Zitat antworten Zitat
Lill Jens

Registriert seit: 12. Dez 2006
Ort: Nbg
121 Beiträge
 
Delphi 2007 Architect
 
#4

Re: Font Typ für Excel festlegen

  Alt 10. Sep 2007, 16:15
Also was ich jetzt rausgefunden hab und auch funktioniert ist

Excel.Cells.Range['C3', 'C3'].Font.Name:= 'Code 39'; Allerdings nur für C3, C3...wie kann ich das für die ganze C-Spalte festlegen?
  Mit Zitat antworten Zitat
Benutzerbild von Reinhardtinho
Reinhardtinho

Registriert seit: 26. Feb 2007
411 Beiträge
 
Delphi 5 Enterprise
 
#5

Re: Font Typ für Excel festlegen

  Alt 10. Sep 2007, 16:24
Ich kann es grade nicht testen, aber statt Cells müsste es dann glaub ich Colums heißen.

MFG
Lorenz
Ich habe viel von meinem Geld für Alkohol, Weiber und schnelle Autos ausgegeben ... Den Rest habe ich einfach verpraßt.

George Best - 22.05.1946 - 25.11.2005 - nordirischer Fußballspieler
  Mit Zitat antworten Zitat
Lill Jens

Registriert seit: 12. Dez 2006
Ort: Nbg
121 Beiträge
 
Delphi 2007 Architect
 
#6

Re: Font Typ für Excel festlegen

  Alt 10. Sep 2007, 16:29
Zitat von Reinhardtinho:
Ich kann es grade nicht testen, aber statt Cells müsste es dann glaub ich Colums heißen.

MFG
Lorenz
Mhhh nee leider nicht bekomm dafür nen fehler

[Pascal Fehler] Unit1.pas(155): E2149 Klasse besitzt keine Standardeigenschaft Das sind meiner meinung nach schon die cells allerdings will ich ja die ganze C-Spalte mit der schriftart...
  Mit Zitat antworten Zitat
Lill Jens

Registriert seit: 12. Dez 2006
Ort: Nbg
121 Beiträge
 
Delphi 2007 Architect
 
#7

Re: Font Typ für Excel festlegen

  Alt 10. Sep 2007, 16:31
Argh ich nehm alles zurück...allerdings besteht das problem weiterhin das hier nur C3, C3 angesprochen wird
  Mit Zitat antworten Zitat
Benutzerbild von Reinhardtinho
Reinhardtinho

Registriert seit: 26. Feb 2007
411 Beiträge
 
Delphi 5 Enterprise
 
#8

Re: Font Typ für Excel festlegen

  Alt 10. Sep 2007, 16:32
Man könnte dann noch den Range erhöhen, aber da muss man ja auch nen Wert festlegen, z.B.:

Excel.Cells.Range['C1', 'C500'].Font.Name:= 'Code 39'; aber ein Befehl für die komplette Spalte fällt mir grade nicht ein.


MFG
Lorenz
Ich habe viel von meinem Geld für Alkohol, Weiber und schnelle Autos ausgegeben ... Den Rest habe ich einfach verpraßt.

George Best - 22.05.1946 - 25.11.2005 - nordirischer Fußballspieler
  Mit Zitat antworten Zitat
Lill Jens

Registriert seit: 12. Dez 2006
Ort: Nbg
121 Beiträge
 
Delphi 2007 Architect
 
#9

Re: Font Typ für Excel festlegen

  Alt 10. Sep 2007, 16:35
Zitat von Reinhardtinho:
Man könnte dann noch den Range erhöhen, aber da muss man ja auch nen Wert festlegen, z.B.:

Excel.Cells.Range['C1', 'C500'].Font.Name:= 'Code 39'; aber ein Befehl für die komplette Spalte fällt mir grade nicht ein.


MFG
Lorenz

Ahhh du bist ein Held

Danke jetzt geht es
  Mit Zitat antworten Zitat
Benutzerbild von Chemiker
Chemiker

Registriert seit: 14. Aug 2005
1.859 Beiträge
 
Delphi 11 Alexandria
 
#10

Re: Font Typ für Excel festlegen

  Alt 10. Sep 2007, 20:49
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:
Excel.Columns['C:E'].Select; // Spalten markieren
Excel.Selection.Font.Name := 'Algerian'; // Für die markierten Spalten neue Schrift setzen.
Bis bald Chemiker
wer gesund ist hat 1000 wünsche wer krank ist nur einen.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:51 Uhr.
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