C# 複製一個Word文檔的部分或所有內容到另外一個Word文檔html
我最近喜歡折騰Office軟件相關的東西,想把不少Office軟件提供的功能用.NET來實現,若是後期能把它用來開發一點我本身的小應用程序那就更好了。spa
扯遠了,回到正題。複製文檔內容這個功能太常見啦,在微軟Word中實現這個功能很簡單,只須要複製和粘貼就好了。這篇文章的主要目的是記錄如何用C#來實現複製一個Word文檔的部分或所有內容到另外一個word文檔,廢話很少說,下面開始。3d
第一部分:複製部份內容:component
在個人這個示例中,複製部份內容指的是複製一個word文檔的部分段落(包括格式、圖片和超連接等)到另外一個word文檔。orm
原文檔截圖:htm
步驟參考:對象
第一步:新建一個word文檔對象doc1並加載須要複製的word文檔。blog
Document doc1 = new Document(); doc1.LoadFromFile("sample.docx");
第二步:新建一個word文檔對象doc2。圖片
Document doc2 = new Document();
第三步:獲取被複制文檔doc1的第一個section以及第1、二個段落(圖片和標題)。開發
Section s = doc1.Sections[0]; Paragraph p1 = s.Paragraphs[0]; Paragraph p2 = s.Paragraphs[1];
第四步:給doc2添加一個section,並將doc1的第一二段的內容和格式等複製到doc2中。
Section s2 = doc2.AddSection(); Paragraph NewPara1 = (Paragraph)p1.Clone(); s2.Paragraphs.Add(NewPara1); Paragraph NewPara2 = (Paragraph)p2.Clone(); s2.Paragraphs.Add(NewPara2);
第五步:保存並從新打開文檔。
doc2.SaveToFile("copy.docx", FileFormat.Docx2010); System.Diagnostics.Process.Start("copy.docx");
目標文檔效果圖:
第二部分:複製所有內容
複製所有內容指的是將除header和footer之外的其餘全部內容複製到另外一個文檔。
步驟參考:
第一步:新建兩個word document對象,並加載待複製的源word文檔和目標word文檔。
Document sourceDoc = new Document("sample.docx"); Document destinationDoc = new Document("target.docx");
第二步:遍歷源word文檔中的全部section並把它們的內容複製到目標word文檔。
foreach (Section sec in sourceDoc.Sections) { foreach (DocumentObject obj in sec.Body.ChildObjects) { destinationDoc.Sections[0].Body.ChildObjects.Add(obj.Clone()); } }
第三步:保存並重啓目標word文檔。
destinationDoc.SaveToFile("target.docx"); System.Diagnostics.Process.Start("target.docx");
在word文檔之間單獨複製header和footer也能夠實現的,若有須要能夠在下面留言。
原文檔與效果圖:
效果圖:
結語:
文章寫的比較簡單,這裏我仍是使用了E-iceblue公司的免費Word控件,緣由是它簡單好用,並且我也使用的比較熟練了。接下來我還會研究它的其它功能,並用C#實現Office軟件的其它功能。