zoukankan      html  css  js  c++  java
  • Qt 向word中插入文字(使用QAxWidget和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

  • 相关阅读:
    Sublime Text 包管理工具及扩展大全
    MVC5路由系统机制详细讲解
    Asp.net MVC中Html.Partial, RenderPartial, Action,RenderAction 区别和用法【转发】
    解决Html.CheckBoxFor中”无法将类型 bool 隐式转换为 bool。存在一个显式转换..."的方法
    [C#]List的Sort()、Find()、FindAll()、Exist()的使用方法举例
    jqGrid配置属性说明
    MSSQL查找前一天,前一月,前一年的数据,对比当前时间记录查找超过一年,一月,一天的数据
    【转】linux expr命令参数及用法详解
    ls -alrth 及ls 详解
    修改linux文件权限命令:chmod
  • 原文地址:https://www.cnblogs.com/findumars/p/5346612.html
Copyright © 2011-2022 走看看