QT实现Word读写

来源:互联网 发布:天刀捏脸数据女妩媚 编辑:程序博客网 时间:2024/06/18 05:27

在windows环境下,我们可以通过ActiveQt实现Office自动化,相当于VB的VBA功能。

实现的环境是MinGW+QT4.8.5(好像4.7以上才支持QAx)

在以下这个网址可以看到所有的OFFICE方法:

http://msdn.microsoft.com/en-us/library/aa272160%28v=office.11%29.aspx

以下是一个实例:

#include <QtGui/QApplication>
#include <QAxWidget>
#include <QAxObject>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    //隐式的打开一个word应用程序
    QAxWidget word("Word.Application");
    word.setProperty("Visible", false);

    //获取所有工作文档
    QAxObject * documents = word.querySubObject("Documents");
    //创建一个word文档
    documents->dynamicCall("Add (void)");
    //获取当前激活的文档
    QAxObject * document = word.querySubObject("ActiveDocument");
    //写入文件内容
    QAxObject *selection = word.querySubObject("Selection");
    selection->dynamicCall("TypeText(const QString&)","hello world");
    //设置保存
    QVariant newFileName("C:/test.doc"); //存放位置和名称
    QVariant fileFormat(1); //文件格式
    QVariant LockComments(false);
    QVariant Password("123456");     //设置打开密码
    QVariant recent(true);
    QVariant writePassword("");
    QVariant ReadOnlyRecommended(false);

    document->querySubObject("SaveAs(const QVariant&, const QVariant&,const QVariant&, const QVariant&, const QVariant&, const QVariant&,const QVariant&)",    newFileName, fileFormat, LockComments, Password, recent, writePassword, ReadOnlyRecommended);
    //关闭文档
    document->dynamicCall("Close (boolean)", true);
    //退出
    word.dynamicCall("Quit (void)");

    return 0;

}


注意在.pro文件中需要添加语句:CONFIG += qaxcontainer

0 0
原创粉丝点击