Anzeige

Excel mit bestimmter Datei öffnen


#1
Hallo erstmal!

Ich bin noch neu und bitte daher schonmal vorab um ein wenig Nachsicht wenn meine Frage für die alten Hasen vielleicht lästig sein sollte weil sie wahrscheinlich schonmal beantwortet wurde, aber ich kann leider keine Antwort für mein Problem finden, daher jetzt meine Frage hier....
Bin auch noch ein absoluter C & Visual Studio Neuling und verzweifel daher im Moment so ein wenig.

Mein Problem:
Ich versuche zur Zeit eine einfache kleine Anwendung zu erstellen die im Grunde nicht viel leisten muss. Erstmal wird der Benutzer durch eine Reihe Abfragen geschleust (der Teil funktioniert auch soweit) bis dann zum Schluss ein Aufruf einer externen Excel Datei (je nachdem wie die vorherigen Abfragen beantwortet werden, kommen unterschiedliche Dateien zum Einsatz) ansteht. Das ganze soll mittels Button funktionieren auf den der Benutzer klickt und der dann eine Excel Datei öffnet und anzeigt. Vom Prinzip ist es mir eigentlich egal ob die Anzeige in Excel selbst oder in dem erstellten Programm erfolgt. Excel wäre aber auch auf jedem PC auf dem das Programm zum Einsatz kommt installiert. Die Excel Datei selbst liegt in einem lokalen Netzwerk vor und wird regelmäßig aktualisiert, was einen Import ausschliesst da sich die Daten durchaus mal verändern können...

Jetzt hab ich schon 2 Tage wie blöd gegoogelt und hab auch rausgefunden das es wohl mit der Microsoft.Office.Interop.Excel Referenz funktionieren sollte. Allerdings krieg ich es nicht gebacken. Hab das ganze bei den Verweisen hinzugefügt. Aber krieg das nicht mit dem Aufruf hin, vielleicht kann mir hier ja jemand erklären wie das ganze funktioniert, also was genau in die *.xaml.cs datei reinmuss damit das ganze auch gelingt und nicht nur in unzähligen fehlermeldungen resultiert ?

Wäre für jede Hilfe echt dankbar!!!

Edit:
Vielleicht noch wichtig...die Dateien müssen nur lesend zur Verfügung stehen, es besteht kein Bedarf daran die Excel Datei zu ändern.
 

ComFreek

Mod | @comfreek
Moderator
#2
Die Excel Datei selbst liegt in einem lokalen Netzwerk vor
Ist das Netzwerk als Laufwerk unter Windows eingehängt? Wenn ja, ist das Öffnen super einfach: du musst nur "excel.exe [Pfad zur datei]" starten.
Stichwörter hierzu sind: "C# start process with arguments".

Falls das Netzwerk nicht eingehängt ist, so könntest du z. B. die Datei mit C# herunterladen und dann dasselbe Verfahren wie oben anwenden. Stichwörter hierzu sind: "C# download file to temp file".
Da du nur lesenden Zugriff benötigst, musst du dir auch keinen Kopf um die Synchronisation nach dem Speichern machen. Beachte allerdings, dass wenn das Netzwerk doch eingehängt ist, dass Nutzer Änderungen selbstverständlich (versehentlich) zurückschreiben könnten.

Ich bin aus deinem Post nicht ganz schlau geworden, welche Programmiersprache du eigentlich nutzt ;)
Bin auch noch ein absoluter C & Visual Studio Neuling
C oder C#? Ich bin bei den Stichwörter oben mal von C# ausgegangen.
 
#3
Super! und erstmal vielen Dank für deine Hilfe!!!!

C oder C#? Ich bin bei den Stichwörter oben mal von C# ausgegangen.
jau das war auch genau richtig!! und nochmal sorry für die verwirrung....wie gesagt - bin absoluter noob was das ganze angeht....und probier so vor mich hin. Dein Tipp war auch gold wert, hab das ganze viel zu kompliziert gedacht....dabei war die Lösung dann doch so einfach....

Der Aufruf von Excel klappt jetzt auch wie es geplant ist....jetzt muss ich grad nur noch austüfteln wie ich outlook dazu bringe eine neue leere Email aufzumachen mit Betreff der aus meinem Tool kommt....dann bin ich schon fast durch mit meinen Problemen...dann ist das ganze quasi nur noch eine Fleissarbeit die etwas Zeit kostet....aber denke ja mal das wird in eine ähnliche Richtung gehen wie mit excel und der datei....von daher werde ich jetzt erstmal wieder google bemühen und schauen wie ich auch das noch auf die reihe bringe....
Vielen Dank nochmal!!!!
 

ComFreek

Mod | @comfreek
Moderator
#4
Super, dass dir das geholfen hat!

Für dein neues Problem sehe ich 3 Möglichkeiten auf Anhieb:

  • Die einfachste, wenn Outlook als Standard-Mailprogramm eingerichtet ist: Lass Windows einen "mailto:..."-Link öffnen, in welchem du den Betreff kodiert hast. "Windows C# open mailto" oder falls das nichts bringt, würde ich "Windows shell open" probieren.
  • Du kannst i. Allg. alle Office-Anwendungen mit einem Template-Dokument starten (siehe Command-line switches for Microsoft Office products).

    Wenn ich eine E-Mail als blub.msg abgespeichert habe, kann ich ein neues Mailfenster via
    Code:
    outlook.exe /t D:\Desktop\blub.msg
    öffnen.

  • Outlook via API fernsteuern. Das sollte von C# relativ einfach möglich sein. "C# Office automatization".
 

Endurion

Erfahrenes Mitglied
#5
In beiden Fällen sollte es ausreichen, per System.Diagnostics.Process die Kommandozeile

start meinedatei.xls

bzw.

start mailto:meine@email.adresse

aufzurufen. Start öffnet das Default-Programm für das jeweilige Protokoll bzw. den Dateityp.
 
Anzeige
Anzeige