![]() |
Fehler beim Excel-Datei via SaveAs in CSV speichern
Gute Nacht / Guten Tag,
ich hab das Problem, dass ich eine Excel-Datei habe, welche ich via Delphi öffnen und als CSV-Datei speichern will, um diese dann zu parsen. Ich bekomme die Datei aber nicht in ein anderes format gespeichert. :( //->Edit Achja: Ich benutze Delphi 2005PE //<-Ende:Edit Ich bringe mir grad via #delphi.de @ Quakenet, Tutorials, InternetMaterial und der Hilfe den Umgang damit bei, jedenfalls versuche ich das und bin also noch nicht so bewandert im Umgang mit der OLE-Verwendung. Mein Makro sieht wie folgt aus:
Code:
mein Delphi Code seiht dann wie folgt aus:
Sub Makro1()
' ' Makro1 Makro ' ChDir "E:\Projekte\abi schule" Workbooks.Open Filename:="E:\Projekte\abi schule\ProbedatenAbitur.xls" ActiveWorkbook.SaveAs Filename:="E:\Projekte\abi schule\ProbedatenAbitur.csv", FileFormat:=xlCSV, CreateBackup:=False ActiveWorkbook.Close End Sub
Delphi-Quellcode:
Die Exception (wärend der Laufzeit):
var
Excel: Variant procedure TForm1.Button2Click(Sender: TObject); begin Excel := CreateOleObject('Excel.Application'); Excel.Workbooks.Open('E:\Projekte\abi schule\ProbedatenAbitur.xls'); Excel.SaveAs (FileFormat:='xlCSV', Filename:='E:\Projekte\abi schule\ProbedatenAbitur.csv'); Excel.Visible := true; Excel := unassigned; end; Debugger-Error: --------------------------- Benachrichtigung über Debugger-Exception --------------------------- Im Projekt Project1.exe ist eine Exception der Klasse EOleError mit der Meldung 'Die Methode 'SaveAs' wird vom Automatisierungsobjekt nicht unterstützt' aufgetreten. --------------------------- Programm-Error: --------------------------- Project1 --------------------------- Die Methode 'SaveAs' wird vom Automatisierungsobjekt nicht unterstützt. --------------------------- Was mach ich falsch? Zu wenig parameter angegeben, oder falsche Reihenfolge? Vielen Dank für eure kommende Hilfe. crocodilechris |
Re: Fehler beim Excel-Datei via SaveAs in CSV speichern
Es müßte m.E. Excel.ActiveWorkbook.SaveAs heißen
|
Re: Fehler beim Excel-Datei via SaveAs in CSV speichern
habs auch mit ActiveWorkbook probiert, wie es im Makro steht, wirft aber Haargenau den selben Fehler aus :(
|
Re: Fehler beim Excel-Datei via SaveAs in CSV speichern
Keiner eine Ahnung, wie man dieses Problem lösen könnte?
Ich kann die Datei als xls speichern, aber sobald ich in irgendeiner weise die FileFormat methode benutze, dann gibt es einen Fehler :( Oder gibt es noch eine andere Möglichkeit die xls-Datei in eine CSV-Datei zu speichern? |
Re: Fehler beim Excel-Datei via SaveAs in CSV speichern
Zitat:
Du gibst an 'xlCSV' müßte das nicht xlsCSV' heißen? gruß |
Re: Fehler beim Excel-Datei via SaveAs in CSV speichern
Moin moin,
probiers doch mal so:
Delphi-Quellcode:
Wie auch in deinem VB Beispiel wird bei SaveAs zuerst der Dateiname und dann das Format
procedure TForm1.Button2Click(Sender: TObject);
var Excel: Variant; const xlCSV = 6; xlCSVMSDOS = 24; xlCurrentPlatformText = -4158; xlDBF3 = 8; xlDIF = 9; xlExcel2FarEast = 27; xlExcel4 = 33; xlAddIn = 18; xlCSVMac = 22; xlCSVWindows = 23; xlDBF2 = 23; xlDBF4 = 11; xlExcel2 = 16; xlExcel3 = 29; xlExcel4Workbook = 35; xlExcel5 = 39; xlExcel7 = 39; xlExcel9795 = 43; xlHtml = 44; xlIntlAddIn = 26; xlIntlMacro = 25; xlSYLK = 2; xlTemplate = 17; xlTextMac = 19; xlTextMSDOS = 21; xlTextPrinter = 36; xlTextWindows = 20; xlUnicodeText = 42; xlWebArchive = 45; xlWJ2WD1 = 14; xlWJ3 = 40; xlWJ3FJ3 = 41; xlWK1 = 5; xlWK1ALL = 31; xlWK1FMT = 30; xlWK3 = 15; xlWK3FM3 = 32; xlWK4 = 38; xlWKS = 4; xlWorkbookNormal = -4143; xlWorks2FarEast = 28; xlWQ1 = 34; xlXMLSpreadsheet = 46; begin Excel := CreateOleObject('Excel.Application'); Excel.Workbooks.Open('c:\test.xls'); Excel.ActiveWorkbook.SaveAs('c:\test.csv', xlCSV); Excel.ActiveWorkbook.Close(False); //Excel.Visible := true; Excel := unassigned; end; übergeben. Wenn du dir bei sowas mal unsicher bist, kannst du die Hilfe von Excel/VBHilfe heranziehen, dort stehen auch die Konstanten. |
Re: Fehler beim Excel-Datei via SaveAs in CSV speichern
Hey,
Danke für den letzten Tip mit den Zahlen, das Problem hatte ich grade gestern nach dem ich den Post geschrieben habe, dass der Compiler ne Double wollte aber nur nen String bekam, ich wusste allerdings nich was an xlCSV ne Zahl sein sollte, jetzt weiß ich es :) Wo gibt es denn diese Zahlen her? Ich hab die VB-Hilfe herangezogen, aber egal ob ich die Eigenschaften (z.B. FileFormat oder FileName) per := definiert habe oder nur die werte eingetragen habe, nie funzte die Methode SaveAs. Werde es nächste Woche ausprobieren, wenn ich wieder Zeit habe zum Proggen. Bis denne und herzlichen Dank :D |
Re: Fehler beim Excel-Datei via SaveAs in CSV speichern
Zitat:
-> ALT+F11 drücken -> UserForm einfügen -> Button einfügen und doppelklick -> MsgBox Int(xlCSV) reinschreiben und Macro ausführen -> Wert ablesen Geht vll. auch einfacher, ich habs so jedenfalls gemacht... |
Re: Fehler beim Excel-Datei via SaveAs in CSV speichern
okay, doch schon eher zum Testen gekommen :)
es funktioniert :dancer2: ,:gruebel: aber wie zum Teufel bist du darauf gekommen, dass man das evtl. in ne Zahl umwandeln muss?:gruebel: In der VB-Hilfe steht ja nur drinne, das es ne Variant-Variable sei... |
Re: Fehler beim Excel-Datei via SaveAs in CSV speichern
hab durch Zufall eine Variante gefunden, die wohl besser und richtiger zu sein scheint:
Delphi-Quellcode:
var
xlCSV6: OleVariant; begin xlCSV6 := xlCSV; {...} Excel.ActiveWorkbook.SaveAs (FileFormat := xlCSV6, Filename := 'E:\Projekte\abi schule\ProbedatenAbitur.csv', CreateBackup := false ); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:10 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz