2.QT中操作word文档

简介:  Qt/Windows桌面版提供了ActiveQt框架,用以为Qt和ActiveX提供完美结合。ActiveQt由两个模块组成: A   QAxContainer模块允许我们使用COM对象并且可以在Qt应用程序中嵌入QActive控件。     B   QAxServer模块允许我们导出使用Qt编写的自定义的COM对象和Active控件。  

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

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

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

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

D  在头文件中包含QAxWidgetQAxObject

 

  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框架,用以为QtActiveX提供完美结合。ActiveQt由两个模块组成: 
 * QAxContainer模块允许我们使用COM对象并且可以在Qt应用程序中嵌入QActive控件。 
 * QAxServer模块允许我们导出使用Qt编写的自定义的COM对象和Active控件。 
 * 在这里,我们使用了QAxContainer模块,所以在.pro中,需要使用下面这一项来链接这个QAxContainer模块:
 * CONFIG+=qaxcontainer(注意:在QT5.3中使用的是:QT += widgets gui axcontainer)。
 * 在头文件中包含QAxWidgetQAxObject 
 * 操作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 盘中的运行结果:

 

目录
相关文章
|
自然语言处理 数据可视化
Qt开发技术:Qt富文本(二)Qt文本光标操作、文档布局、富文本编辑、处理和Demo
Qt开发技术:Qt富文本(二)Qt文本光标操作、文档布局、富文本编辑、处理和Demo
Qt开发技术:Qt富文本(二)Qt文本光标操作、文档布局、富文本编辑、处理和Demo
|
3月前
|
Linux
Qt实现多文档窗口
Qt实现多文档窗口
|
10月前
|
Python 容器
Python Qt GUI设计:QMdiArea和QMdiSubWindow类实现多文档界面(拓展篇—3)
一个典型的GUI应用程序可能有多个窗口,选项卡控件和堆栈窗口控件允许一次使用其中的一个窗口。然而,很多时候这种方法不是很有用,因为其他窗口的视图是隐藏的一种同时显示多个窗口的方法是,创建多个独立的窗口,这些独立的窗口被称为SDI(Single Document Interface,单文档界面),每个窗口都可以有自己的菜单系统、工具栏等。这需要占用较多的内存资源。
|
前端开发 C语言 C++
Qt写一个文档复制粘贴助手app
写了一个把剪贴板中的文字中的空格和换行删除,然后再扔给剪贴板的windows程序 主要为了应付从cajreader中拷贝文字时候的空格 格式 换行太多的情况
148 0
Qt写一个文档复制粘贴助手app
|
存储 索引
Qt开发技术:Qt富文本(一)富文本介绍、文档结构
Qt开发技术:Qt富文本(一)富文本介绍、文档结构
Qt开发技术:Qt富文本(一)富文本介绍、文档结构
|
XML 数据格式
Qt 利用XML文档,写一个程序集合 四
接上一个 启动外部程序 https://blog.csdn.net/z609932088/article/details/80775086
70 0
|
XML 数据格式
Qt 利用XML文档,写一个程序集合 三
接上一篇 https://blog.csdn.net/z609932088/article/details/80774950
85 0
|
XML 数据格式
Qt 利用XML文档,写一个程序集合 二
接上一篇文章 https://blog.csdn.net/z609932088/article/details/80774663 XML文件的读写
176 0
Qt 利用XML文档,写一个程序集合 二
|
XML 数据格式
Qt 利用XML文档,写一个程序集合 一
接到领导需求安排,说公司未来的硬件设备会越来越多,与每个设备对应的设备检测和设置程序也会增多。导致软甲太多,不好掌控。所以希望做一个完整的软件,但是呢,每个子程序还得独立,应为每个用户购买的设备不是一样的。
97 0
Qt 利用XML文档,写一个程序集合 一
Qt中文翻译(官方文档,界面,工具等)集锦
Qt中文翻译(官方文档,界面,工具等)集锦
617 0

推荐镜像

更多