找回密码
 立即注册
收起左侧

qt 操作word ,错误 请教

3
回复
9395
查看
[复制链接]

尚未签到

来源: 2017-11-27 19:15:08 显示全部楼层 |阅读模式
1Qter豆
用qt操作word,产生如下错误:
环境为:word2016+win10+qt5.9.2
请问怎么解决?
QAxBase::dynamicCallHelper: Document: No such property in {000209ff-0000-0000-c000-000000000046} [Microsoft Word Application]
Candidates are:
DefaultLegalBlackline
DefaultSaveFormat
DefaultTableSeparator
Dialogs
DisplayAlerts
DisplayAutoCompleteTips
DisplayDocumentInformationPanel
DisplayRecentFiles
DisplayScreenTips
DisplayScrollBars
DisplayStatusBar
Documents
DontResetInsertionPointProperties
Dummy1
程序异常结束。
The process was ended forcefully.

回复

使用道具 举报

累计签到:85 天
连续签到:1 天
2017-11-27 21:04:18 显示全部楼层
代码贴上来看看哪写错了
回复

使用道具 举报

尚未签到

2017-11-27 21:33:31 显示全部楼层
本帖最后由 dxybb123 于 2017-11-27 21:36 编辑

#include "widget.h"
#include "ui_widget.h"
#include <QAxWidget>
#include <QAxObject>
Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);
    QString wordPath = "C:\\Users\\lwl\\Desktop\\个人信息.dotx";
    QAxWidget *word = new QAxWidget("Word.Application",this,Qt::MSWindowsOwnDC);
    word->setProperty("Visible",false);
    QAxObject *docments = word->querySubObject("Document");
    docments->dynamicCall("Add(QString)",QString::fromLocal8Bit(wordPath.toLocal8Bit()));
    QAxObject *docment = word->querySubObject("ActiveDocument");
    QAxObject *bookmark_name = docment->querySubObject("Bookmarks(QVariant)","worName");
    if(bookmark_name->isNull())
    {
        bookmark_name->dynamicCall("Select(void)");
        bookmark_name->querySubObject("Range")->setProperty("Text","lwl");
    }
    QAxObject *bookmark_** = docment->querySubObject("Bookmarks(QVariant)","wor**");
    if(bookmark_**->isNull())
    {
        bookmark_**->dynamicCall("Select(void)");
        bookmark_**->querySubObject("Range")->setProperty("Text","male");
    }
    docment->dynamicCall("SaveAs (const QString&)", QString("C:\\Users\\lwl\\Desktop\\个人信息.docx"));
    docment->dynamicCall("Close(boolean)", false);
    word->dynamicCall("Quit()");


}

Widget::~Widget()
{
    delete ui;
}
编译没错,两个**,是 s-e-x,存性别的书签

回复

使用道具 举报

尚未签到

2017-11-28 07:41:01 显示全部楼层
弄好了,谢谢,
Document为Documents
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了