Ich erstelle VSTO Add-In, die Dokumente über REST API an den Server senden wird. Ich brauche aktuell geöffnetes Dokument (z. B. docx
) nur als Datei senden.Aktuelle Dokumentdatei in MS Office-Add-In
Das erste Problem bestand darin, den vollständigen Namen des aktiven Dokuments zu erhalten. Wenn der einzige Weg gefunden:
Path.Combine(Globals.ThisAddIn.Application.ActiveDocument.Path,
Globals.ThisAddIn.Application.ActiveDocument.Name)
Dieser Code guten Weg auf dem lokalen Laufwerk zurückkehren kann: D:\Docs\Doc1.docx
Aber es kann auch HTTP-Pfad zurückkehren in einer Wolke (zB OneDrive
) zu dokumentieren: https://d.docs.live.net/xxxxx/Docs\Doc1.docx
Auch wenn es würden nur lokale Dokumente die Datei dieses Dokuments nicht bekommen. Ich habe versucht diesen Code:
using (var stream = new StreamReader(docFullPath)) { }
Und bei lokal gespeicherten Dokument, das ich System.IO.IOException: The process cannot access the file because it is being used by another process
bekam. Nicht überraschend.
Und im Falle von Wolke gespeicherten Dokument habe ich System.NotSupportedException: The given path's format is not supported
. Natürlich!
Ich glaube, ich mache alles falsch und mein Ziel ist erreichbar. Meine Frage ist: Wie lese Datei des aktuell geöffneten Dokuments in MS Office App von Add-In ohne App zu schließen?
Übrigens können Sie den vollständigen Namen des Dokuments mit der Eigenschaft 'Document.FullName' abrufen. –