QT操作word

Qt 专栏收录该内容
4 篇文章 0 订阅
QT操作Word 
Qt/Windows桌面版提供了ActiveQt框架,用以为Qt和ActiveX提供完美结合。ActiveQt由两个模块组成: 
QAxContainer模块允许我们使用COM对象并且可以在Qt应用程序中嵌入QActive控件。 
QAxServer模块允许我们导出使用Qt编写的自定义的COM对象和Active控件。 
在这里,我们使用了QAxContainer模块,所以在.pro中,需要使用下面这一项来链接这个QAxContainer模块:CONFIG+=qaxcontainer。在头文件中包含QAxWidget和QAxObject。 
操作word的步骤: 

1.新建一个文件,在绘制好的表格需要插入数据的地方设置书签(插入->书签),另存为模版文件(.dot)。


2.新建一个

Qt

工程,在

main

文件中如下定义:

 


代码如下:




解释: 
//新建一个word应用程序,并设置为可见 
QAxWidget *word=new QAxWidget("Word.Application",this,Qt::MSWindowsOwnDC); word->setProperty("Visible", true); //获取所有的工作文档 
QAxObject * documents = word->querySubObject("Documents"); //以文件template.dot为模版新建一个文档 
documents->dynamicCall("Add(QString)",QString::fromLocal8Bit("E:/template.dot")); //获取当前激活的文档 
QAxObject *document=word->querySubObject("ActiveDocument"); //获取文档中名字为code的标签 
QAxObject*bookmark_code=document->querySubObject("Bookmarks(QVariant)","code"); //选中标签,将字符textg插入到标签位置 if(!bookmark_code->isNull()){ 
    bookmark_code->dynamicCall("Select(void)");     
bookmark_code->querySubObject("Range")->setProperty("Text","textg"); } 
//将文件另存为docbyqt.doc,关闭工作文档,退出应用程序 
document->dynamicCall("SaveAs (const QString&)", QString("c:/docbyqt.doc")); document->dynamicCall("Close (boolean)", false);     word->dynamicCall("Quit()");    
附:导出API使用文档的方法 
COM是个自描述的结构,任何第三方软件是可以把这种描述化信息自动导出来的。Qt有方法可以自动导出来的,参考如下代码 
QString doc=object.generateDocumentation(); QFile outFile("c:/debuglog.html"); 
outFile.open(QIODevice::WriteOnly|QIODevice::Append); QTextStream ts(&outFile); ts<<doc<<endl; 
导出后你会发现是一个非常好的HTML格式的帮助问题,里面对每一个方法都有调用的详细描述。参考帮助后就能开始自己调用了
  • 0
    点赞
  • 0
    评论
  • 4
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值