• 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

  • 相关阅读:
    进入社会,我们要做哪些准备?
    2天玩转单反相机(第二讲)
    Google广告优化与工具
    Ext JS 4:模型剖析
    iphone开发教程(1) iOS大纲
    iPhone objectivec字符串类NSString的使用
    Ext JS 4倒计时:图形和图表
    Ext JS 4倒计时:开发者预览版
    WOSA介绍
    “苹果皮”与知识产权
  • 原文地址:https://www.cnblogs.com/findumars/p/5346612.html
Copyright © 2020-2023  润新知