一、開發環境布置
C#中添加對Word的支持,只需添加對Microsoft.Office.Interop.Word的命名空間,如下圖所示,右鍵點擊“引用”,在彈出的“添加引用”對話框中選中COM標簽頁,找到“Microsoft Word 12.0 Object Library”。
點擊確定按鈕后,可在引用中添加顯示名稱為Microsoft.Office.Interop.Word的引用:
二、Word的對象模型介紹
Word中共有5種常用的對象模型:應用程序對象Application、文檔對象Document、Selection對象、Range對象和Bookmark對象。
下圖顯示了 Word 對象模型層次結構中這些對象的一個視圖。
初看起來,對象似乎重疊在一起。 例如,Document 和 Selection 對象都是 Application 對象的成員,但 Document 對象也是 Selection 對象的成員。 Document 和 Selection 對象都包含 Bookmark 和 Range 對象。 因為有多種方法可以訪問相同類型的對象,所以存在重疊。 例如,你將格式設置應用於 Range 對象;但你可能想要訪問當前選定內容、某一特定段落,某一節或整個文檔的范圍。
下面分別介紹五種模型對象的含義和作用。
2.1 Applicatin對象。
Application 對象表示 Word 應用程序,並且是所有其他對象的父級。 其成員通常作為一個整體應用於 Word。 你可以使用其屬性和方法來控制 Word 環境。
在文檔級項目中,可以通過使用 ThisDocument 類的 Application 屬性來訪問 Application 對象。
2.2 Document對象
Microsoft.Office.Interop.Word.Document 對象是 Word 編程的中心。 它表示一個文檔及其所有內容。 當你打開文檔或創建新文檔時,將創建新的 Microsoft.Office.Interop.Word.Document 對象,並將其添加到 Application 對象的 T:Microsoft.Office.Interop.Word.Documents 集合。 具有焦點的文檔被稱為活動文檔。 它由 Application 對象的 P:Microsoft.Office.Interop.Word._Application.ActiveDocument 屬性表示。
2.3 Selection對象
Selection 對象表示當前所選的區域。 在 Word 用戶界面中執行操作(如文本加粗)時,可以選擇或突出顯示文本,然后應用格式設置。 文檔中始終存在 Selection 對象。 如果未選中任何內容,則它表示插入點。 此外,選定內容可包含多個不相鄰的文本塊。
2.4 Range對象
Range 對象表示文檔中的相鄰區域,並由起始字符位置和結束字符位置進行定義。 並不僅限於單個 Range 對象。 你可以在同一文檔中定義多個 Range 對象。 Range 對象具有以下特性:
· 它可以只包含單獨的插入點,也可包含一個文本范圍或整個文檔。
· 它包括非打印字符,如空格、制表符和段落標記。
· 它可以是當前選定內容所表示的區域,也可以表示不同於此內容的區域。
· 它在文檔中不可見,這與選定內容不同,后者總是可見。
· 它不隨文檔一起保存,且僅在代碼運行時才存在。
· 當在某個范圍的末尾插入文本時,Word 會自動擴展該范圍以包括插入的文本。
2.5 Bookmark對象
Microsoft.Office.Interop.Word.Bookmark 對象表示文檔中的相鄰區域,同時具有起始位置和結束位置。 你可以使用書簽標記文檔中的某個位置,也可將其作為文檔中文本的容器。 Microsoft.Office.Interop.Word.Bookmark 對象可以包含插入點,也可以與整個文檔一樣大。Microsoft.Office.Interop.Word.Bookmark 具有下列特征,以將其與 Range 對象區別開來:
· 你可以在設計時命名書簽。
· Microsoft.Office.Interop.Word.Bookmark 對象隨文檔一起保存,因此在代碼停止運行或文檔關閉時不會被刪除。
· 通過將 T:Microsoft.Office.Interop.Word.View 對象的 P:Microsoft.Office.Interop.Word.View.ShowBookmarks 屬性設置為 false 或 true,可以隱藏或顯示書簽。
以上部分內容摘自MSDN,主要介紹了Word中主要的五種對象模型,下節開始介紹C#中操作Word的方法。