读书人

关于BCB 6.0 操作EXCEL失误

发布时间: 2013-01-05 15:20:39 作者: rapoo

关于BCB 6.0 操作EXCEL出错
问题描述:
我使用下面的代码进行打开EXECL,并链接上一个工作薄,在我的机器上运行是正常的,但是放到没有安装BCB6.0的机器上就报错:
'this->get_Item(Index,(LPDISPATCH*)&RHS)':参数不正确。@d:\program files\bcb6\borland\cbuilder6\include\vcl\Excel_2k.h/9908 Press[Y]es to terminate,[N]o to contine and [C]ancel to Debug.

注:编译成程序前,我对程序的属性(Project->Options) Compile 页面进行了Release;Packages勾掉了Busild with runtime packages选项;Linker页面的Linking属性只选中了 Don't generate state files这个选项,其他的都勾掉了。
程序代码:


try
{
ExcelApplication1->Connect();
}
catch(...)
{
ShowMessage("Excel Not Availabe!");
return;
}

ExcelApplication1->set_Caption((WideString)"TEST");
ExcelApplication1->set_Visible(0,true);

ExcelWorkbook1->ConnectTo(ExcelApplication1->Workbooks->Add(TNoParam(),0));
ExcelWorksheet1->ConnectTo(ExcelWorkbook1->Worksheets->get_Item(TVariant("Sheet1")));//貌似就是这里报错了

程序使用的头文件

#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>

#include <OleServer.hpp>
#include <ExtCtrls.hpp>
#include <ComCtrls.hpp>
#include "Excel_2K_SRVR.h"


ps:分不多,仅在此感谢各位的帮助~
[解决办法]
我认为这个必须要装excel的
这些只是封装了ole对excel的操作,没有装excel,是无发执行操作的。
[解决办法]
将代码屏蔽一部分,在另外的机器上运行到
ExcelWorkbook1->ConnectTo(ExcelApplication1->Workbooks->Add(TNoParam(),0));

这一句执行以后,看看打开的Excel中新添加的表名是什么?

读书人网 >C++ Builder

热点推荐