我創建了VSTO加載項,它將通過REST API將文檔發送到服務器。 我需要發送當前打開的文檔(例如docx
)作爲文件。在MS Office Add-In中獲取當前活動的文檔文件
第一個問題是獲取活動文檔的全名。 如果找到的唯一途徑:
Path.Combine(Globals.ThisAddIn.Application.ActiveDocument.Path,
Globals.ThisAddIn.Application.ActiveDocument.Name)
這個代碼可以本地驅動器上恢復良好的路徑:D:\Docs\Doc1.docx
但也可以返回HTTP路徑在雲文檔(例如OneDrive
):https://d.docs.live.net/xxxxx/Docs\Doc1.docx
即使它只會將本地文件我無法獲得此文件的文件。我試過這段代碼:
using (var stream = new StreamReader(docFullPath)) { }
而且在本地存儲文件的情況下,我得到了System.IO.IOException: The process cannot access the file because it is being used by another process
。沒有驚喜。
而在雲存儲文件的情況下,我得到了System.NotSupportedException: The given path's format is not supported
。當然!
我相信我做錯了,我的目標是可以達到的。 我的問題是:如何在不關閉應用程序的情況下從加載項讀取當前打開的MS Office應用程序文件的文件?
順便說一下,您可以通過使用'Document.FullName'屬性來獲取文檔的全名。 –