flygoldfish(长流支流)的专栏----友情承接各类 证书打印、套打、MIS开发、WebMIS、C#.NET/Oracle实战开发培训(好消息:《国土资源管理证书打印》、《PDA库房管理》源码

争取开创网络程序员新职业先河 继《金制打印通》之后,隆重共享《WebMIS.NET快速开发平台》。《国土资源管理证书打印》、《PDA库房管理》系统,欢迎使用!<br>联系TEL:13651078179

用户操作
[即时聊天] [发私信] [加为好友]
长江支流ID:flygoldfish
139660次访问,排名616,好友2人,关注者21人。
flygoldfish的文章
原创 28 篇
翻译 0 篇
转载 6 篇
评论 161 篇
长江支流的公告
《国土资源管理证书打印》
《PDA库房管理》
***欢迎使用***
联系TEL:
13651078179

Google广告合作伙伴
Google
最近评论
管理人:エッチアダルト出会い
在宅バイト:セックス童貞風俗
セレブ委員会:エロアダルトスワッピング
係り員:不倫おっぱいアダルト
精神年齢科先生:人妻セックス不倫
文章分类
收藏
相册
Excel二次开发
WebMIS.net单据界面
WebMIS.net认证荣誉
打印源码效果图
权限管理
温总理的亲民冬衣
个人主页
MIS金质打印通 通打天下报表
MIS金质打印通打印效果图
个人主页,源码下载
存档
软件项目交易
订阅我的博客
XML聚合  FeedSky
订阅到鲜果
订阅到Google
订阅到抓虾
订阅到BlogLines
订阅到Yahoo
订阅到GouGou
订阅到飞鸽
订阅到Rojo
订阅到newsgator
订阅到netvibes

原创 循序渐进,探寻Excel二次开发.NET源码(1)收藏

新一篇: 循序渐进,探寻Excel二次开发.NET源码(2)--Excel打开关闭打印预览 | 旧一篇: 开源:MIS金质打印通原理及实现 Step by step (1)

循序渐进,探寻Excel二次开发.NET源码(1)
(预备篇)
作者:长江支流

  MS Excel功能我就不用多说了,总的来说强大方便灵活,应用广泛。用Excel来做数据存储、报表并实现打印非常方便,通常办公处理。值得高兴的是Excel提供了二次开发的功能以满足各个不同层次的需要,为程序员自己动手模拟Excel操作提供了极大的便利性,并可充分利用Excel提供的特性开发出更多实用的应用。

  以往做Excel二次开发都用VBA,它是VB的一个简化版,我们打开Excel后单击工具——宏——Visual Basic编辑器就可以进行二次开发。我们现在要说的不是这种VBA二次开发,而是在.NET下进行二次开发。

  我们的最终目标是:利用.NET提供的开发工具快速实现Excel的二次开发,这其中包括最基本的单元格及带区数据存取、合并、字体颜色、边框及网格线等,由浅入深,由基本实现到组合功能,最终实现报表设计、套打、模板打印,充分利用Excel自身强大功能搞定任意复杂格式、报表、统计图形分析。

  从本篇开始,我们将以循序渐进,探寻Excel二次开发.NET的方式,逐步讲述Excel的二次开发并实现以下几点:

 1、如何将各版本Excel(COM类型库) 转换生成.Net公共语言运行库程序集如Interop.Excel.dll
 2、如何引用Excel库或已生成的程序集
 3、创建Excel实例
 4、打开Excel工作薄工作表和模板
 5、增、删、改、插入、定位、重命名工作表
 6、获取活动工作表指定范围单元格及带区
 7、读、写单元格内容
 8、向带区中写内容
 9、单元格合并
 10、字体及颜色
 11、边框及网格线
 12、保存、另存
 13、打印、预览
 14、彻底关闭Excel进程
 15、综合应用,通打天下报表
 ...

  本篇中,将说一说在项目中添加Excel引用的方法。以后的所以篇目中,都假设读都对VS 2003开发平台有一定的了解,所以,省略一些文字,如新建立一个项目什么的,我想那些就没必要了。

  我的宗旨:简单快捷,易用实用,因此,在以后的篇目中以程序居多,描述尽量少些,多些注释。但是这篇,哈哈,只有描述了。

第一步:
在项目的引用节点单击右键,在弹出的菜单中单击添加引用...
在弹出的对话框中单击COM项,找到Microsoft Excel 11.0 Object Library
并单击选中,然后单击选择按钮,如图“引用Excel2003”。

在.NET添加对Excel的引用

从中我们可以看出是引用的Excel.Exe文件,这是Excel2003版。Excel2000及Excel2002即Excel XP
COM项见“Excel版本对照表”。

第二步:
引用Excel2003后,会在引用节点中增加Excel等节点,如图“引用Excel2003后可删除不必要的引用”。

引用Excel2003后可删除不必要的引用

进入项目的bin\Debug目录可以看到,相应的增加了Interop.Excel.dll、Interop.Microsoft.Office.Core.dll、Interop.VBIDE.dll三个库文件,它们都是.Net将 COM 类型库中的类型定义转换为.Net公共语言运行库程序集中的等效定义生成的文件。
我们只需要引用Interop.Excel.dll就可以了,后面的两个文件是支持文件,不添加这两个文件的引用时在调试程序时如果有编译不通过的如语法错误会提示未能找到依赖项Interop.Office、Interop.VBIDE,一般这是个假象,除非是你和程序确实用到了他们,如果没有语法错误,编译器就不会提示了:)。

我们在引用中将Microsoft.Office.Core、stdole、VBIDE选中删除掉。也可以将Excel引用删除掉重新直接引用Interop.Excel.dll。

另一种方法是直接添加对Interop.Excel.dll的引用。


生成Interop.Excel.dll的另一方法:

以上是可视化自动生成Excel对应的程序集,也可以用如下的方法生成。

打开Visual Studio .Net2003命令提示,运行
TlbImp Excel.EXE Interop.Excel.dll

如果是Excel2000,则
TlbImp Excel9.olb Interop.Excel.dll

当然,第一参数Excel.EXE(Excel9.olb)要指定目录(Office2000安装目录),如果不指定,需要把它拷贝到VS.Net安装路径下
如C:\Visual Studio.Net\SDK\v1.1\Bin;
同理,第二参数Interop.Excel.dll是生成的对应的动态库,如果不指定目录,默认生成在VS.Net安装路径BIN下 ,你可以用你自己喜欢的名字
取代Interop.Excel.dll,生成之后你就可以在VS.Net开发环境项目中添加对它的引用了。

Tlbimp.exe为类型库导入程序,它将 COM 类型库中的类型定义转换为公共语言运行库程序集中的等效定义,关于它的详细使用参见MSDN。


用第一种方法和第二种方法引用的库和默认文件目录为分别如下:
Excel 2000是
Microsoft Excel 9.0 Object Library
 C:\Program Files\Microsoft Office\Office\EXCEL9.OLB

Excel 2002(XP)是
Microsoft Excel 10.0 Object Library
 C:\Program Files\Microsoft Office\OFFICE10\EXCEL.EXE

Excel 2003是
Microsoft Excel 11.0 Object Library
 C:\Program Files\Microsoft Office\OFFICE11\EXCEL.EXE


----------------------------------------Excel版本对照表----------------------------------------

 文件/版本  Interop.Excel.dll Interop.Office.dll   Interop.VBIDE.dll  添加引用\COM组件
 2000  V1.3.0.0  V2.1.0.0  V5.3.0.0  Microsoft Excel  9.0 Object Library(EXCEL9.OLB)
 2002(XP)  V1.4.0.0  V2.2.0.0  V5.3.0.0  Microsoft Excel 10.0 Object Library(Excel.EXE文件)
 2003  V1.5.0.0  V2.3.0.0  V5.3.0.0  Microsoft Excel 11.0 Object Library(Excel.EXE文件)

相关源码下载信息请访问:
http://blog.csdn.net/flygoldfish

声明:本文版权为周方勇所有,欢迎转载,请保留完整的内容及出处。
http://blog.csdn.net/flygoldfish/archive/2005/11/07/524305.aspx

flygoldfish@163.com

发表于 @ 2005年11月07日 10:38:00|评论(loading...)|编辑

新一篇: 循序渐进,探寻Excel二次开发.NET源码(2)--Excel打开关闭打印预览 | 旧一篇: 开源:MIS金质打印通原理及实现 Step by step (1)

评论

# 发表于2005-11-18 16:05:00  IP:
TrackBack来自《2005年11月18日CSDN主页引用MIS金质打印通Excel专版》

2005年11月18日CSDN主页引用MIS金质打印通Excel专版
#zeusvenus 发表于2005-11-07 13:43:00  IP: 221.221.249.*
周方勇您好!
我是在csdn的.net版看到你连接介绍的,过来看了看,非常不错!
#marvinhong 发表于2005-11-09 12:56:00  IP: 222.93.148.*
如何取得第2页的
#长江支流 发表于2005-11-09 14:39:00  IP: 202.106.86.*
(Excel.Worksheet)_xlWorkbook.Worksheets[2]
#daisylh 发表于2005-11-18 17:47:00  IP: 219.130.13.*
恭喜喔!
^__^
# simon126303 发表于2005-11-19 22:06:00  IP: 219.150.201.*
太好了
#wqjch 发表于2005-11-18 21:09:00  IP: 218.19.143.*
很好
#魏孙鼎 发表于2005-11-22 08:39:00  IP: 219.136.16.*
老掉牙了,从Office97就开始用VBA了……
#DreamOfEyes 发表于2005-11-23 10:08:00  IP: 60.211.253.*
很好
支持周老师
#云中客 发表于2005-12-06 16:34:00  IP: 218.26.223.*
很不错,我是在CSDN上看到你的帖子的
#sywcf 发表于2006-01-26 09:07:00  IP: 218.61.151.*
为什么我引用Access的com组件做数据导出时,提示我:
带有 CLSID {73A4C9C1-D68D-11D0-98BF-00A0C90DC8D9} 的 COM 对象无效或未注册
#sywcf 发表于2006-01-26 09:34:00  IP: 218.61.151.*
如果机客户端机器上没装Excel,不行啊,怎么解决这个问题呢?
#爱死你了~~~ 发表于2006-02-07 17:34:00  IP: 218.69.88.*
对你~~

简直无法形容

一句话,,

太~~~爱你了
#zwfcan 发表于2006-02-15 14:42:00  IP: 10.198.1.37, 10.198.1.*
在vs2005中怎么不能这样引用
发表评论  


登录
Csdn Blog version 3.1a
Copyright © 长江支流