黄聪:C#操作合并多个Word文档

摘要:
首先将word文档路径保存在List中,新建一个word文档对象并循环List打开对应的word,之后拷贝文档,在新文档中粘贴并且粘贴前先插入换行符。最后保存新文档,并销毁进程。
首先将word文档路径保存在List<string>中,新建一个word文档对象并循环List打开对应的word,之后拷贝文档,在新文档中粘贴并且粘贴前先插入换行符。最后保存新文档,并销毁进程。
黄聪:C#操作合并多个Word文档第1张protectedvoid Button1_Click(object sender, EventArgs e)
黄聪:C#操作合并多个Word文档第1张
黄聪:C#操作合并多个Word文档第1张  {
黄聪:C#操作合并多个Word文档第1张
黄聪:C#操作合并多个Word文档第1张  // object worPath = @"C:\";
黄聪:C#操作合并多个Word文档第1张
黄聪:C#操作合并多个Word文档第1张  object path = @"C:\Test合并word.doc";
黄聪:C#操作合并多个Word文档第1张
黄聪:C#操作合并多个Word文档第1张  List<string> pathList = new List<string>();
黄聪:C#操作合并多个Word文档第1张
黄聪:C#操作合并多个Word文档第1张  pathList.Add(@"C:\word1.doc");
黄聪:C#操作合并多个Word文档第1张
黄聪:C#操作合并多个Word文档第1张  pathList.Add(@"C:\word2.doc");
黄聪:C#操作合并多个Word文档第1张
黄聪:C#操作合并多个Word文档第1张  object objDocType = WdDocumentType.wdTypeDocument;
黄聪:C#操作合并多个Word文档第1张
黄聪:C#操作合并多个Word文档第1张  object type = WdBreakType.wdSectionBreakContinuous;
黄聪:C#操作合并多个Word文档第1张
黄聪:C#操作合并多个Word文档第1张  Application wordApp; //Word应用程序变量
黄聪:C#操作合并多个Word文档第1张
黄聪:C#操作合并多个Word文档第1张  Document newWordDoc; //Word文档变量
黄聪:C#操作合并多个Word文档第1张
黄聪:C#操作合并多个Word文档第1张  object readOnly = false;
黄聪:C#操作合并多个Word文档第1张
黄聪:C#操作合并多个Word文档第1张  object isVisible = false;
黄聪:C#操作合并多个Word文档第1张
黄聪:C#操作合并多个Word文档第1张  wordApp = new ApplicationClass(); //初始化
黄聪:C#操作合并多个Word文档第1张
黄聪:C#操作合并多个Word文档第1张  //由于使用的是COM库,因此有许多变量需要用Missing.Value代替
黄聪:C#操作合并多个Word文档第1张
黄聪:C#操作合并多个Word文档第1张  Object Nothing = Missing.Value;
黄聪:C#操作合并多个Word文档第1张
黄聪:C#操作合并多个Word文档第1张  //wordDoc = wordApp.Documents.Add(ref Nothing, ref Nothing, ref Nothing, ref Nothing);
黄聪:C#操作合并多个Word文档第1张
黄聪:C#操作合并多个Word文档第1张  newWordDoc = wordApp.Documents.Add(ref Nothing, ref Nothing, ref Nothing, ref Nothing);
黄聪:C#操作合并多个Word文档第1张
黄聪:C#操作合并多个Word文档第1张  for (int i = 0; i < pathList.Count; i++)
黄聪:C#操作合并多个Word文档第1张
黄聪:C#操作合并多个Word文档第1张  {
黄聪:C#操作合并多个Word文档第1张
黄聪:C#操作合并多个Word文档第1张  Document openWord;
黄聪:C#操作合并多个Word文档第1张
黄聪:C#操作合并多个Word文档第1张  object obj = pathList[i];
黄聪:C#操作合并多个Word文档第1张
黄聪:C#操作合并多个Word文档第1张  openWord = wordApp.Documents.Open(ref obj, ref Nothing, ref readOnly, ref Nothing,
黄聪:C#操作合并多个Word文档第1张
黄聪:C#操作合并多个Word文档第1张  ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing,
黄聪:C#操作合并多个Word文档第1张
黄聪:C#操作合并多个Word文档第1张  ref Nothing, ref isVisible, ref Nothing, ref Nothing, ref Nothing, ref Nothing);
黄聪:C#操作合并多个Word文档第1张
黄聪:C#操作合并多个Word文档第1张  openWord.Select();
黄聪:C#操作合并多个Word文档第1张
黄聪:C#操作合并多个Word文档第1张  openWord.Sections[1].Range.Copy();
黄聪:C#操作合并多个Word文档第1张
黄聪:C#操作合并多个Word文档第1张  //string str= Clipboard.GetText(TextDataFormat.Text);
黄聪:C#操作合并多个Word文档第1张
黄聪:C#操作合并多个Word文档第1张  // str+="\n\n";
黄聪:C#操作合并多个Word文档第1张
黄聪:C#操作合并多个Word文档第1张  // Clipboard.SetData(DataFormats.Text, str);
黄聪:C#操作合并多个Word文档第1张
黄聪:C#操作合并多个Word文档第1张  object start = 0;
黄聪:C#操作合并多个Word文档第1张
黄聪:C#操作合并多个Word文档第1张  Range newRang = newWordDoc.Range(ref start, ref start);
黄聪:C#操作合并多个Word文档第1张
黄聪:C#操作合并多个Word文档第1张  newWordDoc.Sections[1].Range.InsertBreak(ref type);//插入换行符
黄聪:C#操作合并多个Word文档第1张
黄聪:C#操作合并多个Word文档第1张  newWordDoc.Sections[1].Range.PasteAndFormat(WdReco veryType.wdPasteDefault);
黄聪:C#操作合并多个Word文档第1张
黄聪:C#操作合并多个Word文档第1张  openWord.Close(ref Nothing, ref Nothing, ref Nothing);
黄聪:C#操作合并多个Word文档第1张
黄聪:C#操作合并多个Word文档第1张  }
黄聪:C#操作合并多个Word文档第1张
黄聪:C#操作合并多个Word文档第1张  object format = WdSaveFormat.wdFormatDocument;//.wdFormatDocumentD efault;
黄聪:C#操作合并多个Word文档第1张
黄聪:C#操作合并多个Word文档第1张  //将wordDoc文档对象的内容保存为DOCX文档
黄聪:C#操作合并多个Word文档第1张
黄聪:C#操作合并多个Word文档第1张  newWordDoc.SaveAs(ref path, ref format, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing);
黄聪:C#操作合并多个Word文档第1张
黄聪:C#操作合并多个Word文档第1张  //关闭wordDoc文档对象
黄聪:C#操作合并多个Word文档第1张
黄聪:C#操作合并多个Word文档第1张  newWordDoc.Close(ref Nothing, ref Nothing, ref Nothing);
黄聪:C#操作合并多个Word文档第1张
黄聪:C#操作合并多个Word文档第1张  //关闭wordApp组件对象
黄聪:C#操作合并多个Word文档第1张
黄聪:C#操作合并多个Word文档第1张  wordApp.Quit(ref Nothing, ref Nothing, ref Nothing);
黄聪:C#操作合并多个Word文档第1张
黄聪:C#操作合并多个Word文档第1张  Console.WriteLine(path + " 创建完毕!");
黄聪:C#操作合并多个Word文档第1张
黄聪:C#操作合并多个Word文档第1张  Console.ReadLine();
黄聪:C#操作合并多个Word文档第1张
黄聪:C#操作合并多个Word文档第1张  }

黄聪:C#操作合并多个Word文档第92张

免责声明:文章转载自《黄聪:C#操作合并多个Word文档》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇标准控件(二)——CalendarVisualSVN 说明文档下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

python ORM框架:SqlAlchemy

  ORM,对象关系映射,即Object Relational Mapping的简称,通过ORM框架将编程语言中的对象模型与数据库的关系模型建立映射关系,这样做的目的:简化sql语言操作数据库的繁琐过程(原生sql的编写及拼接等),转而直接使用对象模型来操作数据库做替代 第一部分       SqlAlchemy本身无法直接操作数据库,它是建立在第三...

winform 以不规则图形背景显示窗体

一:创建一个winform窗体,把BackgroundImage引入一个不规则的图片,设置属性BackgroundImageLayout为Stretch 二:主要代码 using System; using System.Drawing; using System.Media; using System.Runtime.InteropServices; u...

python None 和 NaN

python原生的None和pandas, numpy中的numpy.NaN尽管在功能上都是用来标示空缺数据。但它们的行为在很多场景下确有一些相当大的差异。由于不熟悉这些差异,曾经给我的工作带来过不少麻烦。 特此整理了一份详细的实验,比较None和NaN在不同场景下的差异。 实验的结果有些在意料之内,有些则让我大跌眼镜。希望读者看过此文后会None和NaN...

阿里云存储OSS之九大使用技巧

http://www.biphp.com/cloud-computing/%E9%98%BF%E9%87%8C%E4%BA%91%E5%AD%98%E5%82%A8oss%E4%B9%8B%E4%B9%9D%E5%A4%A7%E4%BD%BF%E7%94%A8%E6%8A%80%E5%B7%A7/ 阿里云内部人员撰写的阿里云存储OSS使用教程,对使用OSS...

多线程中Object的wait(),notify()和Condition的wait()和singal()对锁的关联

通常将共享资源的操作放置在Sysnchronized定义的区域内,这样当其他线程也获取到这个锁时,必须的等待锁被释放时才能进入该区域。Object为任意一个对象,每个对象都存在一个标志位,并具有两个值,分别为0和1。一个线程运行到同步块时,首先检查该对象的标志位,如果为0状态,表明此同步块中存在其他线程在运行。这时该线程处于就绪状态,直到处于同步块中的线程...

vue报类似警告Computed property "isLoading" was assigned to but it has no setter

一、原因:一个计算属性,当计算传入的是一个函数,或者传入的是一个对象,而没有设置 setter,也就是 set 属性,当你尝试直接该改变这个这个计算属性的值,都会报这个警告,vuex还会出现通过commit提交修改vuex值的警告的情况。 参考文档: 二、常见导致该错误的写法 (1)计算属性中传入的是对象和方法,直接对计算属性进行赋值会导致错误 比如:...