所有實例和實現我見過使用一些喜歡類型的代碼:使用Open XML讀取已打開的Word文檔?
//filePath is some path to a docx file
using (WordprocessingDocument wpd = WordprocessingDocument.Open(filePath, true))
{
//Do stuff here
}
這需要您的文件被關閉。我希望能夠在已經打開的文檔上使用Open XML SDK操作,因爲我想在用戶正在主動查看文檔時做些事情,而且我不一定要保存它。
這可能嗎?我知道Word可能會鎖定文檔,如果它是開放的,所以你無法打開文件(即使是隻讀)。有沒有辦法解決它?
如果我能以某種方式在已經打開的文檔上使用Open XML SDK,那將會非常好。我有一個想法是臨時保存已打開的文件,並在臨時文件上運行OpenXML,並以某種方式與使用Office API的現有文檔進行協調。沒有想到通過這種方法,但它不是我想要做的理想方式。
我也知道在Word API上通過執行Word.Range.XML
來返回XML字符串的屬性。但是,我不確定如何將此字符串值加載到SDK,以便我可以利用其方法來幫助我。
當一個文件是隻讀方式打開的,它是開放的只讀和Word(和大多數其他Office應用程序)做確實打開的文件,在該模式下。 AFAIK,不可能告訴操作系統只讀應該被忽略。 (這其實很好 - 你能想象出能夠說出「Gee」的可能影響,忽略有人說他們想要鎖定文件以允許其他人以只讀方式訪問,並且無論如何都允許我訪問。「?) – 2012-03-28 02:19:42
是啊,我完全理解爲什麼它被鎖定。我想我有一些想法,因爲我們可以通過Word API操縱文件,我可以用Open XML做同樣的事情,但那是錯誤的。 – Shark 2012-03-28 02:33:47