Excel 二次开发系列(1): Excel 编成模型

Excel 编程模型的说明

引用徐文兵的博客: http://www.cnblogs.com/macroxu-1982/archive/2006/11/21/567305.html



在这里
,就大概描述了在Excel 编程中常用的对象的层次关系。

Excel Application   代表整个 Microsoft Excel 应用程序,

WorkBook            代表 Microsoft Excel 工作簿

Range                    代表某一单元格、某一行、某一列、某一选定区域(该区域可包含一个或若干连续单元格区域),或者某一三维区域。

Areas                       选定区域内的子区域或连续单元格块的集合。

Borders                 代表对象的边框。

Characters             代表包含文本的对象中的字符。可用 Characters 对象修改包含在完整文本字符串中的任意字符序列。

Font                        包含对象的字体属性(字体名称、字体大小、字体颜色等)。

ListRow                 代表列表对象中的一行。

Errors                      表示区域的电子表格错误。

 

Excel进程在程序中处理
徐先生在Excel进程中出理的方式用了时间推算法,虽然不失为一种方法,但是这不是一个很好的办法,因为当客户在这个时间内打开一个Excel 文档的时候,在运用程序关闭的同时也关闭了用户打开的这个程序,这是用户不想看到的,当然,在多用户的条件下运行,就像徐说的,也是有问题的。我们知道,Excel编程调用了COM 组建,要释放其资源是一件很头疼的事情,除此之外,在Debug下,调式程序也是很难的意见事情,因为有时候行号和当前的光标不匹配,给调式带来视觉误差。调式也是要一定技巧的,以后有时间慢慢说。回到资源释放问题:我也查阅了很多资料,一般有以下几种解决方法:

(1). 在对象退出之前调用系统已有方法进行释放。例如:
     

      Excel.Application app = new Excel.Application();//open one Excel application 
        .............    

     app.Quit();//quit the Excel application and release resource

一般的话只要调用这个Quit()这个方法,资源一般都会释放。
(2). 为确宝资源的释放,可以在运行程序退出后,在RunTime再次对垃圾进行回收,可以用如下方法:

 

ReleaseCOM

经过测试一般是没什么问题的,注意释放的顺序。

posted @ 2009-10-15 11:17  tomin  阅读(8943)  评论(7编辑  收藏  举报