返回顶部
首页 > 资讯 > 精选 >C#中Excel COM组件怎么用
  • 613
分享到

C#中Excel COM组件怎么用

2023-06-17 23:06:00 613人浏览 八月长安
摘要

这篇文章主要介绍C#中excel COM组件怎么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1 Excel对象微软的Excel对象模型包括了128个不同的对象,从矩形,文本框等简单的对象到透视表,图表等复杂的对象

这篇文章主要介绍C#excel COM组件怎么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

1 Excel对象

微软的Excel对象模型包括了128个不同的对象,从矩形,文本框等简单的对象到透视表,图表等复杂的对象.下面我们简单介绍一下其中最重要,也是用得最多的四个对象。

(1) Application对象。Application对象处于Excel对象层次结构的顶层,表示Excel自身的运行环境。 (2) Workbook对象。Workbook对象直接地处于Application对象的下层,表示一个Excel工作薄文件。

(3) Worksheet对象。Worksheet对象包含于Workbook对象,表示一个Excel工作表。

(4) Range对象。Range对象包含于Worksheet对象,表示Excel工作表中的一个或多个单元格。

2 C#中的受管代码和非受管代码

.net公用语言框架内运行的程序为受管代码。受管代码在程序中所有类型都受到严格检查,没有指针,对内存的管理完全由运行系统控制。受控状态下,编写 程序更为容易,且更少出错,我们可以花更多的时间在解决实际问题上而不是在计算机语言问题上。相对而言,那些在.NET框架外运行的程序为非受管代码。比 如:COM组件、ActiveX组件、Win32 api函数、指针运算等。C#编程中在某些特定情况下,需要运用非受管代码,例如,要利用一个成熟的COM组件,或者调用一个API函数,或者用指针去编 写实时/高效程序等。

3 Visual C#中调用Excel的COM组件

一个.NET组件事实上是一个.NET下的DLL,它包含的不仅是运行程序本身,更重要的是包含这个DLL的描述信息(Meta Data,即元数据),而一个COM组件是用其类库(TLB)储存其描述信息。这些COM组件都是非受管代码,要在Visual C#中使用这些非受管代码的COM组件,就必须把他们转换成受管代码的.NET组件。所以在用Visual C#调用Excel表格之前,必须完成从COM组件的非受管代码到受管代码的类库的转换。

1 将Excel的COM组件转换为.NET组件

项目中打开Add Reference对话框,选择COM栏,之后在COM列表中找到“Microsoft Excel 9.0 Object Library”(Office 2000),然后将其加入到项目的References中即可。Visual C#.NET会自动产生相应的.NET组件文件,以后即可正常使用。

这个转换形成.NET组件不能单独使用,它不过是以前的COM组件的一个外层包装,在.NET中可以通过这个外层包装去发现原来的COM组件并调用其相应的界面函数。所以它必须与原来的COM组件一起起作用。

2 Visual C#打开Excel表格

事实上,在C#中使用Excel COM组件(一个经转换的)和使用任何一个其它.NET组件完全一样。可以用new关键字创建一个经转换的COM组件,然后再像使用任何一个其它C#对象一样使用这个组件对象。

在转换后的.NET组件中定义了一个命名空间Excel,在此命名空间中封装了一个类Application,这个类和启动Excel表格有非常重要的关 系,在Visual C#中,只需要下列三行代码就可以完成打开Excel表格的工作,具体如下:

Excel.Application excel = new Excel.Application ();//引用Excel对象  excel.Application.Workbooks.Add ( true );//引用Excel工作簿  excel.Visible = true ;//使Excel可视

但此时的Excel表格是一个空的表格,没有任何内容,下面就来介绍如何往Excel表格中输入数据。

3 往Excel表格中输入数据

在命名空间"Excel"中,还定义了一个类"Cell",这个类所代表的就是Excel表格中的一个单元格。通过给"Cell"赋值,从而实现往Excel表格中输入相应的数据,下列代码功能是打开Excel表格,并且往表格输入一些数据。

Excel.Application excel = new Excel.Application () ;  excel.Application.Workbooks.Add ( true ) ;  excel.Cells[ 1 , 1 ] = "First Row First Column" ;  excel.Cells[ 1 , 2 ] = "First Row Second Column" ;  excel.Cells[ 2 , 1 ] = "Second Row First Column" ;  excel.Cells[ 2 , 2 ] = "Second Row Second Column" ;  excel.Visible = true ;

4 C# Excel COM组件使用实例

下面实例在C#中连接oracle数据库(Name),从表(TableName)中读取数据,并写入Excel.

string cnString="Provider=msdaora.1;Data source=Name; ";  cnString=cnString+"user id=UserName;passWord=Password";  try {  OleDbConnection cn=new OleDbConnection (cnString);  cn.Open ();  try {  string s="select * from Name.TableName";  OleDbCommand cmd=new OleDbCommand (s,cn);  OleDbDataReader dr=cmd.ExecuteReader ();  Excel.Application xlApp = new Excel.Application();  if(xlApp==null){MessageBox.Show ("Can’t open Excel!");return;}  xlApp.Application .Workbooks .Add (true);  int row=2,fieldcount;  fieldcount=dr.FieldCount ;  for(int col=0;col< fieldcount;col++) xlApp.Cells [1,col+1]=dr.GetName(col);  while (dr.Read ())  {  for(int col=0;col< fieldcount;col++)   xlApp.Cells [row,col+1]=dr.GetValue(col).ToString();  row++;  }  xlApp.Visible =true;  xlApp=null;  }  catch(Exception ex ){MessageBox.Show (ex.Message );}  finally {cn.Close();}  }  catch(Exception ex){MessageBox.Show (ex.Message );}  }  }

5安装一个使用COM组件的.NET程序

如果要将这样的程序安装运行在另一台机器上,那么除了安装运行程序外,还做三件事。

首先,是安装.NET运行系统。因为任何一个.NET程序都不能离开.NET运行系统去独立运行。

其次,所调用的COM组件必须要安装在目标机器上。本例中大多数目标机器上都装有Microsoft Office的Excel,一般不会有这个问题。但如果是另一个用户自定义的COM组件,那么这个COM组件在运行.NET程序之前必须先安装好。

***,转换后的.NET组件DLL文件要安装在目标机器上。因为.NET组件不需要在windows ReGIStry中注册,所以最简单的方法是将.NET组件DLL文件拷贝到运行程序目录下。如果此.NET组件被多个.NET程序共享,可以将其安装 在.NET公用组件区中,从而可被任何一个.NET组件使用。只有当一个.NET组件参与了事务处理时,才需要将它注册为一个COM+组件。因为.NET 仍然用传统的COM+机制来处理事务的提交、回滚等。

以上是“C#中Excel COM组件怎么用”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注编程网精选频道!

--结束END--

本文标题: C#中Excel COM组件怎么用

本文链接: https://lsjlt.com/news/294405.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • C#中Excel COM组件怎么用
    这篇文章主要介绍C#中Excel COM组件怎么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1 Excel对象微软的Excel对象模型包括了128个不同的对象,从矩形,文本框等简单的对象到透视表,图表等复杂的对象...
    99+
    2023-06-17
  • C#中怎么调用Excel的COM组件
    这篇文章给大家介绍C#中怎么调用Excel的COM组件,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。C#调用Excel的COM组件一个.NET组件事实上是一个.NET下的DLL,它包含的不仅是运行程序本身,更重要的是包...
    99+
    2023-06-17
  • C#中COM组件如何使用
    C#中COM组件如何使用,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。一.本文程序设计和运行的软件环境1 微软公司视窗2000服务器版2 .Net FrameWork SDK ...
    99+
    2023-06-17
  • 在Visual中C#是怎么使用COM组件的
    这篇文章主要讲解了“在Visual中C#是怎么使用COM组件的”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“在Visual中C#是怎么使用COM组件的”吧!Visual C#是微软推出的新一...
    99+
    2023-06-17
  • C#中COM组件的ASP调用方法是什么
    这篇文章主要介绍“C#中COM组件的ASP调用方法是什么”,在日常操作中,相信很多人在C#中COM组件的ASP调用方法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C#中COM组件的ASP调用方法是什么...
    99+
    2023-06-17
  • C#的COM组件怎么开发界面窗体
    这篇文章主要讲解了“C#的COM组件怎么开发界面窗体”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C#的COM组件怎么开发界面窗体”吧!C# COM组件开发1,定义接口(1)在接口上方加上[...
    99+
    2023-06-17
  • python怎么生成com组件
    要在Python中生成COM组件,可以使用pywin32库。下面是一个简单的示例,演示了如何创建一个COM组件:```pythoni...
    99+
    2023-09-27
    python
  • C++和C#相互调用COM组件的方法
    本篇内容介绍了“C++和C#相互调用COM组件的方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!前一阵在工作中做项目的时候,遇到了COM组...
    99+
    2023-06-18
  • php无法调用com组件怎么办
    本教程操作环境:windows7系统、PHP8.1版、Dell G3电脑。php无法调用com组件怎么办?php引用COM组件踩坑记录最近工作事项中出现一项“零工”,要在已有的php工程中增加一项功能,而且工程以及所需要实现功能的源代码工程...
    99+
    2024-04-02
  • C#中怎么读取Excel文件
    这期内容当中小编将会给大家带来有关C#中怎么读取Excel文件,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。private DataTable getTable() &nbs...
    99+
    2023-06-18
  • 老生常谈.NET中的 COM 组件
    目录什么是COM组件?使用COM组件需要注意:一:背景1.讲故事二:COM 多语言互操作1. 背景2. C# 写一个 COM 组件3. 注册 COM 到注册表4. 使用 C++ 调用...
    99+
    2022-11-13
    .NET  COM 组件 .NET组件
  • 怎么解决php com组件报错问题
    小编给大家分享一下怎么解决php com组件报错问题,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!php com组件报错的解决办法:1、在php.ini中修改配置...
    99+
    2023-06-08
  • 怎么用C#读取Excel文件
    这篇文章主要讲解了“怎么用C#读取Excel文件”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用C#读取Excel文件”吧!C#读取Excel文件方法一:直接读取(这种直接读取单元格的方...
    99+
    2023-06-18
  • C#中怎么调用Active组件
    本篇文章给大家分享的是有关C#中怎么调用Active组件,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。C#调用Active组件本程序中:建立类库添加组件类后托放:label 、...
    99+
    2023-06-17
  • C#中怎么声明一个COM接口
    这篇文章给大家介绍C#中怎么声明一个COM接口,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。COM 接口在 C# 中表示为具有 ComImport 和 Guid 属性的接口。它不能在其基接口列表中包含任何接口,而且必须...
    99+
    2023-06-17
  • C#中怎么使用NPOI库读写Excel文件
    今天小编给大家分享一下C#中怎么使用NPOI库读写Excel文件的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。第一步添加程引...
    99+
    2023-06-29
  • C#中怎么创建一个Excel文件
    这篇文章给大家介绍C#中怎么创建一个Excel文件,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。C#创建Excel文件实现实例://创建一个excel application  Excel...
    99+
    2023-06-17
  • c#怎么读取excel文件
    c# 读取 excel 文件的方法包括:使用 microsoft.office.interop.excel 程序集:创建 excel 应用程序对象,打开 excel 文件,获取工作表并遍...
    99+
    2024-05-14
    office c#
  • C#中怎么调用Excel对象
    本篇文章给大家分享的是有关C#中怎么调用Excel对象,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。C#调用Excel对象微软的Excel对象模型包括了128个不同的对象,从矩...
    99+
    2023-06-17
  • C#中怎么用NPOI操作Excel
    这篇“C#中怎么用NPOI操作Excel”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“C#中怎么用NPOI操作Excel”文...
    99+
    2023-06-29
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作