在本文中,我将结合我的个人经验,和大家讨论一下在BCB 6 中开发Office(主要是Ex cel)程序的心得
一、用控件还是用 OLEAu tomation
这个问题应该说很常见
我也在任何可能的情况下坚持我的主张:用 BCB 6 提供的Serv er控件组
如果你是用 Delphi 6/7 版本开发,那么用 Delphi 提供的Serv er 控件组
这样做有什么好处
我个人认为至少有如下两个: 第一,维护结构化+OO 的程序设计风格
例如: Ex celApplication1->set_Display Alerts(0,false); Ex celApplication1->Qu it(); 又如: int SheetCou nt=Ex celWorkbook1->Worksheets->Cou nt; 这些代码都还是比较直观的
而且很具有 OO 的美感
第二,强类型检查胜于弱类型检查
如果使用 OleGetProperty 或者 OleSetProperty 函数,那么对传递给这两个函数的参数,是没有办法控制的
例如,我完全可以随心设置一个单元格的属性 FOO 为 100
但是这样的函数调用在运行期一定会出错
而使用 Serv er 控件就不会有这个问题——编译期就不能通过
可以在编译期发现并纠正的错误,不要留到运行期去解决
这是我的主张
二、必要的辅助手段 使用 BCB 编写控制 Ex cel 的程序,是很繁琐的
因为有时编译通过后会出现难以琢磨的异常
又有一种很无助的感觉:BCB 在这上面的帮助简直是BS
CodeInsight 的速度又是相当的慢,无法忍受
不过,我们不要轻易放弃
根据我的经验,在BCB 下要想好好掌握 Ex cel 编程,必须掌握三个获得帮助的途径
这三个获得帮助的途径就是(以我个人喜好的程度降序排列): 1
Ex cel