QT5.7操作word

来源:互联网 发布:dell1420无限网络开关 编辑:程序博客网 时间:2024/05/17 22:35
void Zhhxzl::on_toolButton_3_clicked()
{
        //这个事在书签处添加的内容
        QString text = "王洪";
        QAxWidget word("Word.Application");                         //调用word组件
        word.setProperty("Visible", true);                          //设置为可见
        QAxObject * documents = word.querySubObject("Documents");   //获取所有工作的文档
        documents->dynamicCall("Add (QString)",QString::fromLocal8Bit("C:/doc/test.doc"));//以template为模板新建个一个word文档
        QAxObject * document = word.querySubObject("ActiveDocument");//激活当前文档
       // wordworkDD->start();
        QAxObject*bookmark_code=document->querySubObject("Bookmarks(QVariant)","pic1");//第二个参数为自己的书签名
        QAxObject*bookmark_code1=document->querySubObject("Bookmarks(QVariant)","pic2");
        QAxObject*bookmark_code2=document->querySubObject("Bookmarks(QVariant)","pic11");
        if(!bookmark_code->isNull())
        {
            bookmark_code->dynamicCall("Select(void)");
            bookmark_code->querySubObject("Range")->setProperty("Text",text);
        }
        if(!bookmark_code1->isNull())
        {
            bookmark_code1->dynamicCall("Select(void)");
            bookmark_code1->querySubObject("Range")->setProperty("Text",text);
        }
        if(!bookmark_code2->isNull())
        {
            bookmark_code2->dynamicCall("Select(void)");
            bookmark_code2->querySubObject("Range")->setProperty("Text",CurrtCheck::check_jintaiyali);
        }
        // 获取文档中名字为pic的标签
        QAxObject * bookmark_pic = document->querySubObject("Bookmarks(QVariant)", "pic21");
        // 选中标签,将图片插入到标签位置
        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("C:/doc/duola.png");
        qList << QVariant(false);
        qList << QVariant(true);
        qList << tmp;
        QAxObject *Inlineshapes = document->querySubObject("InlineShapes");
        Inlineshapes->dynamicCall("AddPicture(const QString&, QVariant, QVariant ,QVariant)", qList);
        }
        //wordworkDD->terminate();
        document->dynamicCall("SaveAs (const QString&)", QString("C:/doc/docbyqt.doc"));//另存为docbyqt.doc
        document->dynamicCall("Close (boolean)", false);                //关闭工作文档
        word.dynamicCall("Quit (void)");
        QMessageBox::about(NULL, "确定", "保存完毕!");
}
注意:文档的路径容易出错
0 0