1. Qt/Windows桌面版提供了ActiveQt框架,用以为Qt和ActiveX提供完美结合。ActiveQt由两个模块组成:

    A   QAxContainer模块允许我们使用COM对象并且可以在Qt应用程序中嵌入QActive控件。

B   QAxServer模块允许我们导出使用Qt编写的自定义的COM对象和Active控件。

C   在这里,我们使用了QAxContainer模块,所以在.pro中,需要使用下面这一项来链接这个QAxContainer模块:CONFIG+=qaxcontainer(注意:在QT5.3中使用的是:QT
+= widgets gui axcontainer)。


在头文件中包含QAxWidget和QAxObject。

  1. 操作步骤:

    A  新建一个word文档,内容如下:

    B  选中项目编码下的一个单元格,点击上面菜单栏中的
    ”插入à书签”,添加如下书签:

  2. 新建项目(ActiveQt)进行测试

ActiveQt.pro

SOURCES
+=
\

main.cpp

QT
+=
widgets gui
axcontainer

main.cpp

#include <QApplication>
#include <QAxObject>
#include <QAxWidget>
 
/**
 * Qt/Windows桌面版提供了ActiveQt框架,用以为Qt和ActiveX提供完美结合。ActiveQt由两个模块组成: 
 * QAxContainer模块允许我们使用COM对象并且可以在Qt应用程序中嵌入QActive控件。 
 * QAxServer模块允许我们导出使用Qt编写的自定义的COM对象和Active控件。 
 * 在这里,我们使用了QAxContainer模块,所以在.pro中,需要使用下面这一项来链接这个QAxContainer模块:
 * CONFIG+=qaxcontainer(注意:在QT5.3中使用的是:QT += widgets gui axcontainer)。
 * 在头文件中包含QAxWidget和QAxObject。 
 * 操作word的步骤:  
 */
 
int main(int argc,char *argv[])
{
    QApplication app(argc,argv);
 
    //新建一个word应用程序
    QAxWidget *word = new QAxWidget("Word.Application",0,Qt::MSWindowsOwnDC);
    //并设置为可见
    word->setProperty("Visible",true);
 
    //获取所有的工作文档
    QAxObject *documents = word->querySubObject("Documents");
    //以template.dot为模板新建一个文档
    documents->dynamicCall("Add(QString)",QString::fromLocal8Bit("E:/template.dot"));
    //获取当前激活的文档
    QAxObject *document = word->querySubObject("ActiveDocument");
 
    //获取文档中名字为code的标签
    QAxObject *bookmark_code = document->querySubObject("Bookmarks(QVariant)","code");
    //选中标签,将字符textg插入到标签位置
    if(!bookmark_code->isNull())
    {
        bookmark_code->dynamicCall("Select(void)");
        bookmark_code->querySubObject("Range")->setProperty("Text","textg");
    }
    //将文件保存为template.docx,同样可以生成doc文档
    document->dynamicCall("SaveAs (const QString&)",QString("E:/template.docx"));
    document->dynamicCall("Close (boolean)",false);
    word->dynamicCall("Quit()");
 
    return app.exec();
}

E
盘中的运行结果:

2.QT中操作word文档的更多相关文章

  1. c#中操作word文档-四、对象模型

    转自:http://blog.csdn.net/ruby97/article/details/7406806 Word对象模型  (.Net Perspective) 本文主要针对在Visual St ...

  2. c#中操作word文档-一、模板方式写入

    转载自:http://blog.csdn.net/fujie724/article/details/5443322 适合模板写入 今天正好有人问我,怎么生成一个报表式的Word文档. 就是文字的样式和 ...

  3. c#中操作word文档-三、MSDN文档

    这是关于word读写的MSDN内容,基本所有的方法都可以在这上面找到 https://msdn.microsoft.com/zh-cn/library/office/ff837519.aspx

  4. C# 中使用Word文档对图像进行操作

    C# 中使用Word文档对图像进行操作 Download Files: ImageOperationsInWord.zip 简介 在这篇文章中我们可以学到在C#程序中使用一个Word文档对图像的各种操 ...

  5. Java文件操作系列[3]——使用jacob操作word文档

    Java对word文档的操作需要通过第三方组件实现,例如jacob.iText.POI和java2word等.jacob组件的功能最强大,可以操作word,Excel等格式的文件.该组件调用的的是操作 ...

  6. 如何在程序中给word文档加上标和下标

    如何在程序中给word文档加上标和下标 上标或下标是一个小于普通行格式的数字,图形,标志或者指示通常它的设置与行相比偏上或偏下.下标通常显示于或者低于基准线,而上标则高于.上标和下标通常被用于表达公式 ...

  7. iText操作word文档总结

    操作word文档的工具有很多,除了iText之外还有POI,但是POI擅长的功能是操作excel,虽然也可以操作word,但是能力有限,而且还有很多的bug,技术并不成熟,下面就重点介绍一种操作wor ...

  8. C#操作Word文档(加密、解密、对应书签插入分页符)

    原文:C#操作Word文档(加密.解密.对应书签插入分页符) 最近做一个项目,客户要求对已经生成好的RTF文件中的内容进行分页显示,由于之前对这方面没有什么了解,后来在网上也找了相关的资料,并结合自己 ...

  9. 在Delphi中处理word文档与数据库的互联 1

    在Delphi中处理word文档与数据库的互联 ---- 目前,Delphi被越来越多的人选中作为MIS系统开发中的前台工具.在以Delphi为前台,一些大型数据库为后台的MIS系统中,图形的处理不可 ...

随机推荐

  1. Codeforces 671 D. Roads in Yusland

    题目描述 Mayor of Yusland just won the lottery and decided to spent money on something good for town. Fo ...

  2. [Spoj]Counting Divisors (cube)

    来自FallDream的博客,未经允许,请勿转载,谢谢. 设d(x)表示x的约数个数,求$\sum_{i=1}^{n}d(i^{3})$ There are 5 Input files. - Inpu ...

  3. quartz问题记录-missed their scheduled fire-time

    这里有3个原因:1.所有的woker thread(工作线程; 辅助线程)都在运行其他的job2.scheduler(调度器)down了(关于这个down.我不太明确是shutdown了..还是挂掉了 ...

  4. 根据构建类型自动修改依赖库的BuildConfig.DEBUG的值

    app模块引用了library,在library模块中控制日志输出使用的是 if (BuildConfig.DEBUG) { logger.d("print %s", msg); ...

  5. 如何使用GitHub

    进行版本控制时,我们可以直接通过网页来进行版本控制,也可以下载git客户端.值得注意的是,git的客户端有很多种,具体的可以参考:https://git-scm.com/downloads/guis/ ...

  6. Nginx+Tomca+Redis实现负载均衡、资源分离、session共享

    目标实现:Nginx作为负载均衡后端多Tomcat实例,通过Redis实现Session共享. 操作系统环境:CentOS 6.8 SSH:SecureCRT 其中 Nginx服务:80端口 Tomc ...

  7. 详解linux进程间通信-信号

    前言:之前说看<C++ Primer >暂时搁浅一下,迷上公司大神写的代码,想要明白,主要是socket.进程间通信! 知道进程间通信:信号.信号量.管道.消息队列.共享内存(共享存储), ...

  8. JAVA GC垃圾收集器的分析

    本篇文章主要介绍了"JAVA GC垃圾收集器的分析",主要涉及到JAVA GC垃圾收集器的分析方面的内容,对于JAVA GC垃圾收集器的分析感兴趣的同学可以参考一下.       ...

  9. 11.QT-布局管理器(Box,Grid,Form,Stacked)

    布局管理器简介 QT中提供了对界面组件进行布局管理的类,用于对界面组件进行管理, 能够自动排列窗口中的界面组件 窗口大小变化后,便会自动更新界面组件的大小. 布局管理器可以自定义,从而达到更加个性化界 ...

  10. Python小代码_8_今天是今年的第几天

    import time date = time.localtime() print(date) #time.struct_time(tm_year=2018, tm_mon=2, tm_mday=24 ...