BCB 打开Excel文件出错的问题

slmxy 2010-05-11 04:15:02

if(!OpenDialog2->Execute())return;
if(!FileExists(OpenDialog2->FileName)){
ShowMessage("没有找到指定文件,请正确选择文件存放路径。");
return;
}
Variant ExcelApp;
ExcelApp = CreateOleObject ("Excel.Application");
ExcelApp.PS("Visible", (Variant)false);
ExcelApp.OlePropertyGet("workbooks").OleFunction("open",OpenDialog2->FileName.c_str());

别的没问题,只是一到长文件名时就出错。
C:\Documents and Settings\Administrator\桌面\1.xls
打开这样一个文件时,提示"C:\Documents\and.xls"不存在。
我想一定是中间的空格产生的问题,请问怎么解决?
...全文
107 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
ccrun.com 2010-05-11
  • 打赏
  • 举报
回复
你用ShowMessage(OpenDialog2->FileName);显示什么?
slmxy 2010-05-11
  • 打赏
  • 举报
回复
我打开c:\1.xls就没问题,打开桌面或很深的文件夹时就出现文件没有找到。。。。
slmxy 2010-05-11
  • 打赏
  • 举报
回复
不对,还是不行,我试着乱打了一些字,这个好像只取30个字?
slmxy 2010-05-11
  • 打赏
  • 举报
回复
to wyhufo1106,tjianliang
OpenDialog2->FileName 值就是"C:\\Documents and Settings\\Administrator\\桌面\\1.xls",
to ccrun
String strXlsFile = AnsiQuotedStr(OpenDialog2->FileName, '"');
strXlsFile 的值是"\"C:\\Documents and Settings\\Administrator\\桌面\\1.xls\""
还是不行
提示 无法找到“C:\Documents and Setting.xls”。
哦,我想到了。谢谢。
ccrun.com 2010-05-11
  • 打赏
  • 举报
回复
在英文Win7中暂时没有发现这类问题.

改成这样试试:
String strXlsFile = AnsiQuotedStr(OpenDialog2->FileName, '"');
ExcelApp.OlePropertyGet("workbooks").OleFunction("open", strXlsFile.c_str());
wyhufo1106 2010-05-11
  • 打赏
  • 举报
回复
[Quote=引用楼主 slmxy 的回复:]
C/C++ code

if(!OpenDialog2->Execute())return;
if(!FileExists(OpenDialog2->FileName)){
ShowMessage("没有找到指定文件,请正确选择文件存放路径。");
return;
}
Variant ExcelApp;
Exc……
[/Quote]
文件名称的格式错误;改成下面的就可以:
"C:\\Documents and Settings\\Administrator\\桌面\\1.xls"


亮剑_ 2010-05-11
  • 打赏
  • 举报
回复
文件名加上双引号"

604

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder VCL组件使用和开发
社区管理员
  • VCL组件使用和开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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