Entwickler-Ecke
Dateizugriff - Speichern als .xls (OLE und Office 2007)
jackle32 - Do 18.03.10 13:22
Titel: Speichern als .xls (OLE und Office 2007)
Hallo zusammen,
ich bin gerade am erstellen eines kleinen Programms, dass als "Datenbank" ein Excelfile benutzt. Da ich auf meinem Entwicklungsrechner Office 2007 drauf hab, greift natürlich auch Delphi über die OLE Schnittstelle auf 2007 zu.
Wie ich Dateien speichere ist klar (Excel.ActiveWorkbook.SaveAs(Dateiname)). Nur speichert mir Excel 2007 jetzt immer im ".xlsx" Format ab. Obwohl der Dateiname z.B. "test.xls" ist.
Weiß jemand ob man dem SaveAs (und auch dem Save) einen Parameter mitgeben kann, um im "alten" .xls Format zu speichern?
Gruß Jack
Narses - Do 18.03.10 13:25
Moin!
Ja, es gibt da einen Parameter, einfach mal ein Makro von Speichern als xls erstellen, dann siehst du das im VB Code. :idea: ;)
cu
Narses
jackle32 - Do 18.03.10 13:36
Hallo,
okay hier der Code aus dem Macro:
Quelltext
1: 2: 3: 4:
| ActiveWorkbook.SaveAs Filename:= _ "C:\Documents and Settings\tchristgau\Desktop\Book1.xls", FileFormat:= _ xlExcel8, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _ , CreateBackup:=False |
Der Parameter ist also "xlExcel8". Wenn ich den aber als zweiten Parameter im SaveAs übergebe bekomm ich eine Fehlermeldung. Kennt jemand die genaue Reihenfolge der Parameter für die OLE Schnittstelle?
Gruß Jack
Andreas Schilling - Do 18.03.10 14:27
Quelletext und Fehlermeldung wären interessant. Da ich nur Excel2000 habe kennt das Saveas nur bis xlExcel7. Alle fehlenden Parameter mit emptyparam auffüllen. Getestet ist es nicht, aber beim Kompilieren gibt es keine Fehlermeldung.
Delphi-Quelltext
1:
| ActiveWorkbook.SaveAs('C:\test.xls', xlExcel7, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam); |
jackle32 - Fr 19.03.10 21:35
Hallo zusammen,
also wenn ich den Code wie oben eingebe findet er "xlExcel7" nicht. Ich hab mal eine Tabelle gefunden, in der diesen Platzhaltern eine Nummer zugeordnet ist. Wenn ich dann die Nummer reinschreibe, bekomm ich immer einen Fehler von der SaveAs funktion. (Text: Project XXX.exe raised exception class EOleException with message 'SaveAs method of Workbook class failed'. Process stopped. Use Step or Run to continue).
Gruß,
Jack
jackle32 - Sa 20.03.10 22:22
Keiner eine Idee?
jackle32 - Mo 22.03.10 23:45
Nochmal ein Anlauf vielleicht ist ja jetzt jemand da der sich damit auskennt.
Grüße,
Jack
JoelH - Di 23.03.10 10:09
Wie sieht denn deine Codezeile denn jetzt genau aus? Ohne genauen Code kann man das schwerlich nachvollziehen.
Probier mal
Delphi-Quelltext
1:
| ActiveWorkbook.SaveAs ('C:\Documents and Settings\tchristgau\Desktop\Book1.xls', 56, '', '', False ,False) |
siehe dazu
http://www.rondebruin.nl/saveas.htm
jackle32 - Di 23.03.10 13:43
Okay,
56 war der richtige Wert, hatte vorher von einer anderen Quelle eine Wert von 43.
Besten Dank!
Gruß Jack
P.S.
Meine momentan entgültige Version sieht so aus:
Delphi-Quelltext
1:
| ActiveWorkbook.SaveAs('C:\test.xls', 56, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam); |
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!