Variant::OlePropertySet()问题,在BCB5中正常,但在BCB6.0中却出错?(出错信息:不正确的变量类型)
Variant excelApp, workBook, workSheet;
Variant cell, cell1, cell2;
Variant range;
AnsiString title = "标题";
try
{
excelApp = Variant::CreateObject("Excel.Application");
workBook = excelApp.OlePropertyGet("Workbooks").OleFunction("Add");
workSheet = workBook.OlePropertyGet("Worksheets").OlePropertyGet("Item", 1); //这里出错
workSheet.OlePropertySet("Name", title);
}
catch (Exception &e)
{
Application->ShowException(&e);
excelApp.OleFunction("Quit");
return;
}
cell1 = workSheet.OlePropertyGet("Cells", 1, 1);
cell1.OlePropertySet("Value", title); //这里也出错
上面这段代码在BCB5中完全正常,可是放到BCB6.0中却出错,出错信息是“不正确的变量类型”。为什么?
问题点数:40、回复次数:9Top
1 楼Behard(我爱天安门)回复于 2003-12-04 00:43:56 得分 13
cell1.OlePropertySet("Value", title.c_str()); //这里也出错Top
2 楼ljianq(泉深水清)回复于 2003-12-04 08:43:56 得分 2
try
{
excelApp = Variant::CreateObject("Excel.Application");
excelApp.OlePropertyGet("Workbooks").OleFunction("Add");
workBook=excelApp.OlePropertyGet("ActiveWorkBook");
workSheet = workBook.OlePropertyGet("Sheets").OlePropertyGet("Item", 1);
workSheet.OlePropertySet("Name", title);
}
Top
3 楼BCB(天下三分明月夜,二分无赖是扬州)回复于 2003-12-04 09:05:11 得分 13
前天我刚答了这种贴子,很简单
http://expert.csdn.net/Expert/topic/2517/2517376.xml?temp=.4799005
类型用WideString代替AnsiString就可!!Top
4 楼BCB(天下三分明月夜,二分无赖是扬州)回复于 2003-12-04 09:13:43 得分 0
串解决了,
至于整数参数类型还要试试
Top
5 楼zhaowd()回复于 2003-12-04 09:19:22 得分 12
我也遇到过类似的问题,出错的地方如下改一下即可
cell1.OlePropertySet<WideString>("Value", title)Top
6 楼BCB(天下三分明月夜,二分无赖是扬州)回复于 2003-12-04 09:35:35 得分 0
同意楼上的写法,经试成功Top
7 楼Veeve()回复于 2003-12-04 09:37:58 得分 0
谢谢!
用 Behard(我爱天安门)的.c_str()
或BCB(天下三分明月夜,二分无赖是扬州)的WidString都能解决!
那为什么BCB5下OK而BCB6下却不行呢?Top
8 楼yhec(@_@ 俺是贫农俺怕谁)回复于 2003-12-04 09:49:25 得分 0
zhaowd() 的方法可以,
Top
9 楼zhaowd()回复于 2003-12-08 10:53:18 得分 0
这是模板调用,cb6中可能要你指明具体的类型才行Top




