如果不可见,ActiveQT将无法打开 *.xl

activeQt fails to open *.xls if the Excel.Application is not visible

本文关键字:xl ActiveQT 如果不      更新时间:2023-10-16

尝试使用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成员打开:未知错误

该程序意外完成。

我已经搜索了Internet,并发现excel将属性Visible设置为true,则所有内容都将顺利进行锻炼而不会出错。有趣的是,我必须在打开文件之前设置此属性,否则程序将压制。但是,如果打开文件后,我将其设置为true,Excel应用程序将正确显示(显示文件中的数据),但是程序会压碎。

我正在寻找真正的解决方案或问题的原因。我不希望用户随时可见excel

因此,使其可见,然后看不见是我的满足解决方案

P.S。整个月在我的笔记本电脑上整整一个月正确工作的代码相同,然后开始压碎。在我的工作场所,他们在PC上遇到了同样的问题,因此我的同事曾经在我的PC上运行他的应用程序来检查它们是否正常工作。这是一个坏习惯,因为我们不知道用户的情况

我正在使用QT 5.8.0,MS Office 2016和MS Office 2012。

我很久以前找到了解决方案,对不起。

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

P.S。问题可能是在任何MS Office应用程序中,请确保使用COM API将其关闭。