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. Ubuntu下的第一个博客

    (Blogilo还是可以的,只是不能加代码,不能选随笔分类,用不起摘要,字号的选择诡异...)

  2. 【NOIP2013】华容道 广搜+spfa

    题目描述 [问题描述] 小 B 最近迷上了华容道,可是他总是要花很长的时间才能完成一次.于是,他想到用编程来完成华容道:给定一种局面, 华容道是否根本就无法完成,如果能完成, 最少需要多少时间. 小 ...

  3. [BZOJ]1093 最大半连通子图(ZJOI2007)

    挺有意思的一道图论. Description 一个有向图G=(V,E)称为半连通的(Semi-Connected),如果满足:∀u,v∈V,满足u→v或v→u,即对于图中任意两点u,v,存在一条u到v ...

  4. Mybatis迷你版--QueryObjectFactory

    今天在看JDBC4.2新规范,然后无意之间就碰到了这个东西QueryObjectFactory, 市面上orm框架有很多,在这里我就不一一列举了.那么今天我来记录一下QueryObjectFactor ...

  5. django rest-framework 3.类 实现restful

    上节提到过,REST框架分别提供了对函数和类的装饰器,之前已经都是通过函数来写视图函数的,现在来尝试使用class 类来实现视图函数 使用基于类编写API视图,允许重用常用的功能,减少代码重复. 一. ...

  6. Python【第一课】 Python简介和基础

    本节内容 Python安装(windows) 第一个程序(windows中的python) 变量 字符编码 注释 用户输入 模块初步认识 数据类型 数据运算 表达式if...else 表达式for l ...

  7. redis启动失败

    redis.conf 设置的daemonize yes后台运行,使用redis-server redis.conf之后没有任何反应,以为启动成功 使用 ps -ef|grep redis 查看redi ...

  8. java总结之基础类型与常量池

    1.基础类型有byte short int long char boolean float double八种. 其中byte short int long char 的包装类型是存放在常量池(用来维护 ...

  9. 关于一些基础的Java问题的解答(六)

    26. ThreadPool用法与优势 ThreadPool即线程池,它是JDK1.5引入的Concurrent包中用于处理并发编程的工具.使用线程池有如下好处: 降低资源消耗:通过重复利用已创建的线 ...

  10. 手把手教你全家桶之React(一)

    前言 最近项目用到react,其实前年我就开始接触react,时光匆匆,一直没有时间整理下来(太懒啦)!如今再次用到,称工作间隙,对全家桶做一次总结,项目源码地址.废话不多说,上码. 创建一个文件目录 ...