久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

Qt對(duì)Word的自動(dòng)化調(diào)用(基于dot模板生成)

 myallmy 2022-10-05 發(fā)布于北京

同樣需要使用QT += axcontainer

同樣需要注意:新建QAXObject,完成操作后需要關(guān)閉文檔并刪除m_pWord指針,!

這樣word應(yīng)用程序會(huì)在后臺(tái)自動(dòng)退出!

  1. #ifndef WORD_H
  2. #define WORD_H
  3. #include <QObject>
  4. #include <QAxObject>
  5. #include <QAxWidget>
  6. class Word : public QObject
  7. {
  8. Q_OBJECT
  9. public:
  10. explicit Word(QObject *parent = nullptr);
  11. ~Word();
  12. private:
  13. QString m_fileName;//存入位置
  14. QAxWidget *m_pWord;
  15. QAxObject *m_pDocuments;
  16. QAxObject *m_pDocument;//
  17. const QString dot = "ZYLH1220本安穩(wěn)壓電源老化報(bào)告模板.dot";
  18. public:
  19. void createWordDocument();//創(chuàng)建word文檔
  20. bool insertText(QString Tag, QString text);//往標(biāo)簽處插入文字
  21. void saveAndQuit(const QString &text);//保存文檔并退出
  22. signals:
  23. public slots:
  24. };
  25. #endif // WORD_H
  1. #include "word.h"
  2. #include <QFileDialog>
  3. #include <QDebug>
  4. #include <QCoreApplication>
  5. Word::Word(QObject *parent) : QObject(parent)
  6. {
  7. m_pWord = nullptr;
  8. m_pDocument = nullptr;
  9. }
  10. Word::~Word()
  11. {
  12. }
  13. void Word::createWordDocument()
  14. {
  15. m_pWord = new QAxWidget("Word.Application");//新建一個(gè)word應(yīng)用程序
  16. m_pWord->setProperty("Visible", false);//不顯示窗體
  17. QAxObject *pDocuments = m_pWord->querySubObject("Documents");
  18. pDocuments->dynamicCall("Add(Qstring)", QCoreApplication::applicationDirPath() + "/" + dot);//模版目錄
  19. m_pDocument = m_pWord->querySubObject("ActiveDocument");//獲取當(dāng)前激活的文檔
  20. }
  21. bool Word::insertText(QString Tag, QString text)
  22. {
  23. if (m_pDocument->isNull()) return false;//首先判斷有沒有獲取當(dāng)前激活的文檔,,沒有則返回失敗
  24. QAxObject *pBookMarkCode = m_pDocument->querySubObject("Bookmarks(QVariant)", Tag);//獲取指定標(biāo)簽
  25. if (pBookMarkCode)
  26. {
  27. pBookMarkCode->dynamicCall("Start");//選擇該指定標(biāo)簽
  28. pBookMarkCode->querySubObject("Range")->setProperty("Text", text);//往標(biāo)簽處插入文字
  29. delete pBookMarkCode;
  30. return true;
  31. }
  32. return false;
  33. }
  34. void Word::saveAndQuit(const QString &text)
  35. {
  36. m_pDocument->dynamicCall("SaveAs(const QString&)", QDir::toNativeSeparators(text));//“/”換成“\”,;否則在windows下保存不成功
  37. m_pDocument->dynamicCall("Close()");//關(guān)閉
  38. m_pWord->dynamicCall("Quit()");//退出
  39. delete m_pWord;
  40. }

以上代碼基于對(duì)此文的改進(jìn),!

原文:提示沒有該屬性,正確的應(yīng)該是start,;

 pBookMarkCode->dynamicCall("Selection");//選擇該指定標(biāo)簽

Quit的調(diào)用主題應(yīng)該是m_pWord,; 

最后delete;

Qt 對(duì)word的基本簡(jiǎn)單操作_小鳥cc的博客-CSDN博客_qt word

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn),。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多