Autor |
Beitrag |
jackle32
      
Beiträge: 183
Erhaltene Danke: 7
Win7
Delphi XE5 Starter, RAD Studio XE7 Pro
|
Verfasst: Do 18.03.10 13:22
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
_________________ Es gibt keine dummen Fragen, nur dumme Antworten.
|
|
Narses
      

Beiträge: 10183
Erhaltene Danke: 1256
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: 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.
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
jackle32 
      
Beiträge: 183
Erhaltene Danke: 7
Win7
Delphi XE5 Starter, RAD Studio XE7 Pro
|
Verfasst: 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
_________________ Es gibt keine dummen Fragen, nur dumme Antworten.
|
|
Andreas Schilling
      
Beiträge: 128
Erhaltene Danke: 1
WIN XP, WIN 7
Delphi 5 Ent, Delphi 2007 Pro, XE4
|
Verfasst: 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 
      
Beiträge: 183
Erhaltene Danke: 7
Win7
Delphi XE5 Starter, RAD Studio XE7 Pro
|
Verfasst: 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
_________________ Es gibt keine dummen Fragen, nur dumme Antworten.
|
|
jackle32 
      
Beiträge: 183
Erhaltene Danke: 7
Win7
Delphi XE5 Starter, RAD Studio XE7 Pro
|
Verfasst: Sa 20.03.10 22:22
Keiner eine Idee?
_________________ Es gibt keine dummen Fragen, nur dumme Antworten.
|
|
jackle32 
      
Beiträge: 183
Erhaltene Danke: 7
Win7
Delphi XE5 Starter, RAD Studio XE7 Pro
|
Verfasst: Mo 22.03.10 23:45
Nochmal ein Anlauf vielleicht ist ja jetzt jemand da der sich damit auskennt.
Grüße,
Jack
_________________ Es gibt keine dummen Fragen, nur dumme Antworten.
|
|
JoelH
      
Beiträge: 806
Erhaltene Danke: 17
Win10
Delphi Alexandria 11.2 Patch 1
|
Verfasst: 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
www.rondebruin.nl/saveas.htm
_________________ mfg. Joel
|
|
jackle32 
      
Beiträge: 183
Erhaltene Danke: 7
Win7
Delphi XE5 Starter, RAD Studio XE7 Pro
|
Verfasst: 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); |
_________________ Es gibt keine dummen Fragen, nur dumme Antworten.
|
|
|