日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

浅析C#合并多个WORD文档的具体实现方法

發布時間:2023/12/15 C# 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 浅析C#合并多个WORD文档的具体实现方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

http://www.chinacs.net/a/csharp/2010/0724/36.html

今天因為客戶需要,需要將多個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,????//ReadOnlyRecommended?

?

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?

?

}?

?

}?

?

總結

以上是生活随笔為你收集整理的浅析C#合并多个WORD文档的具体实现方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。