首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果activeQt不可见,则*.xls无法打开

如果activeQt不可见,则*.xls无法打开
EN

Stack Overflow用户
提问于 2017-09-16 17:47:23
回答 1查看 373关注 0票数 0

尝试使用*.xls和代码打开activeQt文件时:

代码语言:javascript
复制
QAxObject *excel = new QAxObject("Excel.Application", this);
QAxObject *workbooks = excel->querySubObject("Workbooks");
QAxObject *workbook = workbooks->querySubObject("Open(const QString&)", "c:\\somefile.xls");
QAxObject *worksheets = workbook->querySubObject("Worksheets");
QAxObject *worksheet = worksheets->querySubObject("Item(int)", 1);

我收到一个错误:

QAxBase:调用IDispatch成员时出错打开:未知错误 这个节目出乎意料地结束了。

我搜索了互联网,发现如果excel将属性Visible设置为true,那么一切都会顺利进行,不会出错。有趣的是,我必须在打开文件之前设置这个属性,否则程序会崩溃。但是,如果在打开文件后将其设置为true,excel应用程序将正确显示(显示文件中的数据),但程序会崩溃。

我正在寻找一个真正的解决办法,或问题的原因。我不希望excel在任何时候对用户可见。

所以让它显眼然后看不见对我来说不是一个令人满意的解决方案

附注:同样的代码曾经在我的笔记本电脑上运行了整整一个月的时间都是100%正确的,然后它开始崩溃。在我的工作场所,他们在电脑上也有同样的问题,所以我的同事经常在我的电脑上运行他的应用程序来检查它们是否工作。这是个坏习惯,因为我们不知道用户会遇到什么情况

我正在使用QT5.8.0,MS office 2016和MS office 2012。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-03-10 17:14:02

我很久以前就找到了解决方案,很抱歉没有更新。

整个问题都是因为Foxit插件。我在微软办公室停用了它,一切都很好。

问题可能出现在任何MS office应用程序中,请确保在使用COM之前将其关闭。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46256787

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档