Qt 向word中插入文字(使用QAxWidget和QAxObject)
- pro 文件中要加入
CONFIG += qaxcontainer
2. main.cpp
- #include <QApplication>
- #include <QAxWidget>
- #include <QAxObject>
- int main(int argc, char* argv[])
- {
- QApplication app(argc, argv);
- QAxWidget *word=new QAxWidget("Word.Application", 0, Qt::MSWindowsOwnDC);
- word->setProperty("Visible", true);
- // 获取所有的工作文档
- QAxObject * documents = word->querySubObject("Documents");
- // 以文件template.doc为模版新建一个文档
- documents->dynamicCall("Add(QString)",QString::fromLocal8Bit("D:/doc/template.doc"));
- // 获取当前激活的文档
- QAxObject *document=word->querySubObject("ActiveDocument");
- // 获取文档中名字为text的标签
- QAxObject*bookmark_text=document->querySubObject("Bookmarks(QVariant)","text");
- // 选中标签,将字符InsertText插入到标签位置
- if(!bookmark_text->isNull()){
- bookmark_text->dynamicCall("Select(void)");
- bookmark_text->querySubObject("Range")->setProperty("Text","InsertText");
- }
- // 将文件另存为docbyqt.doc,关闭工作文档,退出应用程序
- document->dynamicCall("SaveAs (const QString&)", QString("D:/doc/docbyqt.doc"));
- document->dynamicCall("Close (boolean)", false);
- word->dynamicCall("Quit()");
- return app.exec();
- }
http://blog.csdn.net/zbc415766331/article/details/36396159
网上关于qt操作word的资料实在是太少了,搞了半天终于能在word 表格中插入标签的地方插入图片了。
1.在pro中加入
CONFIG += qaxcontainer
2.main.cpp
- #include <QApplication>
- #include <QAxWidget>
- #include <QAxObject>
- int main(int argc, char* argv[])
- {
- QApplication app(argc, argv);
- QAxWidget *word=new QAxWidget("Word.Application", 0, Qt::MSWindowsOwnDC);
- word->setProperty("Visible", true);
- // 获取所有的工作文档
- QAxObject * documents = word->querySubObject("Documents");
- // 以文件template.doc为模版新建一个文档
- documents->dynamicCall("Add(QString)",QString::fromLocal8Bit("D:/doc/template.doc"));
- // 获取当前激活的文档
- QAxObject *document=word->querySubObject("ActiveDocument");
- // 获取文档中名字为text的标签
- QAxObject*bookmark_text=document->querySubObject("Bookmarks(QVariant)","text");
- // 选中标签,将字符InsertText插入到标签位置
- if(!bookmark_text->isNull()){
- bookmark_text->dynamicCall("Select(void)");
- bookmark_text->querySubObject("Range")->setProperty("Text","InsertText");
- }
- // 获取文档中名字为pic的标签
- QAxObject*bookmark_pic=document->querySubObject("Bookmarks(QVariant)","pic");
- // 选中标签,将图片插入到标签位置
- if(!bookmark_pic->isNull())
- {
- bookmark_pic->dynamicCall("Select(void)");
- QAxObject *range;
- range = bookmark_pic->querySubObject("Range");
- QVariant tmp = range->asVariant();
- QList<QVariant>qList;
- qList<<QVariant("D:/1.png");
- qList<<QVariant(false);
- qList<<QVariant(true);
- qList<<tmp;
- QAxObject *Inlineshapes = document->querySubObject("InlineShapes");
- Inlineshapes->dynamicCall("AddPicture(const QString&, QVariant, QVariant ,QVariant)",qList);
- }
- // 将文件另存为docbyqt.doc,关闭工作文档,退出应用程序
- document->dynamicCall("SaveAs (const QString&)", QString("D:/doc/docbyqt.doc"));
- document->dynamicCall("Close (boolean)", false);
- word->dynamicCall("Quit()");
- return app.exec();
- }
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)的更多相关文章
- C#操作word模板插入文字、图片及表格详细步骤
c#操作word模板插入文字.图片及表格 1.建立word模板文件 person.dot用书签 标示相关字段的填充位置 2.建立web应用程序 加入Microsoft.Office.Interop.W ...
- [转]C#操作word模板插入文字、图片及表格详细步骤
c#操作word模板插入文字.图片及表格 1.建立word模板文件 person.dot用书签 标示相关字段的填充位置 2.建立web应用程序 加入Microsoft.Office.Interop.W ...
- 怎样在Word中插入代码并保持代码原始样式不变
怎样在Word中插入代码并保持样式不变 我们有时候需要在word中添加一段我们写的代码,但是把代码粘贴到word文档中之后就发现所有的代码的样子都变了,我们可以采用下边的方法来实现保持代码原来的样式和 ...
- 使用EndNote在Word中插入参考文献的格式设置
endnote其实自带了很多参考文献格式的样式,如下图,但往往跟我们要使用的会有所出入,本文主要介绍的就是设置自定义endnote参考文献格式,以endnote X6和word2003为例,其它版本以 ...
- word中插入myth type公式行距变大的问题
在写文章时,我遇到了在word中插入myth type公式时,行距明显变大的问题,我通过改变段落中的行距没有解决问题,在网上查了一下,找到一些解决方法,仅供参考. 解决办法
- 不用MathType, 如何在Mac Word中插入公式
不用MathType, 如何在Mac Word中插入公式 找了好久都找不到MathType的破解版,不得不使用免费清爽的MarkDown编辑工具Typora_for_Mac. 我是很喜欢Typora的 ...
- 计算机_软件技巧_01_优雅地再word中插入代码
二.参考资料 1.如何优雅的在 Microsoft word中插入代码
- java向word中插入Excel附件
1.word中插入对象的原理 编辑word,向word中插入图片.EXCEL.WORD等附件,再将word保存为xml格式,通过XML查看工具打开xml格式的word的源码,通过对比源码, 可以发现平 ...
- 教你一招:Word中的文字转换成表格,把表格转换成文字
在使用office软件时,常常会在Word中加入表格,这时候我们一般想到的是,建立表格,然后一格一格的填写;或者用Excel表格制作在复制到Word文档中.其实在Word中就可以将文本文档转换成电子表 ...
随机推荐
- Arduino 入门程序示例之一片 LED(2015-06-11)
概述 从点到线,从线到面.现在开始要来一片的 LED 了,一大波的 LED 正在到来! 示例程序 因为手头没有现成的模块,手头只有 595,所以这里每一个示例程序都是使用 74HC595 扩展 IO ...
- JVM--常见的虚拟机回收算法
Serial GC -XX:+UseSerialGC 这样就设置为了串行GC回收方式,这种方式在Client模式下是默认的. 一般是使用在单机程序,小内存,CPU个数少的机器上. 没有复杂的算法,只用 ...
- java--多线程之Runnable
引读: 上一篇博文中讲了Thread的继承,存在一个问题就是,如果类本身已经继承了某个父类,又要继承Thread,导致多重继承. [但是我们知道接口是实现多重继承的重要方式].java提供了Runna ...
- highcharts dynamic change line color
mouseOut: function(){ this.series.graph.attr({"stroke","#ccc"}) }
- Android Drawable 与 LayerList综合汇总
先看需求.要求这样的效果 上代码 <?xml version="1.0" encoding="utf-8"? > <layer-list xm ...
- ADO.NET 对象 结构图
- MySQL推出Applier,可实时复制数据到Hadoop
MySQL复制操作可以将数据从一个MySQL服务器(主)复制到其他的一个或多个MySQL服务器(从).试想一下,如果从服务器不再局限为一个MySQL服务器,而是其他任何数据库服务器或平台,并且复制事件 ...
- 推荐五个最好的MySQL GUI工具
推荐五个最好的MySQL GUI工具 在本文中,我们会介绍一些最常用的MySQL GUI工具并附上下载链接.希望大家能更好的运用这些工具. AD:网+线下沙龙 | 移动APP模式创新:给你一个做APP ...
- javascript 浏览器兼容性写法
var event = window.event || arguments.callee.caller.arguments[0]; // 获取event对象 event = event.srcElem ...
- c++中一个类所占用的空间
看到阿里的一道笔试题: #pragma pack(2) class A { int i; union U { char buff[13]; int i; }u; void foo() { } type ...