Exemple #1
0
        /// <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        = Word.WdMergeTarget.wdMergeTargetSelected;
            object objUseFormatFrom = Word.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 (Word.Document objDocument in objApp.Documents)
                {
                    objDocument.Close(
                        ref objFalse,   //SaveChanges
                        ref objMissing, //OriginalFormat
                        ref objMissing  //RouteDocument
                        );
                }
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
            finally
            {
                objApp.Quit(
                    ref objMissing, //SaveChanges
                    ref objMissing, //OriginalFormat
                    ref objMissing  //RoutDocument
                    );
                objApp = null;
            }
        }