qt中如何使用ActiveX讀寫word

qt中如何使用ActiveX讀寫word

參考資料

首先要搞懂COM的原理
推薦書籍潘愛民的《COM原理與應用》
其次推薦Qt幫助中的幾個關鍵詞:Active Qt,QAxBase,QAxObject and QAxWidget
同時推薦《word實戰精粹》中關於在word2010中錄製宏的方法
其它參考鏈接如下
COM相關書籍推薦
如何查找和使用 Office 對象模型文檔
使用 Visual C++ 的辦公室自動化

添加ActiveQt模塊

在Qt creator中的Pro文件中添加CONFIG+=axcontainer,注意這是在Qt5中,Qt4中添加CONFIG+=qaxcontainer
在VS2013+Qt5中在Pro文件添加上面的配置沒有效果,會提示鏈接錯誤
Active Qt鏈接錯誤

解決方法:VS2013菜單欄Qt5-》Qt Project Setting-》勾選Active Qt
qt modules添加

同時記得添加頭文件

#include <ActiveQt/QAxBase> 
#include <ActiveQt/QAxWidget>
#include <ActiveQt/QAxObject>

路徑問題

最後說一下樓主自己遇到傻逼問題
加載外部圖像或文件的路徑時如果路徑表示爲字符串常量,記得使用完整絕對路徑加轉義字符表示路徑分割符
像下面這種肯定是找不到的

documents->dynamicCall("Add(QString)",".//template.dot");
documents->dynamicCall("Add(QString)","template.dot");

最好利用Qt的QDir類

documents->dynamicCall("Add(QString)",QDir("./template.dot").absolutePath());
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章