首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

RAD Studio XE2 打开Execl 异常

2012-12-29 
RAD Studio XE2打开Execl 错误?调用 Ex.OlePropertyGet(WorkBooks).OleProcedure(Open,ExcelFileName.

RAD Studio XE2 打开Execl 错误?
调用
 Ex.OlePropertyGet("WorkBooks").OleProcedure("Open",ExcelFileName.c_str());
发生错误,提示文件无法打开,提示的文件名是我ExeclFileName中的名字,但没有我后添加的"\\info.xls";
或者就是与\\info.xls"不符合;
后来改成 AnsiString ExcelFileName = GetCurrentDir()+L"\\info.xls";或 AnsiString ExcelFileName = GetCurrentDir()+U"\\info.xls";
但还是错误,或者就报无法访问 "win32"

急求原因!!!!!!!!!!!!!!
此代码bcb6下可以使用

代码:
 AnsiString ExcelFileName = GetCurrentDir()+"\\info.xls";
 if(!FileExists(ExcelFileName))
 {
  Application->MessageBox("报表模板文件不存在,无法打开!","错误",MB_ICONSTOP|MB_OK);
  return;
 }
 try
 {
  Ex = Variant::CreateObject("Excel.Application");
  }
  catch(...)
 {
  Application->MessageBox("无法启动Excel","错误",MB_ICONSTOP|MB_OK);
  return;
 }
 Ex.OlePropertySet("Visible",false);

 Ex.OlePropertyGet("WorkBooks").OleProcedure("Open",ExcelFileName.c_str());
 Wb = Ex.OlePropertyGet("ActiveWorkBook");
 Sheet = Wb.OlePropertyGet("ActiveSheet");//获得当前默认的Sheet
 row = Sheet.OlePropertyGet("UsedRange").OlePropertyGet("Rows").OlePropertyGet("Count");
[解决办法]
改成这样:

WideString ExcelFileName = GetCurrentDir() + WideString("\\info.xls");
...
Ex.OlePropertyGet("WorkBooks").OleProcedure("Open", ExcelFileName);
...

热点排行