C# 復制一個Word文檔的部分或全部內容到另一個Word文檔


C# 復制一個Word文檔的部分或全部內容到另一個Word文檔

我最近喜歡折騰Office軟件相關的東西,想把很多Office軟件提供的功能用.NET來實現,如果后期能把它用來開發一點我自己的小應用程序那就更好了。

扯遠了,回到正題。復制文檔內容這個功能太常見啦,在微軟Word中實現這個功能很簡單,只需要復制和粘貼就行了。這篇文章的主要目的是記錄如何用C#來實現復制一個Word文檔的部分或全部內容到另一個word文檔,廢話不多說,下面開始。

第一部分:復制部分內容:

在我的這個示例中,復制部分內容指的是復制一個word文檔的部分段落(包括格式、圖片和超鏈接等)到另一個word文檔。

原文檔截圖:

                 

 

步驟參考:

第一步:新建一個word文檔對象doc1並加載需要復制的word文檔。

Document doc1 = new Document();
doc1.LoadFromFile("sample.docx");

 

第二步:新建一個word文檔對象doc2。

Document doc2 = new Document();

 

第三步:獲取被復制文檔doc1的第一個section以及第一、二個段落(圖片和標題)。

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軟件的其它功能。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM