2010-07-23 43 views
2

這是一件非常簡單的事情,我找不到合適的技術。我想要的是打開一個.dotx模板,進行一些更改並保存爲相同的名稱,但.docx擴展名。我可以保存一個WordprocessingDocument,但僅限於從其加載的位置。我試過使用WordprocessingDocument手動構建一個新文檔,但做了更改但目前爲止沒有任何工作,我嘗試了MainDocumentPart.Document.WriteTo(XmlWriter.Create(targetPath));,並且剛剛得到一個空文件。Open XML SDK:打開Word模板並保存到不同的文件名

這裏有什麼正確的方法?就SDK而言,一個.dotx文件是特別的還是僅僅是另一個文檔 - 我應該簡單地將模板複製到目標,然後打開並進行更改並保存?我確實有一些擔心,如果我的應用程序是從兩個客戶端一次調用,如果它可以打開同一個.dotx文件兩次......在這種情況下,創建副本將是明智的反正......但爲了我自己的好奇心,我仍然想要知道如何做「另存爲」。

回答

5

我會建議使用File.IO將dotx文件複製到docx文件,並在那裏進行更改,如果這適用於您的情況。還有一個ChangeDocumentType函數需要調用,以防止新的docx文件中出現錯誤。

  File.Copy(@"\path\to\template.dotx", @"\path\to\template.docx"); 

      using(WordprocessingDocument newdoc = WordprocessingDocument.Open(@"\path\to\template.docx", true)) 
      { 
       newdoc.ChangeDocumentType(WordprocessingDocumentType.Document); 
       //manipulate document.... 
      } 
相關問題