Qt对word文档操作总结
Qt對word文檔操作總結
近期在使用Qt對word進行讀寫操作時候遇到很多問題,對于Qt內部沒有很好的庫函數可以使用。office官網上的文檔只有VBA的示例,沒有Qt的語法例子。在這里作者介紹了一個流程可以在Qt上完美對接Word接口。
QT += axcontainer
Qt雖然沒有很好地提供office的接口,但是還是提供了一個對COM object操作的方法。
Header:#include <QAxObject> qmake:QT += axcontainer Inherits:QObject and QAxBase Inherited By:QAxScriptEngine在這里我們可以使用QAxObject對象,操作office。
主要利用以下幾個函數:
這里先不介紹怎么用,在本文最后會講解。
Word宏
word宏對于非開發word的人員基本用不上,但是我們要對接office,需要對此有一定了解。
在word的視圖中可以找到此位置。
那宏代表了什么意思呢?其實就是我們人為在word中進行操作過程轉換為了代碼形式。那我們拿到對應的代碼形式,轉換為Qt可以執行的代碼,那我們是不是可以通過Qt對office進行操作了?
這里我們通過對word插入分頁符操作進行舉例。
至此,我們獲得了office word對于分頁操作的代碼。
其實就是中間的Selection.InsertBreak Type:=wdPageBreak
就是對Selection對象的方法InsertBreak進行操作
Word幫助文檔
2. 點擊word對象模型參考
3. 點擊word對象模型參考
4. 找到Selection對象,點擊進去
5. 點擊Selection對象成員,點擊進去找到InsertBreak
6. 可以點擊InsertBreak
在這里可以看到此方法的具體說明。
Qt中的具體使用方法
我們在上面的方法中找到了具體的使用函數。
QAxObject* wordApplication = new QAxObject("Word.Application"); QAxObject* applicationDocuments = wordApplication->querySubObject("Documents"); QAxObject* activeDocument = wordApplication->querySubObject("ActiveDocument");//獲取當前激活的文檔 QAxObject* selection = wordApplication->querySubObject("Selection"); selection->dynamicCall("InsertBreak(int)", 7);首先先獲取一個word對象,然后得到當前激活的文檔,然后獲取選擇的對象Selection,就和上面的Selection對象一樣,然后用dynamicCall方法執行Selection的InsertBreak方法。
相同地,我們也可以得到很多類似的操作如:
保存文件:
activeDocument->dynamicCall("SaveAs(const QString&)",QDir::toNativeSeparators(wordSaveName));插入文字:
wordSelection->dynamicCall("TypeText(const QString&)",text);設置居中:
wordSelection->querySubObject("ParagraphFormat")->setProperty("Alignment","wdAlignParagraphCenter");設置字體大小:
wordSelection->querySubObject("Font")->setProperty("Size",fontsize);總結
以上是生活随笔為你收集整理的Qt对word文档操作总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【3Dtiles】3Dmax模型处理为g
- 下一篇: 小程序 权限设置