知识大全 浅析C#合并多个WORD文档的具体实现方法
Posted 文件
篇首语:没有风暴,船帆只不过是一块破布。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 浅析C#合并多个WORD文档的具体实现方法相关的知识,希望对你有一定的参考价值。
浅析C#合并多个WORD文档的具体实现方法 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
今天因为客户需要 需要将多个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 Diagnostics;
namespace Eipsoft Common
/// <summary>
/// Word文档合并类
/// </summary>
public class WordDocumentMerger
private ApplicationClass objApp = null;
private Document objDocLast = null;
private Document objDocBeforeLast = null;
public WordDocumentMerger()
objApp = new ApplicationClass();
#region 打开文件
private void Open(string tempDoc)
object objTempDoc = tempDoc;
object objMissing = System Reflection Missing Value;
objDocLast = objApp Documents Open(
ref objTempDoc //FileName
ref objMissing //ConfirmVersions
ref objMissing //ReadOnly
ref objMissing //AddToRecentFiles
ref objMissing //PasswordDocument
ref objMissing //PasswordTemplate
ref objMissing //Revert
ref objMissing //WritePasswordDocument
ref objMissing //WritePasswordTemplate
ref objMissing //Format
ref objMissing //Enconding
ref objMissing //Visible
ref objMissing //OpenAndRepair
ref objMissing //DocumentDirection
ref objMissing //NoEncodingDialog
ref objMissing //XMLTransform
);
objDocLast Activate();
#endregion
#region 保存文件到输出模板
private void SaveAs(string outDoc)
object objMissing = System Reflection Missing Value;
object objOutDoc = outDoc;
objDocLast SaveAs(
ref objOutDoc //FileName
ref objMissing //FileFormat
ref objMissing //LockComments
ref objMissing //PassWord
ref objMissing //AddToRecentFiles
ref objMissing //WritePassword
ref objMissing //ReadOnlyRemended
ref objMissing //EmbedTrueTypeFonts
ref objMissing //SaveNativePictureFormat
ref objMissing //SaveFormsData
ref objMissing //SaveAsAOCELetter
ref objMissing //Encoding
ref objMissing //InsertLineBreaks
ref objMissing //AllowSubstitutions
ref objMissing //LineEnding
ref objMissing //AddBiDiMarks
);
#endregion
#region 循环合并多个文件(复制合并重复的文件)
/// <summary> /// 循环合并多个文件(复制合并重复的文件) /// </summary>
/// <param name= tempDoc >模板文件</param>
/// <param name= arrCopies >需要合并的文件</param>
/// <param name= outDoc >合并后的输出文件</param>
public void CopyMerge(string tempDoc string[] arrCopies string outDoc)
object objMissing = Missing Value;
object objFalse = false;
object objTarget = WdMergeTarget wdMergeTargetSelected;
object objUseFormatFrom = WdUseFormattingFrom wdFormattingFromSelected;
try
//打开模板文件
Open(tempDoc);
foreach (string strCopy in arrCopies)
objDocLast Merge( strCopy
//FileName
ref objTarget //MergeTarget
ref objMissing //DetectFormatChanges
ref objUseFormatFrom //UseFormattingFrom
ref objMissing //AddToRecentFiles
);
objDocBeforeLast = objDocLast;
objDocLast = objApp ActiveDocument;
if (objDocBeforeLast != null)
objDocBeforeLast Close(
ref objFalse //SaveChanges
ref objMissing //OriginalFormat
ref objMissing //RouteDocument
);
//保存到输出文件
SaveAs(outDoc);
foreach (Document objDocument in objApp Documents)
objDocument Close(
ref objFalse //SaveChanges
ref objMissing //OriginalFormat
ref objMissing //RouteDocument
);
finally
objApp Quit(
ref objMissing //SaveChanges
ref objMissing //OriginalFormat
ref objMissing //RoutDocument
);
objApp = null;
/// <summary> /// 循环合并多个文件(复制合并重复的文件) /// </summary>
/// <param name= tempDoc >模板文件</param>
/// <param name= arrCopies >需要合并的文件</param>
/// <param name= outDoc >合并后的输出文件</param>
public void CopyMerge(string tempDoc string strCopyFolder string outDoc)
string[] arrFiles = Directory GetFiles(strCopyFolder);
CopyMerge(tempDoc arrFiles outDoc);
#endregion
#region 循环合并多个文件(插入合并文件)
/// <summary> /// 循环合并多个文件(插入合并文件) /// </summary>
/// <param name= tempDoc >模板文件</param>
/// <param name= arrCopies >需要合并的文件</param>
/// <param name= outDoc >合并后的输出文件</param>
public void InsertMerge(string tempDoc string[] arrCopies string outDoc)
object objMissing = Missing Value;
object objFalse = false;
object confirmConversion = false;
object link = false;
object attachment = false;
try
//打开模板文件
Open(tempDoc);
foreach (string strCopy in arrCopies)
objApp Selection InsertFile(
strCopy
ref objMissing
ref confirmConversion
ref link
ref attachment
);
//保存到输出文件
SaveAs(outDoc);
foreach (Document objDocument in objApp Documents)
objDocument Close(
ref objFalse //SaveChanges
ref objMissing //OriginalFormat
ref objMissing //RouteDocument
);
finally
objApp Quit(
ref objMissing //SaveChanges
ref objMissing //OriginalFormat
ref objMissing //RoutDocument
);
objApp = null;
/// <summary>
/// 循环合并多个文件(插入合并文件)
/// </summary>
/// <param name= tempDoc >模板文件</param>
/// <param name= arrCopies >需要合并的文件</param>
/// <param name= outDoc >合并后的输出文件</param>
public void InsertMerge(string tempDoc string strCopyFolder string outDoc)
string[] arrFiles = Directory GetFiles(strCopyFolder);
InsertMerge(tempDoc arrFiles outDoc);
#endregion
cha138/Article/program/ASP/201311/21785
相关参考
C#打开WORD文档内容并显示 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! C#打开WORD文
C#编程实现动态生成Word文档 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 如何用C#编程实
用C#在Word文档中搜索文本 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 在word应用程序
C#操作Word文档(Office2007) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&nbs
C#合并多个结构相同的DataTable 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! //&l
在使用Word2010进行文字编辑时,下列叙述错误的是_____。A、允许同时打开多个文档B、可将正在编辑的文档另存为一个纯文本文件C、使用“打开”命令可以打开一个已存在的文档D、打印预览文档时,打印
知识大全 JSP生成WORD文档,EXCEL文档,PDF文档
JSP生成WORD文档,EXCEL文档,PDF文档 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!l
word2003为何只能打开一个文档?打开新的文档后原先打开的为何文档窗口就没了工具--选项--视图--显示,启动任务窗格,去勾,任务栏中的窗口,勾选wps能打开word2003文档吗可以的,wps必
在php中如何把中的内容生成到word文档中 php把中的内容生成到word文档中时不居中显示问题即会默认按照web视图进行显示 php把中的内容生成到word文档中时相关样式不兼容问题 正
word中图形和表格怎么组合在一起?组合不了,除非把表格转成图片:选中表格——剪切——粘贴——选择性粘贴——图片这样就可以组合了。word怎么将多个图形组合在一起在Word2007文档中使用自选图形工