QT中操作word文档
QT中操作word文档:
参考如下内容:
C++(Qt) 和 Word、Excel、PDF 交互总结
Qt对word文档操作总结
QT中操作word文档
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模板,dot、dotx
新建一个word文档模板,内容如下:

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

二、编写测试代码
//新建一个word应用程序QAxWidget *word = new QAxWidget("Word.Application");if(word == NULL){return 0;}//并设置为不可见word->setProperty("Visible", false);//获取所有的工作文档QAxObject *documents = word->querySubObject("Documents");if (documents == NULL){return 0;}//以template.dotx为模板新建一个文档documents->dynamicCall("Add(QString)", QString("D:/template.dotx"));//获取当前激活的文档QAxObject *document = word->querySubObject("ActiveDocument");if (document == NULL){return 0;}//获取文档中名字为Customer_Name的标签QAxObject *pCustomer_Name = document->querySubObject("Bookmarks(QVariant)", QString("Customer_Name"));//选中标签,将字符sText插入到标签位置if (!pCustomer_Name->isNull()){QString sText = "CJX";//此处为替换内容pCustomer_Name->dynamicCall("Select(void)"); //选中要选中的区域pCustomer_Name->querySubObject("Range")->setProperty("Text", sText); //进行替换操作}//获取文档中名字为Name的标签QAxObject *pName = document->querySubObject("Bookmarks(QVariant)", QString("Name"));//选中标签,将字符sText插入到标签位置if (!pName->isNull()){QString sText = "语文";//此处为替换内容pName->dynamicCall("Select(void)"); //选中要选中的区域pName->querySubObject("Range")->setProperty("Text", sText); //进行替换操作}//获取文档中名字为Number的标签QAxObject *pNumber = document->querySubObject("Bookmarks(QVariant)", QString("Number"));//选中标签,将字符sText插入到标签位置if (!pNumber->isNull()){QString sText = "100";//此处为替换内容pNumber->dynamicCall("Select(void)"); //选中要选中的区域pNumber->querySubObject("Range")->setProperty("Text", sText); //进行替换操作}//将文件保存为doc,同样可以生成docx文档QString pathsave = QApplication::applicationDirPath()+ "/template.docx";document->dynamicCall("SaveAs(const QString&))", QDir::toNativeSeparators(pathsave));document->dynamicCall("Close (boolean)", false);word->dynamicCall("Quit()");delete word;
最后附上测试文档链接:
https://download.csdn.net/download/cao_jie_xin/88753710
相关文章:
QT中操作word文档
QT中操作word文档: 参考如下内容: C(Qt) 和 Word、Excel、PDF 交互总结 Qt对word文档操作总结 QT中操作word文档 Qt/Windows桌面版提供了ActiveQt框架,用以为Qt和ActiveX提供完美结合。ActiveQt由两个模块组成: QAxContainer模…...
纯前端在线Office文档安全预览之打开Word文档后禁止打印、禁止另存为、禁止复制
在一些在线Office文档中,有很多重要的文件需要保密控制,比如:报价单、客户资料等数据,只能给公司成员查看,但是不能编辑,并且不能拷贝,打印、不能另存为,导致重要资料外泄。 可以通…...
李沐深度学习-d2lzh_pytorch模块实现
d2lzh_pytorch 模块 import random import torch import matplotlib_inline from matplotlib import pyplot as plt import torchvision import torchvision.transforms as transforms import torchvision.datasets import sys from collections import OrderedDict# --------…...
什么是OSPF?为什么需要OSPF?OSPF基础概念
什么是OSPF? 开放式最短路径优先OSPF(Open Shortest Path First)是IETF组织开发的一个基于链路状态的内部网关协议(Interior Gateway Protocol)。 目前针对IPv4协议使用的是OSPF Version 2(RFC2328&#x…...
Java多线程并发篇----第二十六篇
系列文章目录 文章目录 系列文章目录前言一、什么是 Executors 框架?二、什么是阻塞队列?阻塞队列的实现原理是什么?如何使用阻塞队列来实现生产者-消费者模型?三、什么是 Callable 和 Future?前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分…...
list下
文章目录 注意:const迭代器怎么写?运用场合? inserterase析构函数赋值和拷贝构造区别?拷贝构造不能写那个swap,为什么?拷贝构造代码 面试问题什么是迭代器失效?vector、list的区别? 完整代码 注…...
【Linux】进程间通信——system V 共享内存、消息队列、信号量
需要云服务器等云产品来学习Linux的同学可以移步/–>腾讯云<–/官网,轻量型云服务器低至112元/年,优惠多多。(联系我有折扣哦) 文章目录 写在前面1. 共享内存1.1 共享内存的概念1.2 共享内存的原理1.3 共享内存的使用1.3.1 …...
网络卡问题排查手段
问题 对后端来说,网络卡了问题,本身很难去排查,因为是 App 通过互联网连接服务 总结下,以往经验,网络卡,通常会有以下情况造成: 某地区网络问题某地区某运营商问题后端服务超载前端网络模块 …...
20240119-子数组最小值之和
题目要求 给定一个整数数组 arr,求 min(b) 的总和,其中 b 的范围涵盖 arr 的每个(连续)子数组。由于答案可能很大,因此返回答案模数 Example 1: Input: arr [3,1,2,4] Output: 17 Explanation: Subarrays are [3]…...
c# 释放所有嵌入资源, 到某个本地文件夹
版本号 .net 8 代码 using System.Reflection;namespace Demo;internal class Program {static void Main(string[] args){// 获取当前 执行exe 的目录 / 当前命令行所在的目录 var currentDir Directory.GetCurrentDirectory();Console.WriteLine(currentDir);Extract…...
Unity SnapScrollRect 滚动 匹配 列表 整页
展示效果 原理: 当停止滑动时 判断Contet的horizontalNormalizedPosition 与子Item的缓存值 相减,并得到最小值,然后将Content horizontalNormalizedPosition滚动过去 使用方式: 直接将脚本挂到ScrollRect上 注意:在创建Content子物体时…...
网络命令ping和telnet
1. 请解释ping和telnet的工作原理。 ping和telnet是两种常用的网络工具,其工作原理分别如下: ping: 目的:ping主要用于检查网络是否通畅以及测量网络连接速度。工作原理:ping是基于ICMP(Internet Control …...
ros2学习笔记-CLI工具,记录命令对应操作。
目录 环境变量turtlesim和rqt以初始状态打开rqt node启动节点查看节点列表查看节点更多信息命令行参数 --ros-args topic话题列表话题类型话题列表,附加话题类型根据类型查找话题名查看话题发布的数据查看话题的详细信息查看类型的详细信息给话题发布消息࿰…...
自然语言处理的发展
自然语言处理的发展大致经历了四个阶段:萌芽期、快速发展期、低谷的发展期和复苏融合期。 萌芽期(1956年以前):这个阶段可以看作自然语言处理的基础研究阶段。人类文明经过了几千年的发展,积累了大量的数学、语言学和…...
flink operator 拉取阿里云私有镜像(其他私有类似)
创建 k8s secret kubectl --namespace flink create secret docker-registry aliyun-docker-registry --docker-serverregistry.cn-shenzhen.aliyuncs.com --docker-usernameops_acr1060896234 --docker-passwordpasswd --docker-emailDOCKER_EMAIL注意命名空间指定你使用的 我…...
C语言算法赛——蓝桥杯(省赛试题)
一、十四届C/C程序设计C组试题 十四届程序C组试题A#include <stdio.h> int main() {long long sum 0;int n 20230408;int i 0;// 累加从1到n的所有整数for (i 1; i < n; i){sum i;}// 输出结果printf("%lld\n", sum);return 0; }//十四届程序C组试题B…...
【文本到上下文 #2】:NLP 的数据预处理步骤
一、说明 欢迎阅读此文,NLP 爱好者!当我们继续探索自然语言处理 (NLP) 的广阔前景时,我们已经在最初的博客中探讨了它的历史、应用和挑战。今天,我们更深入地探讨 NLP 的核心——数据预处理的复杂世界。 这篇文章是我们的“完整 N…...
Minio文件分片上传实现
资源准备 MacM1Pro 安装Parallels19.1.0请参考 https://blog.csdn.net/qq_41594280/article/details/135420241 MacM1Pro Parallels安装CentOS7.9请参考 https://blog.csdn.net/qq_41594280/article/details/135420461 部署Minio和整合SpringBoot请参考 https://blog.csdn.net/…...
C语言总结十一:自定义类型:结构体、枚举、联合(共用体)
本篇博客详细介绍C语言最后的三种自定义类型,它们分别有着各自的特点和应用场景,重点在于理解这三种自定义类型的声明方式和使用,以及各自的特点,最后重点掌握该章节常考的考点,如:结构体内存对齐问题&…...
解决Spring Boot应用打包后文件访问问题
在Spring Boot项目的开发过程中,一个常见的挑战是如何有效地访问和操作资源文件。这一挑战尤其显著当应用从IDE环境(如IntelliJ IDEA)迁移到被打包成JAR文件后的生产环境。开发者经常遇到的问题是,在IDE中运行正常的代码ÿ…...
Python爬虫实战:研究MechanicalSoup库相关技术
一、MechanicalSoup 库概述 1.1 库简介 MechanicalSoup 是一个 Python 库,专为自动化交互网站而设计。它结合了 requests 的 HTTP 请求能力和 BeautifulSoup 的 HTML 解析能力,提供了直观的 API,让我们可以像人类用户一样浏览网页、填写表单和提交请求。 1.2 主要功能特点…...
龙虎榜——20250610
上证指数放量收阴线,个股多数下跌,盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型,指数短线有调整的需求,大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的:御银股份、雄帝科技 驱动…...
7.4.分块查找
一.分块查找的算法思想: 1.实例: 以上述图片的顺序表为例, 该顺序表的数据元素从整体来看是乱序的,但如果把这些数据元素分成一块一块的小区间, 第一个区间[0,1]索引上的数据元素都是小于等于10的, 第二…...
React Native 导航系统实战(React Navigation)
导航系统实战(React Navigation) React Navigation 是 React Native 应用中最常用的导航库之一,它提供了多种导航模式,如堆栈导航(Stack Navigator)、标签导航(Tab Navigator)和抽屉…...
SCAU期末笔记 - 数据分析与数据挖掘题库解析
这门怎么题库答案不全啊日 来简单学一下子来 一、选择题(可多选) 将原始数据进行集成、变换、维度规约、数值规约是在以下哪个步骤的任务?(C) A. 频繁模式挖掘 B.分类和预测 C.数据预处理 D.数据流挖掘 A. 频繁模式挖掘:专注于发现数据中…...
镜像里切换为普通用户
如果你登录远程虚拟机默认就是 root 用户,但你不希望用 root 权限运行 ns-3(这是对的,ns3 工具会拒绝 root),你可以按以下方法创建一个 非 root 用户账号 并切换到它运行 ns-3。 一次性解决方案:创建非 roo…...
Hive 存储格式深度解析:从 TextFile 到 ORC,如何选对数据存储方案?
在大数据处理领域,Hive 作为 Hadoop 生态中重要的数据仓库工具,其存储格式的选择直接影响数据存储成本、查询效率和计算资源消耗。面对 TextFile、SequenceFile、Parquet、RCFile、ORC 等多种存储格式,很多开发者常常陷入选择困境。本文将从底…...
Selenium常用函数介绍
目录 一,元素定位 1.1 cssSeector 1.2 xpath 二,操作测试对象 三,窗口 3.1 案例 3.2 窗口切换 3.3 窗口大小 3.4 屏幕截图 3.5 关闭窗口 四,弹窗 五,等待 六,导航 七,文件上传 …...
如何更改默认 Crontab 编辑器 ?
在 Linux 领域中,crontab 是您可能经常遇到的一个术语。这个实用程序在类 unix 操作系统上可用,用于调度在预定义时间和间隔自动执行的任务。这对管理员和高级用户非常有益,允许他们自动执行各种系统任务。 编辑 Crontab 文件通常使用文本编…...
GO协程(Goroutine)问题总结
在使用Go语言来编写代码时,遇到的一些问题总结一下 [参考文档]:https://www.topgoer.com/%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8B/goroutine.html 1. main()函数默认的Goroutine 场景再现: 今天在看到这个教程的时候,在自己的电…...
