Files via FTP direkt in und von Office laden Verfasst am: 25.08.2010, 07:52
Guten Morgen zusammen.
Ich habe folgende Aufgabenstellung von meinem Chef bekommen.
Ich soll ein Add-In sowohl für Word, Excel und PowerPoint (Office 2007) basteln, welches beim klicken eines Buttons, sich auf einen FTP Server verbindet, dort die verfügbaren Files abcheckt (also wenn ich von Word aus connecte dann nur Word Dokumente...werde ich wahrscheinlich mit einer Datenbank regeln aber das weiss ich noch net so genau) und ein ausgewähltes File runterlädt.
Das File soll dann direkt in der entsprechenden Office Applikation geöffnet werden und wenn das File fertig bearbeitet ist und der Benutzer auf den Upload Button klickt, wieder auf den Server geladen werden.
Die Up und Download Methoden sollten mit My.Computer.Network ja an und für sich recht einfach funktionieren.
Meine Idee war hier, dass ich das File temporär beim runterladen in einem Arbeitsverzeichnis speichere, wenn das File fertig bearbeitet wurde wird es direkt im Arbeitsverzeichnis überschrieben und wenn der User auf Upload klickt dann wird das File von diesem Arbeitsverzeichnis aus wieder hochgeladen und nach erfolgreichem Upload vom Arbeitsverzeichnis gelöscht.
Meine Schwierigkeit liegt jetzt darin, wie ich aus dem VB.NET Code (ich verwende by the way Visual Studio 2010) heraus der Office Applikation sagen soll, dass es das File nach erfolgreichem runterladen und speichern im Arbeitsverzeichnis öffnen soll und beim Uploaden das File vorher speichern soll.
Es geht mir somit konkret nur um die Öffnen und Speichern Methoden von Office Applikationen, denn das Uploaden des Files übernimmt der Source Code ja an sich selbst.
Any Ideas?
Grüße
Oliver _________________
christopher.g Überflieger
Anmeldedatum: 03.05.2008 Beiträge: 536
Verfasst am: 25.08.2010, 10:04
hmm kann mir nicht vorstellen dass das funktionieren soll...
warum...
weil im office "VBA" also schwaches vb6 verwendet wird und nicht vb.net
so
an deiner stelle würde ich mit vb.net ein eigenes seperates prog schreiben
dass sich mit dem ftpserver verbindet
dir in einer listbox oder listview was auch immer
die daten einliest
mit dbl click oder so die datei schnell runterlädt
diese mit shellexecute oder wie es auch immer in .net geht
ich würde dann mit timer und windowhandle prüfen ob die datei noch offen ist...
wenn nicht mehr dann upload und entfernen
ich hoffe ich konnte dir damit helfen
lg
ratzeputz Newbie
Anmeldedatum: 25.08.2010 Beiträge: 2
Verfasst am: 25.08.2010, 10:10
Hi Cristopher und danke für deine Antwort.
Ich habs jetzt zumindest mal soweit geschafft, dass ich direkt in einer Office Applikation eine Datei öffnen kann.
Natürlich habe ich dies in einer eigenen Klasse bewerkstelligt, die meine ganzen anderen Methoden beinhaltet.
Hier z.B. die Methode zum Word (sorry ich sehe leider kein codetag für das Forum)
Public Shared Sub OpenWordDoc(ByVal objFileInfo As FileInfo, ByVal application As Object)
Dim objWordAppl As Microsoft.Office.Interop.Word.Application = application
Try
objWordAppl.Visible = True
objWordAppl.Documents.Open(objFileInfo.FullName)
Catch ex As Exception
End Try
End Sub
übergeben tu ich direkt aus der Connect Klasse die das Visual Studio beim erstellen eines gemeinsamen Add-Ins automatisch erstellt.
Da übergebe ich einfach ein neues FileInfo Object mit dem Pfad zur Datei und die aktuell geöffnete Applikation (also word in diesem Beispiel) als Object.
Damit öffnen sich die Dateien direkt in der Office App.
Jetz muss ich nur noch rausfinden welches Event geworfen wird, wenn man in der Applikation auf speichern klickt.
Ist doch kein schlechter Ansatz oder?
Deine Idee mit dem Timer gefällt mir ganz gut.
Behalte ich mir in jedem Fall im Hinterkopf _________________