vc操作excel,workbooks.open函数出错,在线等

pp4u 2008-03-03 12:50:20
用vc和excel自动化,做一个dll,执行一切正常。
但如果word或其他office软件打开后,
程序中的
workbooks.open函数就会出错,错误code -2147417851

请问是什么原因,如何改正。谢谢。
...全文
1174 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
hs205118hs205118 2012-06-02
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]
ExcelApplication.CreateDispatch("Excel.Application", NULL);
workbooks = ExcelApplication.GetWorkbooks();
COleVariant vOpt(DISP_E_PARAMNOTFOUND, VT_ERROR);
workbooks.Open(m_strReportFile, vOpt, vOpt……
[/Quote]
表示认同!发现解决了!
scq2099yt 2008-03-04
  • 打赏
  • 举报
回复
参数不对,添加或删除相应参数
pp4u 2008-03-04
  • 打赏
  • 举报
回复
操作的是excel文件,正常使用一点问题都没有,但是如果桌面上还有其他的OFFICE软件(WORD,ACCESS,POWERPOINT)打开着,
workbooks.open函数就会出错,错误code -2147417851
china_bai 2008-03-04
  • 打赏
  • 举报
回复
打开了同一个workbooks造成的。

打开前应该先检查一下。
liru818 2008-03-04
  • 打赏
  • 举报
回复

ExcelApplication.CreateDispatch("Excel.Application", NULL);
workbooks = ExcelApplication.GetWorkbooks();
COleVariant vOpt(DISP_E_PARAMNOTFOUND, VT_ERROR);
workbooks.Open(m_strReportFile, vOpt, vOpt, vOpt, vOpt, vOpt, vOpt, vOpt, vOpt, vOpt, vOpt, vOpt, vOpt);

核对一下参数
suguanqun 2008-03-04
  • 打赏
  • 举报
回复
重新帮助描述问题:
现象:
用vc和excel自动化,做一个dll,然后通过cgi程序调用这个dll
1) 如果不启动word等其他office软件,执行正常。
2) 如果先执行一下其他的什么ASP页面,然后在执行这个cgi程序,执行正常。
3) 如果操作系统是windows98或NT4,在服务器上启动word等其他office软件后,执行也正常。
4) 如果操作系统是2000,在服务器上启动word等其他office软件,那么workbooks.open函数就会出错,错误code -2147417851 或0x80010105
suguanqun 2008-03-04
  • 打赏
  • 举报
回复
帮顶!!
wangk 2008-03-04
  • 打赏
  • 举报
回复
不传的参数应该用vtMissing才是正常写法。
而不是vOpt(DISP_E_PARAMNOTFOUND, VT_ERROR);

另外你可以参考
开源项目opensta下的ostaw32/src/http/UI/httpresultsdll工程对Excel的使用。
希望能对你写Excel的Automation有用。

http://opensta.sourceforge.net/
wangk 2008-03-03
  • 打赏
  • 举报
回复
-2147417851 = The server threw an exception.
同时打开同一文件?还是open的某些参数设置不对?

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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