Discussion:
Excel-Workbook in Delphi öffnen
(zu alt für eine Antwort)
Heiko Schmidtke
2005-03-24 07:38:27 UTC
Permalink
Hallo liebe Wissenden!

Ich möchte eine Anzahl von Excel-Workbooks nacheinander unter Delphi2005
öffnen, auslesen und schließen.
Prinzipiell klappt das auch schon mit folgenden Befehlen:
Uses Excel2000, COMObj
var Excel:variant;
Excel:=CreateOLEObject('Excel.application');
Excel.Workbooks.Open(Pfad);
Excel.Workbooks.close;

Problem: Die Excel-Files enthalten irgendeine Funktion, welche Excel beim
Schließen veranlasst nachzufragen, ob man die "Änderungen" speichern möchte.
Auch wenn man gar nichts verändert hat. Leider erscheint die Meldung auch
unter Delphi beim Aufruf von Excel.Workbooks.close;

Unter Excel-VBA funktioniert Workbooks.close(false). Dieses unterdrückt die
Speicherrückfrage.

Mir ist es aber noch nicht gelungen, dieses auch unter Delphi zu
realisieren. Zumindest Excel.Workbooks.close(0); funktioniert nicht.
(Fehlermeldung: Falsch Parameteranzahl!?)

Hat jemand eine Idee?

Gruss,
Heiko
Dirk Schauries
2005-03-24 08:18:43 UTC
Permalink
Hallo Heike,
ich hab schon lange nicht mehr damit gearbeitet aber der Befehl lautet genau
wie in Word: xxx.Saved := true.
Danach gibts keine Abfrage mehr...
Gruß,
Dirk Schauries
Post by Heiko Schmidtke
Hallo liebe Wissenden!
Ich möchte eine Anzahl von Excel-Workbooks nacheinander unter Delphi2005
öffnen, auslesen und schließen.
Uses Excel2000, COMObj
var Excel:variant;
Excel:=CreateOLEObject('Excel.application');
Excel.Workbooks.Open(Pfad);
Excel.Workbooks.close;
Problem: Die Excel-Files enthalten irgendeine Funktion, welche Excel beim
Schließen veranlasst nachzufragen, ob man die "Änderungen" speichern möchte.
Auch wenn man gar nichts verändert hat. Leider erscheint die Meldung auch
unter Delphi beim Aufruf von Excel.Workbooks.close;
Unter Excel-VBA funktioniert Workbooks.close(false). Dieses unterdrückt die
Speicherrückfrage.
Mir ist es aber noch nicht gelungen, dieses auch unter Delphi zu
realisieren. Zumindest Excel.Workbooks.close(0); funktioniert nicht.
(Fehlermeldung: Falsch Parameteranzahl!?)
Hat jemand eine Idee?
Gruss,
Heiko
Heiko Schmidtke
2005-03-24 10:23:58 UTC
Permalink
Hallo Dirk,

die Zeile
Excel.Workbooks.close.saved:=true;
liefert leider die Fehlermeldung "ungültige Variantenoperation"

Heiko
Post by Dirk Schauries
Hallo Heike,
ich hab schon lange nicht mehr damit gearbeitet aber der Befehl lautet genau
wie in Word: xxx.Saved := true.
Danach gibts keine Abfrage mehr...
Gruß,
Dirk Schauries
Post by Heiko Schmidtke
Hallo liebe Wissenden!
Ich möchte eine Anzahl von Excel-Workbooks nacheinander unter Delphi2005
öffnen, auslesen und schließen.
Uses Excel2000, COMObj
var Excel:variant;
Excel:=CreateOLEObject('Excel.application');
Excel.Workbooks.Open(Pfad);
Excel.Workbooks.close;
Problem: Die Excel-Files enthalten irgendeine Funktion, welche Excel beim
Schließen veranlasst nachzufragen, ob man die "Änderungen" speichern
möchte.
Post by Heiko Schmidtke
Auch wenn man gar nichts verändert hat. Leider erscheint die Meldung auch
unter Delphi beim Aufruf von Excel.Workbooks.close;
Unter Excel-VBA funktioniert Workbooks.close(false). Dieses unterdrückt
die
Post by Heiko Schmidtke
Speicherrückfrage.
Mir ist es aber noch nicht gelungen, dieses auch unter Delphi zu
realisieren. Zumindest Excel.Workbooks.close(0); funktioniert nicht.
(Fehlermeldung: Falsch Parameteranzahl!?)
Hat jemand eine Idee?
Gruss,
Heiko
Jürgen Bittner
2005-03-24 11:03:07 UTC
Permalink
Hallo

Versuche einmal
Excel.Workbooks.Open(Pfad, ReadOnly := true);

Jürgen
Post by Heiko Schmidtke
Hallo Dirk,
die Zeile
Excel.Workbooks.close.saved:=true;
liefert leider die Fehlermeldung "ungültige Variantenoperation"
Heiko
Post by Dirk Schauries
Hallo Heike,
ich hab schon lange nicht mehr damit gearbeitet aber der Befehl lautet
genau
Post by Dirk Schauries
wie in Word: xxx.Saved := true.
Danach gibts keine Abfrage mehr...
Gruß,
Dirk Schauries
Post by Heiko Schmidtke
Hallo liebe Wissenden!
Ich möchte eine Anzahl von Excel-Workbooks nacheinander unter Delphi2005
öffnen, auslesen und schließen.
Uses Excel2000, COMObj
var Excel:variant;
Excel:=CreateOLEObject('Excel.application');
Excel.Workbooks.Open(Pfad);
Excel.Workbooks.close;
Problem: Die Excel-Files enthalten irgendeine Funktion, welche Excel
beim
Post by Dirk Schauries
Post by Heiko Schmidtke
Schließen veranlasst nachzufragen, ob man die "Änderungen" speichern
möchte.
Post by Heiko Schmidtke
Auch wenn man gar nichts verändert hat. Leider erscheint die Meldung
auch
Post by Dirk Schauries
Post by Heiko Schmidtke
unter Delphi beim Aufruf von Excel.Workbooks.close;
Unter Excel-VBA funktioniert Workbooks.close(false). Dieses unterdrückt
die
Post by Heiko Schmidtke
Speicherrückfrage.
Mir ist es aber noch nicht gelungen, dieses auch unter Delphi zu
realisieren. Zumindest Excel.Workbooks.close(0); funktioniert nicht.
(Fehlermeldung: Falsch Parameteranzahl!?)
Hat jemand eine Idee?
Gruss,
Heiko
Heiko Schmidtke
2005-03-24 12:17:17 UTC
Permalink
Hallo Jürgen,

das ging leider nicht. Die Speicherrückfrage kam trotzdem.

Ich habe aber eine Lösung erhalten die klappt:

Excel.DisplayAlerts := False;
Excel.Workbooks.Close;

Damit wird die Rückfrage unterdrückt.

Danke für die Hinweise.

Heiko
Post by Jürgen Bittner
Hallo
Versuche einmal
Excel.Workbooks.Open(Pfad, ReadOnly := true);
Jürgen
Post by Heiko Schmidtke
Hallo Dirk,
die Zeile
Excel.Workbooks.close.saved:=true;
liefert leider die Fehlermeldung "ungültige Variantenoperation"
Heiko
Post by Dirk Schauries
Hallo Heike,
ich hab schon lange nicht mehr damit gearbeitet aber der Befehl lautet
genau
Post by Dirk Schauries
wie in Word: xxx.Saved := true.
Danach gibts keine Abfrage mehr...
Gruß,
Dirk Schauries
Post by Heiko Schmidtke
Hallo liebe Wissenden!
Ich möchte eine Anzahl von Excel-Workbooks nacheinander unter Delphi2005
öffnen, auslesen und schließen.
Uses Excel2000, COMObj
var Excel:variant;
Excel:=CreateOLEObject('Excel.application');
Excel.Workbooks.Open(Pfad);
Excel.Workbooks.close;
Problem: Die Excel-Files enthalten irgendeine Funktion, welche Excel
beim
Post by Dirk Schauries
Post by Heiko Schmidtke
Schließen veranlasst nachzufragen, ob man die "Änderungen" speichern
möchte.
Post by Heiko Schmidtke
Auch wenn man gar nichts verändert hat. Leider erscheint die Meldung
auch
Post by Dirk Schauries
Post by Heiko Schmidtke
unter Delphi beim Aufruf von Excel.Workbooks.close;
Unter Excel-VBA funktioniert Workbooks.close(false). Dieses unterdrückt
die
Post by Heiko Schmidtke
Speicherrückfrage.
Mir ist es aber noch nicht gelungen, dieses auch unter Delphi zu
realisieren. Zumindest Excel.Workbooks.close(0); funktioniert nicht.
(Fehlermeldung: Falsch Parameteranzahl!?)
Hat jemand eine Idee?
Gruss,
Heiko
Loading...