C++ 如果Excel.Application不可见,则activeQt无法打开*.xls

C++ 如果Excel.Application不可见,则activeQt无法打开*.xls,c++,excel,qt,activeqt,C++,Excel,Qt,Activeqt,尝试使用activeQt打开*.xls文件时,请输入以下代码: QAxObject *excel = new QAxObject("Excel.Application", this); QAxObject *workbooks = excel->querySubObject("Workbooks"); QAxObject *workbook = workbooks->querySubObject("Open(const QString

尝试使用activeQt打开*.xls文件时,请输入以下代码:

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

因此,让它可见然后不可见对我来说不是一个令人满意的解决方案

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


我正在使用Qt 5.8.0、MS office 2016和MS office 2012。

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

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


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

此问题尚未解决!还在挣扎/