使用Qt的AxContainer模块操作Office文档(一)

在Windows环境下,在Qt里面操作Office文档,可以通过AxContainer模块调用Office全家桶的Com组件。

完成这个操作,需要使用到AxContainer模块中的QAxObject。

使用这种方法操作Office文件,好处是可以非常精确,精确到Word文档的每一个字符、PowerPoint的每一个图片以及Excel文档的每一行一列……那种程度。

但是麻烦的是,太精确了,就没有那么简便。当我们想实现简单地预览、统计、输出等只读功能的时候,会比较复杂。而且,雪上加霜的是,同样一个小需求,对不同类型的文档,都需要使用不同的类,不同的方法,不同的属性。

下面进入正题,先说说如何使用。

AxContainer模块

首先,确保安装了Qt的AxContainer模块。这个模块只有在Windows下的Qt开发环境才有,Linux等系统中没有,当然也不需要。

在qt的安装过程里,选择模块的那一页,其中有一个复现框内容是QtActive,就是我们需要的模块。确保安装qt环境的时候,选择了QtActive。

其次,需要把它的头文件包含到项目中,另外连接它的库文件。它的CMake文件并不叫QtActive,而是叫AxContainer:

FIND_PACKAGE(Qt6AxContainer REQUIRED)  
INCLUDE_DIRECTORIES(${Qt6AxContainer_INCLUDE_DIRES})

QAxObject类

把Qt6Container的头文件目录加入编译环境之后,就可以直接包含QtAxContainer这个头文件,使用QtAxContainer中的类QAxObject了。

#include <QtAxContainer>

QAxObject最常用的构造函数是:

QAxObject(const QString &c, QObject *parent = nullptr);

其中,c指的是Com的名称。比如,要操作Word文档,就传入Word.Application。

如:

auto application = new QAxObje
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值