Qt对word文档操作总结 |
您所在的位置:网站首页 › word文档手册 › Qt对word文档操作总结 |
Qt对word文档操作总结
近期在使用Qt对word进行读写操作时候遇到很多问题,对于Qt内部没有很好的库函数可以使用。office官网上的文档只有VBA的示例,没有Qt的语法例子。在这里作者介绍了一个流程可以在Qt上完美对接Word接口。 QT += axcontainerQt虽然没有很好地提供office的接口,但是还是提供了一个对COM object操作的方法。 Header:#include qmake:QT += axcontainer Inherits:QObject and QAxBase Inherited By:QAxScriptEngine在这里我们可以使用QAxObject对象,操作office。 主要利用以下几个函数: setProperty() // 设置对象一些成员函数属性 querySubObject() // 获取一些成员对象 dynamicCall() // 执行一些对象的函数这里先不介绍怎么用,在本文最后会讲解。 Word宏word宏对于非开发word的人员基本用不上,但是我们要对接office,需要对此有一定了解。 在word的视图中可以找到此位置。 那宏代表了什么意思呢?其实就是我们人为在word中进行操作过程转换为了代码形式。那我们拿到对应的代码形式,转换为Qt可以执行的代码,那我们是不是可以通过Qt对office进行操作了? 这里我们通过对word插入分页符操作进行举例。 我们先点击录制宏鼠标点击插入的分页 然后点击宏中的停止录制 然后点击查看宏在跳出的窗口中对刚刚操作的宏点击编辑 在跳出的窗口中可以看见对应代码 至此,我们获得了office word对于分页操作的代码。其实就是中间的Selection.InsertBreak Type:=wdPageBreak 就是对Selection对象的方法InsertBreak进行操作 Word帮助文档 点击word 2010开发人员参靠2. 点击word对象模型参考 3. 点击word对象模型参考 4. 找到Selection对象,点击进去 5. 点击Selection对象成员,点击进去找到InsertBreak 6. 可以点击InsertBreak 在这里可以看到此方法的具体说明。 Qt中的具体使用方法我们在上面的方法中找到了具体的使用函数。 QAxObject* wordApplication = new QAxObject("Word.Application"); QAxObject* applicationDocuments = wordApplication->querySubObject("Documents"); QAxObject* activeDocument = wordApplication->querySubObject("ActiveDocument");//获取当前激活的文档 QAxObject* selection = wordApplication->querySubObject("Selection"); selection->dynamicCall("InsertBreak(int)", 7);首先先获取一个word对象,然后得到当前激活的文档,然后获取选择的对象Selection,就和上面的Selection对象一样,然后用dynamicCall方法执行Selection的InsertBreak方法。 相同地,我们也可以得到很多类似的操作如: 保存文件: activeDocument->dynamicCall("SaveAs(const QString&)",QDir::toNativeSeparators(wordSaveName));插入文字: wordSelection->dynamicCall("TypeText(const QString&)",text);设置居中: wordSelection->querySubObject("ParagraphFormat")->setProperty("Alignment","wdAlignParagraphCenter");设置字体大小: wordSelection->querySubObject("Font")->setProperty("Size",fontsize); |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |