博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C# 复制一个Word文档的部分或全部内容到另一个Word文档
阅读量:6155 次
发布时间:2019-06-21

本文共 1648 字,大约阅读时间需要 5 分钟。

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公司的免费控件,原因是它简单好用,而且我也使用的比较熟练了。接下来我还会研究它的其它功能,并用C#实现Office软件的其它功能。

转载地址:http://dgbfa.baihongyu.com/

你可能感兴趣的文章
AC日记——产生数 codevs 1009 (弗洛伊德)(组合数学)
查看>>
浅谈JAVA GUI中,AWT与Swing的区别、联系及优缺点
查看>>
GitHub 集成在Windows Azure Web Site中
查看>>
2015年总结以及2016年计划
查看>>
软件工程学习进度11
查看>>
第二阶段个人冲刺总结05
查看>>
Oracle的控制文件和日志文件
查看>>
ID基本操作(在框架内处理文本)5.28
查看>>
入门HTML 简单的结构
查看>>
Data_Structure01-绪论作业
查看>>
浏览器兼容
查看>>
【cl】工程导入
查看>>
C++学习:lambda表达式入门
查看>>
java.lang.NoClassDefFoundError: org/json/JSONException
查看>>
团队作业第五次—项目系统设计与数据库设计
查看>>
HIVE udf实例
查看>>
zookeeper中的QuorumPeerMain解析
查看>>
Bzoj1974 [Sdoi2010]auction 代码拍卖会
查看>>
Celery 分布式任务队列快速入门
查看>>
【Leetcode】Count and Say
查看>>