qt操作word

这篇博客介绍了如何利用Qt处理Word模板,创建一个*.dat格式的模板文件,内含书签,便于程序动态替换内容。书签名设定为'b',并且要求操作者电脑上已安装Word。

1.首先简历一个word模板,*.dat格式的模板,然后在里面编写内容,加上自己的书签。我这里的书签名是 b。

注意:自己电脑上必须装有word

2.源码:

#include <QtWidgets/QWidget>
#include <QtWidgets/QApplication>
#include <QAxWidget>
#include <QAxObject>
#include <QTextCodec>
#include "windows.h"
#include <qt_windows.h>
#include "file.h"

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

    QTextCodec::setCodecForLocale(QTextCodec::codecForLocale());//显示中文
    QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF-8"));

    //这个事在书签处添加的内容

    QString text = "  验证满足欧标的列车通风系统特性,空调系统布置的合理性,是否满足舒适性要求,同时通过模型试验进一步优化空调送 、回风系统";

    //File f;
    QAxWidget word("Word.Application");                         //调用word组件

    word.setProperty("Visible", true);                          //设置为可见

    QAxObject * documents = word.querySubObject("Documents");   //获取所有工作的文档

    documents->dynamicCall("Add (QString)",QString::fromLocal8Bit("E:/template.dot"));//以template为模板新建个一个word文档

    QAxObject * document = word.querySubObject("ActiveDocument");//激活当前文档

    QAxObject*bookmark_code=document->querySubObject("Bookmarks(QVariant)","b");//第二个参数为自己的书签名
    if(!bookmark_code->isNull())
    {
        bookmark_code->dynamicCall("Select(void)");
        bookmark_code->querySubObject("Range")->setProperty("Text",text);
    }

    document->dynamicCall("SaveAs (const QString&)", QString("E:/docbyqt.doc"));//另存为docbyqt.doc

    document->dynamicCall("Close (boolean)", false);                //关闭工作文档

    word.dynamicCall("Quit (void)");                                 //退出应用程序

    return app.exec();
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值