QT读取Word文档

news/2024/12/16 1:33:32/

Word文档读取

开发工具与关键技术:QtCreator、C++
作者:何任贤
撰写时间:2020年06月02日

Word文档读取
我们先要在工程文件加入
QT += axcontainer
我们要用到的头文件有
#include
#include
读取word文档基本流程:

  1. 启动Word进程、获取Word文档集。
  2. 获取和操作当前选中的段落。
    类声明
    class Dialog : public QDialog
    {
    Q_OBJECT
    public:
    Dialog(QWidget *parent = 0);
    ~Dialog();

private slots:
void readWord();

private:
QPushButton *writebtn;
QPushButton *readbtn;
QLineEdit *lineedit;

必须要声明的指针
QAxObject *myword;      //Word应用程序指针
QAxObject *mydocs;      //文档集指针
QAxObject *mydoc;       //文档指针
QAxObject *selection;   //Selection指针

};

下面是qt读取word文档函数实现
void Dialog::readWord()
{
打开一个Word应用程序
myword = new QAxObject(“Word.Application”);

找到其Documents子对象,代表Word文档集
mydocs = myword->querySubObject("Documents");

获取要读取的word文档的路径。
QString path = QDir::currentPath() + “/myWord.docx”;
path = QDir::toNativeSeparators(path);

打开一个Word文档,这里调用的是Documents对象的open方法
mydocs->dynamicCall("Open(const QVariant&)",QVariant(path));获取当前word文档对象
mydoc= myword->querySubObject("ActiveDocument");这里是把word文档的内容全部选中。
通过不带参数的range方法选中整个文档内容
selection = mydoc->querySubObject("Range()");然后获取选中的word文档内容
QString str = selection->property("Text").toString();lineedit->setText(str);关闭文档
mydoc->dynamicCall("Close()");
delete mydoc;
mydoc = NULL;退出程序
myword->dynamicCall("Quit()");
delete myword;
myword = NULL;QMessageBox::information(this,tr("消息"),str);

}
下面是读取结果
在这里插入图片描述


http://www.ppmy.cn/news/455909.html

相关文章

Word 和 LaTeX 文档相互转换

Word 和 LaTeX 文档相互转换 目前可以找到两种工具完成将 LaTeX \LaTeX LATE​X 文档向 Word 文档的转换, 分别为 Tex2Word和LaTeX-to-Word。 Tex2Word 安装Tex2Word后, 启动 Word, 打开你要转换的 LaTeX \LaTeX LATE​X 源文件 (注意,如果没有成功安装 Tex2Word,那么你无…

SpringBoot读取Word文档

SpringMVC或SpringBoot上传解析Word文档&#xff0c;我想直接用MultipartFile做解析。 因为之前导入Excel表格用的就是3.14版本&#xff0c;所以没有改。还有有可能不是这个依赖&#xff0c;可根据下一段import自行查找。。 docx文件可行&#xff0c;doc文件会报错 <depe…

计算机word基础操作知识,word文档基本操作

新建文档 (电脑入门到精通网 www.58116.cn) 我们讲了Word第一课后,有位朋友和我说用起来太麻烦了,问他怎么个麻烦法,他说,有时要打印几份文件,每打印一份就要退出一次Word重来,所以特别麻烦。 其实根本用不着退出Word。你可以在Word里面关掉已经打印出来的文件,然后新建…

Word文档批量替换工具

作者&#xff1a;iamlaosong 日常工作中可能会碰到这样的情况&#xff0c;就是需要批量替换一些文件的内容&#xff0c;如合同、产品说明、ISO认证标准化文档&#xff08;质量手册、程序文件、管理手册&#xff09;、项目推广方案等&#xff0c;先做批量替换&#xff0c;再进行…

信号三大阶段之储存信号

目录 一、 信号三大阶段 二、信号储存相关概念 三、 理解概念 四、信号储存原理 五、信号集操作函数 一、 信号三大阶段 二、信号储存相关概念 实际执行信号的过程被称为信号递达&#xff08;Delivery&#xff09;。信号从产生到递达之间的状态被称为信号未决&#xff08;…

苹果维修日期计算机,我的苹果笔记本在官网怎么查不到生产日期提示日期的地方显示2.4 2.2GHz啥意思,...

满意答案 ljxw0871 2019.02.10 采纳率&#xff1a;43% 等级&#xff1a;12 已帮助&#xff1a;5055人 1、查询苹果笔记本的生产日期&#xff0c;可以通过电脑的序列号查询得出答案。 2、点击电脑屏幕左上角的黑苹果标志&#xff0c;然后选择关于本机进入&#xff0c;在里面就…

苹果的Mac电脑

麥金塔 麦金塔电脑&#xff08;英語&#xff1a;&#xff0c;/ˈmkintɒʃ/&#xff0c;1998年后多被简称为Mac[1]&#xff09;&#xff0c;是自1984年1月起由苹果公司设计、开发和销售的個人電腦系列產品。 顺时针方向为&#xff1a;MacBook Air (2015)、iMac G5 20" (2…

鼠标的移入、移出事件

目录 一、mouseover和mouseenter 二、mouseout和mouseleave 三、重点总结 在原生JS中鼠标移入移出事件有四个&#xff0c;分别为mouseover ,mouseout ,mouseenter,mouseleave&#xff0c;其中mouseover和mouseenter为移入事件&#xff0c;mouseout和mouseleave为移出事件&…