MS Office speichern abfangen

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
diComm
User
Beiträge: 10
Registriert: Mittwoch 10. Januar 2007, 09:46

Hallo

Ich arbeite an einer Software mit Delphi, in der ich Python als Scriptsprache benutze um das ganze etwas dynmaisch zu gestalten.

Ich habe eine Datenbank, in der MS Word Dokumente als Vorlagen sind, die ich mit Python beim öffnen mit Daten aus der DB abfülle... anschliessend soll der Kunde diese die abgefüllten Dokumente bearbeiten können und in die DB speichern...
das Problem ist, wie mache ich das mit dem zurückspeichern. Wie fange ich das speichern von Word ab... ohne VBA zu benutzen wenns geht. Man soll das Dokument wie gewohnt speichern können, nur anstatt auf die Festplatte soll es in eine Tabelle in der DB sein.

öffnen und abfüllen habe ich bereits mit Hilfe von win32com zurecht bekommen.
Weiss jemand Rat?

MfG
diComm
lunar

diComm hat geschrieben:Man soll das Dokument wie gewohnt speichern können, nur anstatt auf die Festplatte soll es in eine Tabelle in der DB sein.
Ich habe keine Antwort auf deine Frage, sondern eine Gegenfrage ;)

Du willst MS-Word-Dokumente in Datenbank-Tabellen umsetzen? :shock:
Abgesehen davon, dass sich das reichlich obskur anhört, würde mich doch mal interessieren, wie man das anstellt...
Benutzeravatar
Masaru
User
Beiträge: 425
Registriert: Mittwoch 4. August 2004, 22:17

Wie man das anstellt ... tjoa ... mit Python würde ich persönlich nicht den Aufwand betreiben.

Für so einen Workflow sind nunmal die Microsoft ausgelegten Sprachen eher prädestiniert.

Eine Möglichkeit es anzustellen wäre nämlich, mit Word-Makros das Event des "Speicherns" abzufangen und einen eigenen Folgeablauf dann zu implementieren. Z.B. .. was weiss ich ... in den Tmp-Ordner mit einer UUID abspeichern, ein Flag setzen oder einen direkten API-Aufruf auf die Delphi-Anwendung zu hauen, dass besagte Datei wieder zurückgespeichert werden kann.

Letztendlich handelt es sich eher um eine Erweiterung als um eine tatsächliche Umleitung des "Speicherns" in ein Datenbankfeld ;).

Wenn man die Makros nicht mag (VBA), könnte man laut Google *g* auch den Objektinspektor von Delphi gleich verwenden, mit dem man Events wie z.B. das Speichern eines Worddokumentes ebenfalls abfangen kann.


Aber Python ... so gern ich doch meine Primärprogrammiersprache auch hab, würde ich eine andere Programmiersprache als Herrangehensweise empfehlen.

Hmm ... warum z.B. nicht gleich mit Delphi?

Ja mata,
>>Masaru<<
diComm
User
Beiträge: 10
Registriert: Mittwoch 10. Januar 2007, 09:46

lunar hat geschrieben: Du willst MS-Word-Dokumente in Datenbank-Tabellen umsetzen? :shock:
Abgesehen davon, dass sich das reichlich obskur anhört, würde mich doch mal interessieren, wie man das anstellt...
In dem ich die Dokumente in Delphi in einen Stream lade in diesen dann in ein Blobfeld in der DB speichere... um die Dokumente wieder zu lesen müssen sie wieder aus der DB via Stream auf die Festplatte... bei mir in den Temp Ordner.

VBA wäre eine möglichkeit... möchte ich aber nicht verwenden.

So wies aussieht werde ich dafür doch Delphi verwenden... Dort gibt es eine Komponente TWordApplication mit der man Word "fernsteuern" kann und auch Events abfangen kann...
Masaru hat geschrieben: Aber Python ... so gern ich doch meine Primärprogrammiersprache auch hab...
bei mir ist zwar Python nur meine Sekundärprogrammiersprache, aber sie ist mir irgendwie ans Herz gewachsen :)
lunar

diComm hat geschrieben:
lunar hat geschrieben: Du willst MS-Word-Dokumente in Datenbank-Tabellen umsetzen? :shock:
Abgesehen davon, dass sich das reichlich obskur anhört, würde mich doch mal interessieren, wie man das anstellt...
In dem ich die Dokumente in Delphi in einen Stream lade in diesen dann in ein Blobfeld in der DB speichere... um die Dokumente wieder zu lesen müssen sie wieder aus der DB via Stream auf die Festplatte... bei mir in den Temp Ordner.
Ach so ;) Du speicherst sie in einem BLOB... Ich dachte schon, du konvertierst das Word-Dokument automagisch in eine Tabelle ;)
Antworten