QT读取Word文档

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);

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

  • 4
    点赞
  • 49
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值