Qt 向word中插入文字(使用QAxWidget和QAxObject)

摘要:
bookmark_text-˃isNull()){bookmark_text-˃dynamicCall;bookmark_txt-˃querySubObject-˃setProperty;}//获取document_pic=document-˃querySubObject中名为pic的标记QAxObject*书签;//如果(!
  1. pro 文件中要加入   

        CONFIG += qaxcontainer   

       2. main.cpp

[cpp] view plain copy
 
  1. #include <QApplication>  
  2. #include <QAxWidget>  
  3. #include <QAxObject>  
  4.   
  5. int main(int argc, char* argv[])  
  6. {  
  7.      QApplication app(argc, argv);  
  8.      QAxWidget *word=new QAxWidget("Word.Application", 0, Qt::MSWindowsOwnDC);  
  9.      word->setProperty("Visible", true);  
  10.      // 获取所有的工作文档  
  11.      QAxObject * documents = word->querySubObject("Documents");  
  12.      // 以文件template.doc为模版新建一个文档  
  13.      documents->dynamicCall("Add(QString)",QString::fromLocal8Bit("D:/doc/template.doc"));  
  14.      // 获取当前激活的文档  
  15.      QAxObject *document=word->querySubObject("ActiveDocument");  
  16.   
  17.      // 获取文档中名字为text的标签  
  18.      QAxObject*bookmark_text=document->querySubObject("Bookmarks(QVariant)","text");  
  19.      // 选中标签,将字符InsertText插入到标签位置  
  20.      if(!bookmark_text->isNull()){  
  21.      bookmark_text->dynamicCall("Select(void)");  
  22.      bookmark_text->querySubObject("Range")->setProperty("Text","InsertText");  
  23.      }   
  24.   
  25.      // 将文件另存为docbyqt.doc,关闭工作文档,退出应用程序  
  26.      document->dynamicCall("SaveAs (const QString&)", QString("D:/doc/docbyqt.doc"));  
  27.      document->dynamicCall("Close (boolean)", false);  
  28.      word->dynamicCall("Quit()");  
  29.   
  30.     return app.exec();  
  31. }  

http://blog.csdn.net/zbc415766331/article/details/36396159

网上关于qt操作word的资料实在是太少了,搞了半天终于能在word 表格中插入标签的地方插入图片了。

1.在pro中加入

CONFIG   += qaxcontainer

2.main.cpp

[cpp] view plain copy
 
 在CODE上查看代码片派生到我的代码片
  1. #include <QApplication>  
  2. #include <QAxWidget>  
  3. #include <QAxObject>  
  4.   
  5. int main(int argc, char* argv[])  
  6. {  
  7.      QApplication app(argc, argv);  
  8.      QAxWidget *word=new QAxWidget("Word.Application", 0, Qt::MSWindowsOwnDC);  
  9.      word->setProperty("Visible", true);  
  10.      // 获取所有的工作文档  
  11.      QAxObject * documents = word->querySubObject("Documents");  
  12.      // 以文件template.doc为模版新建一个文档  
  13.      documents->dynamicCall("Add(QString)",QString::fromLocal8Bit("D:/doc/template.doc"));  
  14.      // 获取当前激活的文档  
  15.      QAxObject *document=word->querySubObject("ActiveDocument");  
  16.   
  17.      // 获取文档中名字为text的标签  
  18.      QAxObject*bookmark_text=document->querySubObject("Bookmarks(QVariant)","text");  
  19.      // 选中标签,将字符InsertText插入到标签位置  
  20.      if(!bookmark_text->isNull()){  
  21.      bookmark_text->dynamicCall("Select(void)");  
  22.      bookmark_text->querySubObject("Range")->setProperty("Text","InsertText");  
  23.      }  
  24.   
  25.      // 获取文档中名字为pic的标签  
  26.      QAxObject*bookmark_pic=document->querySubObject("Bookmarks(QVariant)","pic");  
  27.       // 选中标签,将图片插入到标签位置  
  28.      if(!bookmark_pic->isNull())  
  29.      {  
  30.          bookmark_pic->dynamicCall("Select(void)");  
  31.   
  32.          QAxObject *range;  
  33.          range = bookmark_pic->querySubObject("Range");  
  34.          QVariant tmp = range->asVariant();  
  35.          QList<QVariant>qList;  
  36.          qList<<QVariant("D:/1.png");  
  37.          qList<<QVariant(false);  
  38.          qList<<QVariant(true);  
  39.          qList<<tmp;  
  40.   
  41.          QAxObject *Inlineshapes = document->querySubObject("InlineShapes");  
  42.          Inlineshapes->dynamicCall("AddPicture(const QString&, QVariant, QVariant ,QVariant)",qList);  
  43.      }  
  44.   
  45.      // 将文件另存为docbyqt.doc,关闭工作文档,退出应用程序  
  46.      document->dynamicCall("SaveAs (const QString&)", QString("D:/doc/docbyqt.doc"));  
  47.      document->dynamicCall("Close (boolean)", false);  
  48.      word->dynamicCall("Quit()");  
  49.   
  50.     return app.exec();  
  51. }  

addpicture 微软官方注解:http://msdn.microsoft.com/en-us/library/office/aa171535(v=office.11).aspx

http://blog.csdn.net/zbc415766331/article/details/36659993

HRESULT r;
r = CoInitialize(0);
// r =CoInitializeEx(0, COINIT_MULTITHREADED);
// m_word = new QAxWidget("Word.Application", widget, Qt::MSWindowsOwnDC );
m_word = new QAxObject("Word.Application" );
if( m_word == NULL ) return true;
//m_word->setProperty("Visible", false); //设置为隐藏
QAxObject * documents = m_word->querySubObject("Documents"); //获取所有工作的文档

http://www.qtcn.org/bbs/read-htm-tid-60802.html

免责声明:文章转载自《Qt 向word中插入文字(使用QAxWidget和QAxObject)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇sqlmap介绍与使用案例VB6.0 在代码中直接调用 文件打开对话框,不使用windows控件下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

帆软—FineBI5.1忘记管理员登录密码及用户名

1、 查找数据库。脚本文件查找数据库。脚本文件。...

当微信小程序遇到AR(二)

当微信小程序遇到AR,会擦出怎么样的火花?期待与激动......通过该教程,可以从基础开始打造一个微信小程序的AR框架,所有代码开源,提供大家学习。注册地址=˃注册成功之后,需要下载微信小程序开发工具。下载地址=˃目前笔者的开发环境是:Windows10下载的微信小程序版本为:RCv1.0.2.1909111 打开,微信开发者工具之后,会看到如下的页面。...

PCL点云分割(2)

点云的分割是我想做的机器人手臂捕捉的一个非常重要的部分,因此首先要了解,如果我使用点云库来处理我用kinect获得的点云数据,这个例程也是由我自己慢慢修改程序并结合官方API的解释来实现的。如果我直接更改源程序,由于数据类型、头文件和其他原因,其中的许多细节可能无法编译,我们将很难找出错误。首先,让我们看看我自己设定的场景。然后我使用Kinect获取数据并观...

sqlserver 计算 百分比

selectltrim+'%'As百分比NUMERIC(P,S)P的默认值是:38S的默认值是:-84~127numeric(a,b)函数有两个参数,前面一个为总的位数,后面一个参数是小数点后的位数,例如numeric(5,2)是总位数为5,小数点后为2位的数,也就是说这个字段的整数位最大是3位。...

Selenium操作示例——鼠标悬停显示二级菜单,再点击二级菜单或下拉列表

这两天在python中玩selenium时,我遇到了一个问题,那就是鼠标移动到页面上的一个按钮或菜单,二级菜单或下拉菜单自动弹出,然后二级菜单或者下拉列表自动点击。...

微信小程序通过background-image设置背景图片

微信小程序通过背景图像设置背景:仅支持在线图像和base64图像,不支持本地图像;设置base64图像的步骤如下:1.在网站上http://imgbase64.duoshitong.com/将图片转换为base64格式2的文本。在WXSS中使用上述文本:background image:url(“data:image/png;base64,iVBORw0KG...