Qt 对word的基本简单操作
环境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
#define MYWORD_H
/********************************************
*提供一个操作word的类
*该类具有以下功能:
*1.指定标签插入文字
*
*
*********************************************/
#include <QObject>
#include <QAxObject>
#include <QAxWidget>
class MyWord : public QObject
{
Q_OBJECT
public:
explicit MyWord(QObject *parent = 0);
private:
QString m_fileName;//存入位置
QAxWidget *m_pWord;
QAxObject *m_pDocuments;
QAxObject *m_pDocument;//
public:
void createWordDocument();//创建word文档
bool insertText(QString Tag, QString text);//往标签处插入文字
void saveAndQuit(const QString &text);//保存文档并退出
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: