C#怎么合并多个word文档

问题描述

文档是通过读取模版用代码赋值后生成的新word,怎么将新生成的几个word合并成一个,然后存为PDF格式呢

解决方案

解决方案二:
我以前做过类似的项目但是我们做的是将word转成一个个pdf然后合并pdf的不知道你需要吗?需要的话我帮你找找源码
解决方案三:
引用1楼u012394290的回复:

我以前做过类似的项目但是我们做的是将word转成一个个pdf然后合并pdf的不知道你需要吗?需要的话我帮你找找源码

这个应该是更好的思路。如果不是代码实现的话,都是使用AdobeAcrobatX进行word和pdf互相转换,并实现pdf合并的。代码实现,可能也可以使用AdobeAcrobatX提供的库。
解决方案四:

解决方案五:
引用2楼zhi_ai_yaya的回复:

Quote: 引用1楼u012394290的回复:
我以前做过类似的项目但是我们做的是将word转成一个个pdf然后合并pdf的不知道你需要吗?需要的话我帮你找找源码

这个应该是更好的思路。如果不是代码实现的话,都是使用AdobeAcrobatX进行word和pdf互相转换,并实现pdf合并的。代码实现,可能也可以使用AdobeAcrobatX提供的库。

谢谢夸奖嘿嘿
解决方案六:
如果是企业项目,可以使用三方组件aspose.total(支持word、excel、ppt、pdf...操作及相互转换)
解决方案七:
合并文档很简单,例如(随手写的,可能有语法错误,看懂意思就好):privatestaticvoidStart(FileInfo[]Files){varapp=newword.Application();vardoc=app.Documents.Add();forea(vardinfiles){app.Selection.InsertFile(d.FullName);app.Selection.InsertBreak(word.WdBreakType.wdPageBreak);};doc.SaveAs2(FileName:Path.Combine(AppDomain.CurrentDomain.BaseDirectory,"合并结果.docx"));doc.Close();app.Quit();}

输出pdf,这也是上述doc的固有的SaveAs功能中的一项。这里就不给你写了。如果要进行比较专业的Office二次开发(而不是极其简单的个别操作),希望你好好研习Office的官方的组件和对象的使用方法,先不去纠结什么“第三方”组件。
解决方案八:
forea-->foreach这种程序成文自明。它依次插入一个文件,然后插入换页。Office的对象和方法,很简单、很“傻瓜”。其实越是这种非常“草根”的官方api越是多年成熟的标志。
解决方案九:
这种东西也很容易编写。你只要在Word菜单上“录制宏”,然后操作,人家Office就给你自动编写出来宏代码来了。然后你可以精炼一下,把VBA代码手工翻译为c#代码。就是上面这样的代码。
解决方案十:
把多个Word文档合并到一个Word文档示例//选择合并文档的保存位置开始合并Word文档privateWord.ApplicationG_wa;//定义Word应用程序privateobjectG_missing=//定义G_missing字段并添加引用System.Reflection.Missing.Value;privateOpenFileDialogG_OpenFileDialog;//定义打开文件对话框privateSaveFileDialogG_SaveFileDialog;//定义保存文件对话框privateList<string>G_Str_Files=newList<string>();//定义字符串集合privatevoidbtn_split_Click(objectsender,EventArgse){btn_Merge.Enabled=false;//停用合并按钮ThreadPool.QueueUserWorkItem(//开始线程池(pp)=>//使用lambda表达式{G_wa=newMicrosoft.Office.Interop.Word.Application();//创建应用程序对象Word.DocumentP_MainDocument=//新建合并文档对象G_wa.Documents.Add(refG_missing,refG_missing,refG_missing,refG_missing);foreach(stringP_StrinG_Str_Files)//遍历文档的集合{objectP_strs=P_Str;//创建object对象Word.DocumentP_Document=G_wa.Documents.Open(//打开Word文档refP_strs,refG_missing,refG_missing,refG_missing,refG_missing,refG_missing,refG_missing,refG_missing,refG_missing,refG_missing,refG_missing,refG_missing,refG_missing,refG_missing,refG_missing,refo);Word.RangeP_Range_temp=//得到文档全部范围P_Document.Range(refG_missing,refG_missing);P_Range_temp.Select();//选择文档全部范围P_Range_temp.Copy();//复制文档全部范围Word.RangeP_Range_temp2=//得到文档的范围P_MainDocument.Range(refG_missing,refG_missing);objectP_end=Word.WdCollapseDirection.wdCollapseEnd;//创建object对象P_Range_temp2.Collapse(refP_end);//折叠文档范围P_Range_temp2.Select();//选择档的最后位置P_Range_temp2.Paste();//粘贴文档内容((Word._Document)P_Document).Close(refG_missing,refG_missing,//关闭文档refG_missing);}objectP_SavePath=G_SaveFileDialog.FileName;//创建object对象P_MainDocument.SaveAs(//保存合并后的文档refP_SavePath,refG_missing,refG_missing,refG_missing,refG_missing,refG_missing,refG_missing,refG_missing,refG_missing,refG_missing,refG_missing,refG_missing,refG_missing,refG_missing,refG_missing,refG_missing);//CodeGo.net/((Word._Application)G_wa.Application).Quit(//退出应用程序refG_missing,refG_missing,refG_missing);this.Invoke(//调用窗体线程(MethodInvoker)(()=>//使用lambda表达式{Clipboard.Clear();//清空剪切板MessageBox.Show(//提示已经创建Word"成功合并Word文档!","提示!");btn_Merge.Enabled=true;//启用合并按钮}));});}//创建文件对话框对象privatevoidtxt_select_Click(objectsender,EventArgse){G_OpenFileDialog=newOpenFileDialog();G_OpenFileDialog.Filter=//筛选文件"*.doc|*.doc";DialogResultP_DialogResult=//打开文件对话框G_OpenFileDialog.ShowDialog();if(P_DialogResult==DialogResult.OK)//确认已经选择文件{lb_FileCollection.Items.Add(G_OpenFileDialog.FileName);G_Str_Files.Add(G_OpenFileDialog.FileName);btn_Save.Enabled=true;txt_path.Text=//显示将要打开的文件G_OpenFileDialog.FileName;}}//创建保存文件对话框对象privatevoidbtn_Save_Click(objectsender,EventArgse){G_SaveFileDialog=newSaveFileDialog();G_SaveFileDialog.Filter="*.doc|*.doc";DialogResultP_DialogResult=//打开保存文件对话框G_SaveFileDialog.ShowDialog();if(P_DialogResult==DialogResult.OK)//判断是否保存文件{btn_Merge.Enabled=true;//启用合并按钮txt_SavePath.Text=//显示保存文件路径G_SaveFileDialog.FileName;}}
解决方案十一:
比较简单的方法://Loadtwodocuments//LoadDocument1andDocument2DocumentDocOne=newDocument();DocOne.LoadFromFile(@"E:WorkDocumentwelcome.docx",FileFormat.Docx);DocumentDocTwo=newDocument();DocTwo.LoadFromFile(@"E:WorkDocumentNewZealand.docx",FileFormat.Docx);//Mergeforeach(SectionsecinDocTwo.Sections){DocOne.Sections.Add(sec.Clone());}//SaveandLaunchDocOne.SaveToFile("Merge.docx",FileFormat.Docx);详细参考:
解决方案十二:
引用6楼sp1234的回复:

合并文档很简单,例如(随手写的,可能有语法错误,看懂意思就好):privatestaticvoidStart(FileInfo[]Files){varapp=newword.Application();vardoc=app.Documents.Add();forea(vardinfiles){app.Selection.InsertFile(d.FullName);app.Selection.InsertBreak(word.WdBreakType.wdPageBreak);};doc.SaveAs2(FileName:Path.Combine(AppDomain.CurrentDomain.BaseDirectory,"合并结果.docx"));doc.Close();app.Quit();}

输出pdf,这也是上述doc的固有的SaveAs功能中的一项。这里就不给你写了。如果要进行比较专业的Office二次开发(而不是极其简单的个别操作),希望你好好研习Office的官方的组件和对象的使用方法,先不去纠结什么“第三方”组件。

大神说的方法挺对的

时间: 2024-08-02 15:08:35

C#怎么合并多个word文档的相关文章

用C#编程合并多个WORD文档

今天因为客户需要,需要将多个WORD文档合并成为一个WORD文档.其中,对WORD文档的合并方式分两种形式:一是复制合并;一是插入合并,即将多个文档按照先后顺序合并到另一个文档中. 代码如下: using System; using System. Collections.Generic; using System.Text; using Microsoft.Office.Interop.Word; using System.Reflection; using System.IO; using

艾伟_转载:用C#编程合并多个WORD文档

今天因为客户需要,需要将多个WORD文档合并成为一个WORD文档.其中,对WORD文档的合并方式分两种形式:一是复制合并;一是插入合并,即将多个文档按照先后顺序合并到另一个文档中. 代码如下: using System;using System.Collections.Generic;using System.Text;using Microsoft.Office.Interop.Word;using System.Reflection;using System.IO;using System.

怎么合并多个word文档?word文档合并方法

1.如下图所示我们随便找两个文档来进行合并测试吧. 2.先看看文档里面的内容,下面会有详细说明. 3.打开一个文档我们先定位光标的位置,这里要用到插入我们一般是放光标放到文档头或尾部,当然放中间也是可以的,个人工作需要自己定吧,我这里测试就放这个位置了. 4.光标定位好了我们点击"菜单栏"-"插入"-"文件",如下图所示. 5.在这里我们只选择WORD文档了,其它的不管了. 6.然后在这里找到文档之后再点击"插入" 7.最后我

合并Word文档的另类方法

今天遇到一个问题,就是需要把多个Word文档的内容追加到一个目标Word文档的后面,如果我有目标文档a.doc以及其他很多个文档b.doc,c.doc-等等数量很多.这个问题,如果是在服务端的话,直接使用OpenXML技术,读写文档就可以实现,这样性能较稳定,但是需要对OpenXML有一定的了解.如果在客户端机器上,可以使用Word PIA实现. 由于本人对于Word PIA较熟悉,所以采用了该方法.但是在实现的过程中,也是有很多种思路的. 将b.doc打开,将其中的内容选中,复制到剪贴板,然后

如何实现word文档的合并

问题描述 我有多个word文档,现在想把多个word文档的内容合并到一个word文档中,望大家帮帮忙!!!谢谢最好提供vb.net的代码! 解决方案 解决方案二:http://www.codeproject.com/csharp/mswmergecs.asp解决方案三:'files:Word文件'aimFileFullPath:要保存为的Word全路径(包括文件名,例如:D:a.doc)PrivateSubMergeWordDocuments(ByValfiles()AsString,ByVal

Word文档使用技巧

1.快速给文字加下划线 如果在Word文档中,有一段带有空格键的文本,而现在只想给该段文本中的文字加上下划线,并且忽略其中的空格.此时,请选中该段文本,然后按下"Ctrl+Shift+W"键就搞定了. 2.用特殊符号快速绘制分隔线 在用Word编辑文档时,时常会用到一些直线或是虚线作为文档的横向分隔线,常用的绘制方法是插入剪贴画中的水平线来实现,但这种方法太烦琐.其实在 Word中可以利用一些特殊符号加回车键的办法来快速绘制常用的横向分隔线.连续输入3个以上的"*"

大量Word文档合并到一个文档的方法

问:我有大量Word文档,想把它们合并到一个文档中,但是复制粘贴太慢了,有没有方法能快速合并? 答:首先将要合并的多个 Word 文档存放到同一个文件夹中,然后新建一个空白文档,在菜单中选择"插入 → 文件",在弹出的"插入文件"窗口中选择上述文件夹,然后用鼠标拖动选择全部文件(或者使用" Ctrl+A "快捷键),最后单击"插入"按钮即可完成所有文档的合并.

word文档合并技巧

首先强调一点,就是由于Word本身的强大功能,合并Word文档只要使用Word本身的功能就可以了,根本不必借助于第三方工具软件. 在Word这众多功能中,有三种功能可用于合并文档,即自动图文集.图文场和文件插入,其中尤其以插入文件操作最为简单方便,其次就是图文场功能.自动图文集用于合并文档,操作过程太麻烦,这里就不介绍了. 利用插入文件的功能来合并文档应该说,使用Word程序提供的插入文件功能来合并文档是一种最简单的方法.合并文档的时候,首先打开第一个文档,然后将插入点定位到文档的末尾,再执行"

word文档合并小技巧

首先强调一点,就是由于Word本身的强大功能,合并Word文档只要使用Word本身的功能就可以了,根本不必借助于第三方工具软件. 在Word这众多功能中,有三种功能可用于合并文档,即自动图文集.图文场和文件插入,其中尤其以插入文件操作最为简单方便,其次就是图文场功能.自动图文集用于合并文档,操作过程太麻烦,这里就不介绍了. 利用插入文件的功能来合并文档应该说,使用Word程序提供的插入文件功能来合并文档是一种最简单的方法.合并文档的时候,首先打开第一个文档,然后将插入点定位到文档的末尾,再执行"