| 

.NET C# Java Javascript Exception

3
Hi,

meine Anwendung (Delphi und/oder PowerBuilder) öffnet über OLE einen Excel COM-Server und lädt dort eine bestimmte XLS-Datei.

In Excel kann der User nun die Daten ändern und ggf. auch speichern.

Nun möchte ich einige der Daten die der User eingegeben hat, bzw. das Ergebnis von Formeln, aus bestimmten Zellen heraus lesen.

Technisch ist das ja alles kein Problem, nur suche ich den richtigen Zeitpunkt... Wie kann ich mitbekommen, dass der User gespeichert und Excel verlassen hat, so dass ich dann die Werte auslesen kann?

Ein Idee wäre in einer Schleife zu Testen ob ich die XLS-Datei mit Schreibrechten öffnen kann, aber das scheint mir sehr sperrig...

Jemand eine sauberere Lösung/Idee?

Vielen Dank für jede Antwort!
12.07.2012
adeptus 71 5
1 Antwort
0
Ich betreue eine ursprünglich in VB6 entwickelte Anwendung (mittlerweile nach .NET migriert), die Excel als Berichtsgenerator "missbraucht". Eine Besonderheit ist die Zweiwege-Kommunikation der Anwendung mit Excel, d.h. Datenänderungen sowohl in der Anwendung als auch in Excel werden sofort im jeweils anderen Teil sichtbar. Hierzu wurde eine Komponente entwickelt, welche die Kommunikation über Events steuert und sowohl von der Anwendung als auch von Excel referenziert wird.

Die vom Anwendr erzeugten Excel-Sheets basieren auf einem Template, welches ein wenig VBA-Code und ein paar Makros enthält. Wenn der Anwender Daten in Excel ändert, wird ein Event ausgelöst, welches von der Anwendung abgefangen wird. Dort werden dann die Daten aus dem Excel-Sheet ausgelesen. Umgekehrt funktioniert dies ähnlich. Da Excel fest in der Anwendung eingebunden ist (d.h. wir zeigen eine Excel-Instanz innerhalb eines Fensters der Anwendung an), können wir sicherstellen, dass der Anwender immer das Template verwendet, da wir automatische eine neue Datei auf Basis des Templates erzeugen.

Gruß
Klaus
15.07.2012
luedi 2,2k 1 9

Stelle deine Excel-Frage jetzt!