AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Fehler beim Excel-Datei via SaveAs in CSV speichern
Thema durchsuchen
Ansicht
Themen-Optionen

Fehler beim Excel-Datei via SaveAs in CSV speichern

Ein Thema von crocodilechris · begonnen am 26. Sep 2006 · letzter Beitrag vom 30. Sep 2006
Antwort Antwort
crocodilechris

Registriert seit: 20. Sep 2006
Ort: Berlin
9 Beiträge
 
Delphi 2005 Personal
 
#1

Fehler beim Excel-Datei via SaveAs in CSV speichern

  Alt 26. Sep 2006, 23:29
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:
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
mein Delphi Code seiht dann wie folgt aus:
Delphi-Quellcode:
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;
Die Exception (wärend der Laufzeit):
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
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.852 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Fehler beim Excel-Datei via SaveAs in CSV speichern

  Alt 26. Sep 2006, 23:58
Es müßte m.E. Excel.ActiveWorkbook.SaveAs heißen
Markus Kinzler
  Mit Zitat antworten Zitat
crocodilechris

Registriert seit: 20. Sep 2006
Ort: Berlin
9 Beiträge
 
Delphi 2005 Personal
 
#3

Re: Fehler beim Excel-Datei via SaveAs in CSV speichern

  Alt 27. Sep 2006, 11:09
habs auch mit ActiveWorkbook probiert, wie es im Makro steht, wirft aber Haargenau den selben Fehler aus
  Mit Zitat antworten Zitat
crocodilechris

Registriert seit: 20. Sep 2006
Ort: Berlin
9 Beiträge
 
Delphi 2005 Personal
 
#4

Re: Fehler beim Excel-Datei via SaveAs in CSV speichern

  Alt 28. Sep 2006, 21:32
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?
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#5

Re: Fehler beim Excel-Datei via SaveAs in CSV speichern

  Alt 28. Sep 2006, 21:38
Zitat von crocodilechris:
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?
weiß nicht obs damit zutun hat"
Du gibst an 'xlCSV' müßte das nicht xlsCSV' heißen?

gruß
  Mit Zitat antworten Zitat
Benutzerbild von x000x
x000x

Registriert seit: 21. Jan 2004
Ort: Bei Hamburg
308 Beiträge
 
Delphi XE2 Professional
 
#6

Re: Fehler beim Excel-Datei via SaveAs in CSV speichern

  Alt 28. Sep 2006, 23:10
Moin moin,

probiers doch mal so:
Delphi-Quellcode:
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;
Wie auch in deinem VB Beispiel wird bei SaveAs zuerst der Dateiname und dann das Format
übergeben.
Wenn du dir bei sowas mal unsicher bist, kannst du die Hilfe von Excel/VBHilfe heranziehen,
dort stehen auch die Konstanten.
Peter
-= Gruss Peter =-
-= alias x000x =-
  Mit Zitat antworten Zitat
crocodilechris

Registriert seit: 20. Sep 2006
Ort: Berlin
9 Beiträge
 
Delphi 2005 Personal
 
#7

Re: Fehler beim Excel-Datei via SaveAs in CSV speichern

  Alt 29. Sep 2006, 08:16
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
  Mit Zitat antworten Zitat
Benutzerbild von x000x
x000x

Registriert seit: 21. Jan 2004
Ort: Bei Hamburg
308 Beiträge
 
Delphi XE2 Professional
 
#8

Re: Fehler beim Excel-Datei via SaveAs in CSV speichern

  Alt 29. Sep 2006, 12:29
Zitat von crocodilechris:
Wo gibt es denn diese Zahlen her?
-> Excel starten
-> 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...
Peter
-= Gruss Peter =-
-= alias x000x =-
  Mit Zitat antworten Zitat
crocodilechris

Registriert seit: 20. Sep 2006
Ort: Berlin
9 Beiträge
 
Delphi 2005 Personal
 
#9

Re: Fehler beim Excel-Datei via SaveAs in CSV speichern

  Alt 29. Sep 2006, 16:47
okay, doch schon eher zum Testen gekommen

es funktioniert , aber wie zum Teufel bist du darauf gekommen, dass man das evtl. in ne Zahl umwandeln muss? In der VB-Hilfe steht ja nur drinne, das es ne Variant-Variable sei...
  Mit Zitat antworten Zitat
crocodilechris

Registriert seit: 20. Sep 2006
Ort: Berlin
9 Beiträge
 
Delphi 2005 Personal
 
#10

Re: Fehler beim Excel-Datei via SaveAs in CSV speichern

  Alt 30. Sep 2006, 19:53
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;
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:12 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