1 在.pro里添加 QT +=axcontainer,不是CONFIG +=qaxcontainer,qt5用qaxcontainer会报错
2 包含头文件时要用#include <ActiveQt/QAxObject>,不是#include <QAxObject>
3 下面展示的代码打开excel表格时可能会报错 QAxBase: Error calling IDispatch member Open: Unknown error
QAxObject* excel=new QAxObject(this);
excel->setControl("Excel.Application");
excel->setProperty("Visible",false); //不显示窗口信息
excel->setProperty("DisplayAlerts", false);//不显示任何警告信息。如果为true在关闭是会出现类似“文件已修改,是否保存”的提示
QAxObject *workbooks = excel->querySubObject("WorkBooks");//获取工作簿集合
workbooks->dynamicCall("Open (const QString&)",excelPath);//打开excel;
错误是由第六行引起的,如果把第三行的代码的false改成true就不会报错,但是程序会显示打开xls文件,如果想实现隐式的打开,我的这个电脑的解决方法很搞笑......感谢一个大佬的方法,看下面:
我这台电脑出现这个错误是因为福昕阅读器的关系,打开office卸载福昕的加载项就解决了,很无语,卸载方法如下:
- 进入office安装文件夹,进入office12文件夹,用管理员权限打开excel(word PowerPoint都行)
把关于FoxitReader的插件都删除就好了,要用管理员权限打开,否则会告诉你没法删除