环境windows 7,Qt版本5.7.0 1.在pro文件中添加 Qt += axcontainer;(Qt4版本添加Qt += qaxcontainer) 2.模版简历:新建一个word,设置书签,保存(将后缀名改成.dot) 3.工程链接:链接:https://pan.baidu.com/s/1gpR58B8QRbaPLaKP8v_yaw 密码:aao8 4.具体代码: .h #ifndef MYWORD_H /********************************************
class MyWord : public QObject private: public: signals: public slots: #endif // MYWORD_H . .cpp #include "myword.h" #include <QFileDialog> #include <QDebug> MyWord::MyWord(QObject *parent) : QObject(parent) { m_pWord = NULL; m_pDocuments = NULL; m_pDocument = NULL; } void MyWord::createWordDocument() { m_pWord = new QAxWidget("Word.Application");//新建一个word应用程序 m_pWord->setProperty("Visible", false);//不显示窗体 QAxObject *pDocuments = m_pWord->querySubObject("Documents"); pDocuments->dynamicCall("Add(Qstring)", QString::fromLocal8Bit("C:/Users/chenpeng/Desktop/untitled.dot"));//模版目录 m_pDocument = m_pWord->querySubObject("ActiveDocument");//获取当前激活的文档 } bool MyWord::insertText(QString Tag, QString text) { if (m_pDocument->isNull()) return false;//首先判断有没有获取当前激活的文档,没有则返回失败 QAxObject *pBookMarkCode = m_pDocument->querySubObject("Bookmarks(QVariant)", Tag);//获取指定标签 if (pBookMarkCode) { pBookMarkCode->dynamicCall("Selection");//选择该指定标签 pBookMarkCode->querySubObject("Range")->setProperty("Text", text);//往标签处插入文字 delete pBookMarkCode; return true; } return false; } void MyWord::saveAndQuit(const QString &text) { m_pDocument->dynamicCall("SaveAs(const QString&)", QDir::toNativeSeparators(text));//“/”换成“\”;否则在windows下保存不成功 m_pDocument->dynamicCall("Colse(boolean)", true);//关闭 m_pDocument->dynamicCall("Quit()");//退出 } 模版: 导出word:
|
|