C++Builder 6中开发Office程序心得(一)
/ *********************************************************************// interface IWorksheets : public IDispatch { public: ... ... HRESULT STDMETHODCALLTYPE Copy(VARIANT Before/*[in,opt]*/= TNoParam(), VARIANT After/*[in,opt]*/= TNoParam(), ... ... HRESULT STDMETHODCALLTYPE Move(VARIANT Before/*[in,opt]*/= TNoParam(), VARIANT After/*[in,opt]*/= TNoParam(), long lcid/*[in]*/= TDefLCID()); // [637] ... ... 三、编程指南 (一) ExcelApplication的启动、退出 我们平时所说的启动/退出Excel,在BCB6中应该被确切的说成是ExcelApplication的启动/退出。对应的控件是。用来启动、退出的代码分别如下: void __fastcall TMainForm::EABtnClick(TObject *Sender) 注意,Office控件多以接口形式互相关联,所以连接的方法也被贯之以Connect的名称。由于Excel Application一定是顶层对象,所以它的Connect方法不需要指定参数。 set_Caption是用来设置Excel Application的标题。请注意要用WideString,而不是String。 set_Visible(0, true)是使Excel Application可见。这里参数0是Locale ID。 Excel控件的封装是很奇怪的——也许是因为BCB 6只支持到Office 2000而目前我们基本都是要操作Office 2003而引起的版本兼容问题。一般来说,我们希望直接使用类似属性的操作方法来修改。但是,有些属性,如Visible,就必须用“set_属性/get_属性 ”的方式进行操作。这不是说Excel Application控件中没有Visible这个属性。这个属性确实存在于Excel Application控件中,但是如果你想直接操作Visible属性,那么无论你写成:“EA->Visible=true;”还是“EA->Visible[0]=true;”,编译时都会出错!提示“TExcelApplication::Visible is not accessible. ”。而更奇怪的是,如果我们直接操作属性,那么即使编译能够通过,也可能没有实际效用!有兴趣的读者可以测试一下Caption属性的操作。 一般而言,用set_属性/get_属性的方式,一定可以操作一个属性。但是,有些Set方法的命名也不遵守这个规律,后文即将涉及。 退出时,可以根据个人的喜好,设置DisplayAlerts属性。如果设置为true,那么在退出时,如果对Sheet或Workbook进行了一些需要存盘的操作,会有一个确认框出现。 以前曾经有一种说法,说是这样启动并正常退出的Excel Application,退出后会在内存中留下一个Excel进程。在我的机器上,没有这样的情形。 需要补充的是ExcelApplication控件的ConnectKind属性。它一共有五个可选值:ckAttachToInterface/ckNewInstance/ckRunningOrNew/ckRemote/ckRunning。一般我都会用ckRunningOrNew。其它的选项我倒没有进行过测试。 (三) ExcelWorksheet的操作 在上文连接Workbook的代码中,我也同时连接了TExcelWorksheet,其控件图标是。所以完整的代码段如下:
|
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |