Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Excel erstellen und Formatieren (https://www.delphipraxis.net/210613-excel-erstellen-und-formatieren.html)

Youuuu 17. Mai 2022 22:34

Excel erstellen und Formatieren
 
Guten Abend,

leider komm ich aktuell nicht weiter.

Ich will eine Excel erstellen und diese Formatieren, die Daten sind kein Problem, allerdings funktionieren sämtliche Formatierungen nicht, sei es den Text oder cell Color usw.

Delphi-Quellcode:
Begin
  Result := True;
  var aExcelApp: OleVariant := CreateOleObject('Excel.Application');
  try
    if not VarIsNull(aExcelApp) then
    begin
      var aWorkbook: OleVariant := aExcelApp.Workbooks.Add;
      var aWorksheet: OleVariant := aWorkbook.ActiveSheet;
      if not VarIsNull(aWorkbook) then
      begin
        var aRowCount: Integer := aRow;
        var aColCount: Integer := 8;
        if (aRowCount > 0) and (aColCount > 0) then
        begin
          begin
            var aDate := Date;
            var aFormat := 'mmmm d, yyyy';
            aWorksheet.Range['C3','F3'].NumberFormat:= aFormat; // Format wird auch hier nicht in Datum geändert
            aWorksheet.Rows[3].RowHeight := 30.75;                  // Macht nichts

            aWorksheet.Range['C3','F3'].Value:= aDate;
            aWorksheet.Range['C3','F3'].Interior.Color := RGB(223, 123, 123);


            aWorkbook.Activate;
            var xlCSV6: OleVariant := xlCSV;

            var aDateiname := 'test.csv';
            var aDestinationMainOrdner := GetDeskTopPath+'\';

            aExcelApp.ActiveWorkbook.SaveAs(FileFormat := xlCSV6, Filename := aDestinationMainOrdner+aDateiname, CreateBackup := false);
            aWorkbook.saved := true;
            aWorkbook.Close(saveChanges := true, Filename := aDestinationMainOrdner+aDateiname);
          end;
        end;
      end
      else
        Result := False;
    end
    else
      Result := False;
  finally
    aExcelApp.Quit;
  end;
End;

Jemand Tipps?

LoZe 18. Mai 2022 07:11

AW: Excel erstellen und Formatieren
 
Hallo, sehe ich das richtig das du es als CSV abspeicherst?
CSV enthält keine Formatierung sondern ist nur eine "Comma Separated Values" Datei

Youuuu 18. Mai 2022 07:42

AW: Excel erstellen und Formatieren
 
Ich wollte es gerade selbst schreiben, es wird als CSV gespeichert und die haben ja keine Formatierung ... War einfach blind.

LoZe 19. Mai 2022 08:22

AW: Excel erstellen und Formatieren
 
man sieht manchmal den Code vor lauter Syntax nicht :-D

Blup 19. Mai 2022 09:15

AW: Excel erstellen und Formatieren
 
Wenn CreateOleObject nicht erfolgreich ist, wird eine Exception ausglöst.
Deshalb ist die Prüfung VarIsNull(aExcelApp) an dieser Stelle überflüssig.
Zumal aExcelApp.Quit auf einen Null-Variant auch nicht funktionieren kann.

Es wird zuerst das aWorkbook erzeugt, dann davon aWorksheet abgerufen.
Aber erst danach geprüft, ob aWorkbook überhaupt erfolgreich erzeugt wurde.
Hier würde auch bereit der Abruf von aWorksheet eine Exception auslösen, wenn aWorkbook nicht existiert.

So lange if-else-Blöcke sind relativ unübersichtlich.
Deshalb würde ich die Blöcke eher in Unterfunktionen auslagern oder bei Ausnahmen die Funktion direkt verlassen.
Delphi-Quellcode:
function fn(): Boolean;
begin
  {code}

  if Ausnahme then
    Exit(False);

  {code}

  if Ausnahme then
    Exit(False);

  {code}

  Result := True;
end;

DaCoda 21. Mai 2022 06:40

AW: Excel erstellen und Formatieren
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,
ich hab mir mal eine "Mini-Unit" gemacht um Excel-Dateien zu erzeugen.
Ist zwar im Moment nur das nötigste, aber mir reichte das vorerst zum testen...

Vielleicht bringt dich das ein Stück weiter... :-D


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:58 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