关于BCB 6.0 操作EXCEL出错

荒村归来 2012-09-07 10:04:46
问题描述:
我使用下面的代码进行打开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:分不多,仅在此感谢各位的帮助~
...全文
171 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
at_sea 2013-10-29
  • 打赏
  • 举报
回复
谢谢!我也遇到了这个问题,不过我的故障表现是:在同一台机器上的Debug版本OK,Release版本出现这个错误。然后按huangcunguilai的方法解决了。 另外,在编译Release版本时,Project->Options Compiler->Code optimization->Speed经常出问题,改为None就没事了,不知道为什么。
ccrun.com 2012-11-02
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]
谢谢妖哥啦~这个问题解决了
解决方法如下:
将 Project->Options Compiler页的 Disable inline expansions 勾选上就可以在别的机器上运行了
可惜不知道为什么?妖哥能帮忙解释下吗?[/Quote]

我也不知道内联为什么和你描述的故障有关系。
荒村归来 2012-09-14
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]
将代码屏蔽一部分,在另外的机器上运行到
ExcelWorkbook1->ConnectTo(ExcelApplication1->Workbooks->Add(TNoParam(),0));

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

谢谢妖哥啦~这个问题解决了
解决方法如下:
将 Project->Options Compiler页的 Disable inline expansions 勾选上就可以在别的机器上运行了
可惜不知道为什么?妖哥能帮忙解释下吗?
ccrun.com 2012-09-07
  • 打赏
  • 举报
回复
将代码屏蔽一部分,在另外的机器上运行到
ExcelWorkbook1->ConnectTo(ExcelApplication1->Workbooks->Add(TNoParam(),0));

这一句执行以后,看看打开的Excel中新添加的表名是什么?
荒村归来 2012-09-07
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
我认为这个必须要装excel的
这些只是封装了ole对excel的操作,没有装excel,是无发执行操作的。
[/Quote]

电脑上安装的是同一版本的EXCEL~~
缘中人 2012-09-07
  • 打赏
  • 举报
回复
我认为这个必须要装excel的
这些只是封装了ole对excel的操作,没有装excel,是无发执行操作的。

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧