C#中的office操作编程
介绍C#中操作Word、Excel的方法和原理,是对C#针对Office操作的一个整理总结与分享。
HymanLiuTS
年过而立,又酸又臭,忙时敲代码,闲时读书写文章。
展开
-
错误处理(4)—— “{000208D5-0000-0000-C000-000000000046}”的接口的 COM 组件调用 QueryInterface 因以下错误而失败
错误信息:中文版—— 无法将类型为“Microsoft.Office.Interop.Excel.ApplicationClass”的 COM 对象强制转换为接口类型“Microsoft.Office.Interop.Excel._Application”。此操作失败的原因是对 IID 为“{000208D5-0000-0000-C000-000000000046}”的接口的原创 2017-11-15 16:40:54 · 33017 阅读 · 2 评论 -
Not implemented (Exception from HRESULT: 0x80004001 (E_NOTIMPL))
今天在调试之前的代码:chart.ChartArea.Copy();时出现了这个问题,翻译过来就是chart的ChartArea.Copy()方法没有实现。当时觉得很奇怪,因为这段代码时一个成熟产品里面的,很多的现场都在使用,怎么可能出现问题。后面分析原因应该是改方法在Microsoft.Office.Interop.Excel 14.0中才支持,由于我本机安装了WPS,它修改了Com组件的注册信原创 2017-08-16 18:59:02 · 3630 阅读 · 1 评论 -
对 IID 为“{00020970-0000-0000-C000-000000000046}”的接口的 COM 组件调用 QueryInterface 因以下错误而失败: 加载类型库/DLL 时出错。
原文地址:http://www.cnblogs.com/gisoracle/p/5440846.html无法将类型为“Excel.ApplicationClass”的 COM 对象强制转换为接口类 型“Excel._Application”。此操作失败的原因是对 IID 为“{000208D5 -0000-0000-C000-000000000046}”的接口的 COM 组件调用转载 2017-08-11 10:41:01 · 17633 阅读 · 5 评论 -
错误处理(三)—— 剪贴板为空。 (异常来自......)
异常类型:System.Runtime.InteropServices.COMException ErrorCode = -2146823683 这种错误在Excel和Word之间进行复制和粘贴操作时经常出现,主要原因就是操作剪贴板过于频繁,导致里面的内容很多剪贴板响应不过来。解决方法是在每次复制之前先清空剪贴板即可:System.Windows.Form原创 2016-12-30 17:25:24 · 10307 阅读 · 0 评论 -
错误处理(二)—— Exception from HRESULT: 0x800A03EC
是多少原创 2016-12-29 13:55:11 · 8128 阅读 · 0 评论 -
错误处理(一)—— 被呼叫方拒绝接收呼叫。 (异常来自 HRESULT:0x80010001 (RPC_E_CALL_REJECTED))
原因可能为:1.目录权限 2.操作频繁若是权限问题,按如下步骤:在运行里面输入: dcomcnfg 在“服务”里找到这三个服务,都去启动 Distributed Transaction Coordinator Remote Procedure Call (RPC) Security Accounts Manager 如果:Distribu原创 2016-12-21 09:22:50 · 38831 阅读 · 9 评论 -
C#中操作Excel(6)—— 操作Excel的两种技术(二)--OLEDB技术
三、使用OLEDB技术操作Excel 上文介绍了使用COM技术读写Excel的方法,接下来我们介绍下使用OLEDB技术读写Excel。3.1 使用OLEDB读取Excel文件。 要读取文件我们第一步要建立一个数据库连接字符串,连接指向我们的D: \\Test.xlsx文件。bool hasTitle = false;string path="D:\\T原创 2016-11-24 09:45:21 · 2360 阅读 · 0 评论 -
C#中操作Excel(5)—— 操作Excel的两种技术(一)--COM技术
一、引言 本文主要介绍操作Excel的两种技术,第一种就是我们之前的文章中一直在使用的COM技术,而另一种是使用OLEDB技术。两种方法各有优势和缺点,前者利用COM接口操作Excel,更加自由和灵活,可以自由的设置单元格格式等等,但是数据量较大时存在性能瓶颈。后者把Excel当成一个数据库,读取速度较快,但是无法设置Excel的格式。下面分别介绍两种技术,在此之前我们先布置试验原创 2016-11-24 08:52:40 · 2746 阅读 · 0 评论 -
C#中操作Excel(4)—— 向Excel中插入两种图表以及设置图表格式
引言 本文主要讨论下向Excel中插入图表的两种方式。在Excel中图表是有两种级别的,一种是和sheet同级别的图表,也就是说整个excel的标签页就是一个图表;还有一种就是我们最常使用的在一个sheet中插入的图表,我们姑且叫它sheet子图表。这种图标在原则上可以插入N个。本文就这两种图表,分别介绍其插入的方法。插入sheet级别的图表 这种级原创 2016-11-18 11:41:17 · 14898 阅读 · 3 评论 -
C#中操作Excel(3)—— Excel中操作文本、图片和批注
一 引言 本文主要介绍向Excel中插入文本和图片的方法。相信大家对Excel的模型对象都有了一定的了解,和Word相似,Excel中插入文本和图片也需要依靠Range对象。但是与Word对象不同,Excel的Range对象实际上指的是Excel单元格的范围,而非Word的一段字符的范围。在实验之前,我们还是在D盘新建一个名叫Test.xlsx的Excel文件作为本次试验的对象,下原创 2016-11-17 11:35:39 · 4527 阅读 · 2 评论 -
C#中操作Excel(2)—— 新建、打开、保存和关闭Excel文档
本文中主要介绍C#中对Excel文档进行新建、打开、保存、关闭的方法。在本次试验之前,先布置试验环境。 首先,先新建一个winform的工程ExcelTest: 然后,在界面中添加一个按钮,按钮文本就叫做“测试”: 在按钮的点击事件处理函数中,我们先创建一个Application对象,并将对象的Visible属性设置为True:原创 2016-11-16 11:17:10 · 18032 阅读 · 2 评论 -
C#中操作Excel(1)—— Excel对象模型介绍
Excel 文档中的数据已高度结构化,因此该对象模型是分层模型且非常简单。Excel 提供数百个你可能需与之进行交互的对象,但你可以通过将重点放在非常小的一部分可用对象上来很好的开始了解对象模型。这些对象包括以下四种:• 应用程序• Workbook• Worksheet• 范围 许多使用 Excel 完成的工作都是围绕这四种对象及其成员进行的。应用程序对原创 2016-11-15 09:00:36 · 2788 阅读 · 1 评论 -
C#中操作Word(9)—— 向Word中插入图表的三种方法(二)
我们接着上一文的内容介绍在word中插入图标的方法。方法二:从Excel中拷贝图表 这种方法相信你通过这个标题就了解了。我们的思路就是在Excel中生成这个图表,然后在拷贝的word中。2.1 引入Excel类库 首先我们需要在项目中引入Excel相关的引用,如下图所示在“添加引用”对话框中选中选中Excel的对象库,然后点击确定。原创 2016-11-14 10:01:10 · 11717 阅读 · 5 评论 -
C#中操作Word(8)—— 向Word中插入图表的三种方法(一)
一、 前言 本文主要介绍向word中插入图表的方法。方法共有三种,每一种都有自己的适用范围和利弊。介绍之前,我们准备实验用的文档,做一个如下图所示的word模板,我们要做的的是在这个名叫chart的书签中插入一个图表,下面然后我将逐一进行介绍这三种方法:方法一:插入OLEObject类型的图表 这种方法适用于所有版本的excel,但是插入的图表界原创 2016-11-14 09:55:26 · 11702 阅读 · 1 评论 -
C#中操作Word(7)—— 如何向Word中插入表格
一、 前言 本文主要讨论下向word中插入表格的方法。Word模型对象Document、Range、Selection中都含有一个Tables的属性,它是表格的集合,我们想要向一个word文档中添加表格,就需要调用上述三个对象的Tables属性的Add方法,将表格添加进去。 我们先来看下,Add方法的函数原型:Tables.Add(Range,System.原创 2016-11-11 08:45:41 · 10808 阅读 · 3 评论 -
C#中操作Word(6)—— 如何向Word中插入图片
一、Word对象模型的重叠性分析 本文主要介绍通过书签Bookmark向Word文档中插入图片的方法。在此之前我们先简单讨论下Word对象模型的重叠性。如果你对Word对象模型还不熟悉,请参考本专栏第一篇博文。相信你通过前几篇文章也有了解到,Word中五种对象:Applicatin、Document、Selection、Range和Bookmark似乎是重叠在一起的,什么意思呢?原创 2016-11-10 08:40:20 · 18475 阅读 · 2 评论 -
C#中操作Word(5)—— 利用BookMark对象写Word文档
一、引言 本文主要介绍通过Word中的书签Bookmark来向Word中写入我们自定义的数据。之前的文章介绍了利用Range对象读写word的方法,用这种方法如果处理比较简单的文档还好,若文档较复杂,就显得有些力不从心了。 比如有这么一个文档,内容如下: 要求我们在程序里面动态的生成这些数据然后补充进word文档里面,此时如果我们再原创 2016-11-09 17:12:32 · 10619 阅读 · 2 评论 -
C#中操作Word(4)—— 利用Range对象设置文本的格式
本文主要介绍修改文本的格式的方法。按照上文介绍的方法,现在将D盘的Test.docx文档进行修改,修改成如下内容: 在“测试”按钮的单击事件处理函数中,获取对应的Range:private void button1_Click(object sender, EventArgs e){Microsoft.Office.Interop.Word.Applicati原创 2016-11-09 14:25:09 · 10329 阅读 · 0 评论 -
C#中操作Word(3)—— 利用Range对象读取和设置Word中的文本
本文主要介绍利用C#读取和写入Word内容的一般方法。一、创建工程。1.1 引入控制台Control 我们创建一个名叫WordTest的Windows窗体应用程序作为本次试验的工程,为了能够显示word中的内容,我们先要在下图所示的Program.cs的main()函数中引入控制台Console来显示读取到内容。 Program.cs的代码:n原创 2016-11-09 14:13:39 · 13202 阅读 · 0 评论 -
C#中操作Word(2)—— 新建、打开、保存和关闭文档
本文中主要介绍C#中对word文档进行新建、打开、保存、关闭的方法。在本次试验之前,先布置试验环境。首先,先新建一个winform的工程WordTest: 然后,在界面中添加一个按钮,按钮文本就叫做“测试”: 在按钮的点击事件处理函数中,我们先创建一个Application对象,并将对象的Visible属性设置为True:private vo原创 2016-11-09 11:42:09 · 17862 阅读 · 2 评论 -
C#中操作Word(1)—— word对象模型介绍
一、开发环境布置 C#中添加对Word的支持,只需添加对Microsoft.Office.Interop.Word的命名空间,如下图所示,右键点击“引用”,在弹出的“添加引用”对话框中选中COM标签页,找到“Microsoft Word 12.0 Object Library”。 点击确定按钮后,可在引用中添加显示名称为Microsoft.Office.原创 2016-11-09 11:31:04 · 4123 阅读 · 0 评论