Geöffnete Excel Datei erkennen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Kraus_
User
Beiträge: 2
Registriert: Montag 8. März 2010, 18:22

Hallo,

da ich leider kein Excel Forum gefunden habe, trage ich hier meine Frage ein. Bin neu hier...

Frage: Wie kann ich herausfinden, ob die Excel Datei, die ich bearbeiten möchte, schon geöffnet ist?

Hintergrund: In einer anderen Anwendung habe ich schon ein funktionierendes Python skript geschrieben, welches Excel öffnet ausliest und wieder schließt. Nun möchte ich aus dieser Excel Datei selbst dieses skript starten. Nun kommt es zu dem Problem, dass das vorhandene skript die offene Excel Datei erkennt und eine Abfrage "...möchten sie die datei neu landen" Ja/Nein generiert, was ich unterbinden möchte und auch zu Fehlern führt.

Habe schon nach win32com Beschreibungen gesucht bzw. file open usw. aber leider nichts gefunden.

Grüzi
Kraus_
User
Beiträge: 2
Registriert: Montag 8. März 2010, 18:22

Hätte gedacht, dass es etwas einfacher sei und ich mich vor Lösungsvorschlägen nicht retten könne...

Habe gestern die Excel Methoden nach Hinweisen durchgeschaut. Mit "workbooks.open()" geht es über den Umweg mit einem Fehlercode in VBA. Unter Python funktioniert es aber anscheinend nicht.
Benutzeravatar
noisefloor
User
Beiträge: 3856
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

grundsätzlich sollte das so funktionieren, dass du nachschaust, ob das Betriebssystem einen File-Handle auf die entsprechende Datei offen hat.

Wie du das am einfachsten mit Python realisierst kann ich dir aber nicht sagen...

Gruß, noisefloor
Benutzeravatar
snafu
User
Beiträge: 6741
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Eine reine Python-Lösung kenne ich nicht, aber hilft dir vielleicht das Windows-Tool Handle?

Auszug aus der Doku:
Name
Mit diesem Parameter geben Sie an, dass Handle nach Verweisen auf ein Objekt mit einem bestimmten Namen suchen soll. Wenn Sie beispielsweise erfahren möchten, ob „c:\windows\system32“ durch einen Prozess geöffnet wurde (und wenn ja, durch welchen), geben Sie Folgendes ein:

handle windows\system

Beim Namen wird nicht zwischen Groß- und Kleinschreibung unterschieden, und der angegebene Namensteil kann sich an einer beliebigen Stelle in den angegebenen Pfaden befinden.
Antworten