Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Excel Sheets (https://www.delphipraxis.net/190397-excel-sheets.html)

Sidi61 5. Okt 2016 15:02

AW: Excel Sheets
 
Hallo Jumpy,

okay, dann sieht die Sache natürlich anders aus, habe nicht gewusst dass sich dadurch SaveAs bezüglich der Parameter ändert.
Ab Excel 7, in der Versionsangabe also 12.0 ändert sich das Dateiformat.

Hallo Chemiker,
ich habe deine Abfragen dann wohl falsch aufgenommen, habe deinen Code so interpretiert dass du jedes mal abfragst ob die Variable auch ein Objekt enthält mit dem gearbeite werden kann. Verstehe allerdings auch jetzt noch nicht wo genau geprüft wird ob es noch offene Instanzen gibt die geschlossen werden müssen. Bin einfach mal naiv davon ausgegangen, wenn ich weiß was ich geöffnet habe, weiß ich auch was ich schließen muss :oops:

Gruß
Sidi61

Sidi61 5. Okt 2016 20:18

AW: Excel Sheets
 
Hallo Jumpy,

nochmals Danke für deinen Tip, habe ich wie folgt umgesetzt:

Delphi-Quellcode:
unction TFormExcel.Excel_Arbeitsmappe_speichern(Z: string):boolean;
Var OK : boolean;
begin
  OK := true;
  if ExcelVersion >= 12 then //ab 12 Format xlsx
  begin
    try
      if uppercase(DS) = 'XLSX' then ExcelApp.ActiveWorkbook.saveas(Z+'.'+DS);
      //56 = altes Excel-Format benutzen
      if uppercase(DS) = 'XLS' then ExcelApp.ActiveWorkbook.saveas(Z+'.'+DS,56);
    except
      showmessage('speichern von '+Z+'.'+DS+' ist fehlgeschlagen');
      ok := false;
    end;
  end else
  begin
    if uppercase(DS) = 'XLSX' then
    begin
      Showmessage('Das Dateiformat .xlsx wird von Ihrer Version nicht unterstützt, die Speicherung erfolgt im .xls Format');
      DS := 'xls';
    end;
    try
      ExcelApp.ActiveWorkbook.saveas(Z+'.'+DS);
    except
      showmessage('speichern von '+Z+'.'+DS+' ist fehlgeschlagen');
      ok := false;
    end;
  end;
  Result := OK;
end;
Funktioniert prächtig :thumb:

Woher stammt die 56, konnte nirgends eine Doku dazu finden:?:

Gruß
Sidi61

p80286 5. Okt 2016 21:19

AW: Excel Sheets
 
Dan schau mal hier herein:
https://msdn.microsoft.com/de-de/lib.../ff198017.aspx
https://msdn.microsoft.com/de-de/lib...ileformat.aspx

Gruß
K-H

Chemiker 6. Okt 2016 00:32

AW: Excel Sheets
 
Hallo Sidi61,

man kann bei einem aktiven Workbook auch das entsprechende Fileformat herauslesen, das bedeutet, wenn man zum Beispiel ein altes Workbook (XLS-Format) in ein neues Excel öffnet, so kann man das Fileformt lesen und anschließend unter diesem alten Format wieder abspeichern.

Delphi-Quellcode:
aFileFormat := ExcelApp.ActiveWorkbook.Fileformat;
ExcelApp.ActiveWorkbook.SaveAs(Filename:=DateiName, FileFormat:=aFileFormat);

Bis bald Chemiker


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