当前位置: 首页 > news >正文

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

http://www.lryc.cn/news/284833.html

相关文章:

  • 纯前端在线Office文档安全预览之打开Word文档后禁止打印、禁止另存为、禁止复制
  • 李沐深度学习-d2lzh_pytorch模块实现
  • 什么是OSPF?为什么需要OSPF?OSPF基础概念
  • Java多线程并发篇----第二十六篇
  • list下
  • 【Linux】进程间通信——system V 共享内存、消息队列、信号量
  • 网络卡问题排查手段
  • 20240119-子数组最小值之和
  • c# 释放所有嵌入资源, 到某个本地文件夹
  • Unity SnapScrollRect 滚动 匹配 列表 整页
  • 网络命令ping和telnet
  • ros2学习笔记-CLI工具,记录命令对应操作。
  • 自然语言处理的发展
  • flink operator 拉取阿里云私有镜像(其他私有类似)
  • C语言算法赛——蓝桥杯(省赛试题)
  • 【文本到上下文 #2】:NLP 的数据预处理步骤
  • Minio文件分片上传实现
  • C语言总结十一:自定义类型:结构体、枚举、联合(共用体)
  • 解决Spring Boot应用打包后文件访问问题
  • 循环神经网络的变体模型-LSTM、GRU
  • 视频图像的color range简介
  • tcp的三次握手
  • unity 矩阵探究
  • MySQL---单表查询综合练习
  • Python项目——搞怪小程序(PySide6+Pyinstaller)
  • MySQL练习题
  • vue-项目打包、配置路由懒加载
  • 词语的魔力:语言在我们生活中的艺术与影响
  • android List,Set,Map区别和介绍
  • Mysql 编译安装部署