Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1932982
  • 博文数量: 699
  • 博客积分: 6000
  • 博客等级: 准将
  • 技术积分: 4970
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-15 13:45
文章分类

全部博文(699)

文章存档

2011年(1)

2008年(698)

我的朋友

分类:

2008-10-15 13:45:30

  一、用控件还是用OLEAutomation?
 
  这个问题应该说很常见。我也在任何可能的情况下坚持我的主张:用BCB 6提供的Server控件组。如果你是用Delphi 6/7版本开发,那么用Delphi提供的Server控件组。
 
  这样做有什么好处?我个人认为至少有如下两个:
 
  第一,维护结构化+OO的程序设计风格。例如:
 
 ExcelApplication1->set_DisplayAlerts(0,false);
ExcelApplication1->Quit();

  又如:
 
 int SheetCount=ExcelWorkbook1->Worksheets->Count;


  这些代码都还是比较直观的。而且很具有OO的美感。
 
  第二,强类型检查胜于弱类型检查。
 
  如果使用OleGetProperty或者OleSetProperty函数,那么对传递给这两个函数的参数,是没有办法控制的。例如,我完全可以随心设置一个单元格的属性FOO为100.但是这样的函数调用在运行期一定会出错。而使用Server控件就不会有这个问题——编译期就不能通过。可以在编译期发现并纠正的错误,不要留到运行期去解决。这是我的主张。
 
  二、必要的辅助手段
 
  使用BCB编写控制Excel的程序,是很繁琐的。因为有时编译通过后会出现难以琢磨的异常!又有一种很无助的感觉:BCB在这上面的帮助简直是BS.CodeInsight的速度又是相当的慢,无法忍受!
 
  不过,我们不要轻易放弃。根据我的经验,在BCB下要想好好掌握Excel编程,必须掌握三个获得帮助的途径。这三个获得帮助的途径就是(以我个人喜好的程度降序排列):
 
  Excel本身的宏命令。我现在的习惯是,如果我要在BCB中实现一个功能,但是却不知道相应的方法和参数,我就会打开Excel,在随便一个Sheet中用宏记录下我要进行的操作,然后研究宏代码。这样做,肯定能获得正确的方法名,但是对参数的数量和类型却不敢保证:这是因为VBA可以选择不PASS一些缺省参数。根据我的个人经验,这样做的有效性应该在80%左右,简易性在100%.
 

[1]      

【责编:huangchunmei】

--------------------next---------------------

阅读(614) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~