今天遇到一個問題,就是需要把多個Word文檔的內容追加到一個目標Word文檔的後面,如果我有目標文檔a.doc以及其他很多個文檔b.doc,c.doc…等等數量很多。這個問題,如果是在服務端的話,直接使用OpenXML技術,讀寫文檔就可以實現,這樣性能較穩定,但是需要對OpenXML有一定的了解。如果在客戶端機器上,可以使用Word PIA實現。
由於本人對於Word PIA較熟悉,所以采用了該方法。但是在實現的過程中,也是有很多種思路的。
將b.doc打開,將其中的內容選中,復制到剪貼板,然後打開目標文件a.doc,通過代碼將光標移到文檔末尾,粘貼。粘貼一次保存一下文件,然後在打開c.doc重復以上過程,知道所有文件均添加完成。
將b.doc打開,將其中的內容選中,獲取Range對象,然後打開目標文件a.doc,在裡面通過代碼插入b的內容。
以上兩種方法都涉及到打開和讀取待合並的文檔。完成之後還需要及時關掉已釋放資源。對於一些復雜的對象,比如說具有行或者列合並的表格對象,采用第二種方式在目標文檔中創建表格,然後循環遍歷待合並文檔中的表格,並給目標文檔中的表格進行賦值會出現問題。效果都不太好。
在查找了一些資料後,發現Word自帶有添加文檔內容到打開文檔中的功能。
這樣就簡單多了,通常最簡單的做法是錄制宏。
操作步驟如下:
點擊錄制宏
打開目標文件a.doc
然後按住鍵盤 Ctrl+End 鍵,跳轉到文檔a的末尾。
點擊 Insert(插入)->Object(對象)->Text from file(文件中的文字)
選中待插入的文件b.doc,確定
停止錄制宏
本欄目