2011-06-09 76 views
3

中添加模板,我想模板從大量使用簡單的C#-program字文檔的改變。更改或Word文檔

該文件都是基於爲標題樣式,字體等標準模板......我們想改變這個模板(更具體:標題顏色等小東西),並修改現行文件利用這個新的模板。

在Word,這是很容易通過點擊「文檔模板」在功能區中的設計器選項卡來實現。 I used this guide to do this.這個精美的作品和不正是它應該做的:根據新的模板更改標題的顏色等。

所以,問題很簡單:如何從一個.net應用程序中做同樣的事情(附加其他模板和改變風格)?

我想我應該使用的Microsoft.Office.Interop.Word命名空間,但我卡住了...

+0

使用Interop程序集不是一個好主意,特別是如果它是一個asp.net應用程序。你可能想使用一些開源的ooxml實現或者aspose等商業庫。 – adt 2011-06-10 08:25:40

回答

1

我是自己來解決它,並不算難apparantly。這是我使用的代碼:

 object missing = System.Reflection.Missing.Value; 
     Word.Application wordApp = new Word.ApplicationClass(); 
     Word.Document aDoc = null; 
     object readOnly = false; 
     object isVisible = false; 

     wordApp.Visible = false; 
     object filename = "d:\\Testdocs\\testfile.doc"; 
     object saveAs = "d:\\Testdocs\\output.doc"; 
     object oTemplate = "d:\\Testdocs\\Template.dotx"; 

     aDoc = wordApp.Documents.Add(ref oTemplate, ref missing, 
            ref missing, ref missing); 

     aDoc = wordApp.Documents.Open(ref filename, ref missing, 
             ref readOnly, ref missing, ref missing, 
             ref missing, ref missing, ref missing, 
             ref missing, ref missing, ref missing, 
             ref isVisible, ref missing, ref missing, 
             ref missing, ref missing); 

     aDoc.Activate(); 
     aDoc.set_AttachedTemplate(oTemplate); 
     aDoc.UpdateStyles(); 

     aDoc.SaveAs(ref saveAs, ref missing, ref missing, 
        ref missing, ref missing, ref missing, 
        ref missing, ref missing, ref missing, 
        ref missing, ref missing, ref missing, ref missing); 

     aDoc.Close(ref missing, ref missing, ref missing); 
+0

是否有可能使用「文件名」的相對路徑?我一直在嘗試,它似乎工作。 – Oneil 2016-01-05 21:37:52