操作word的步骤:

1.新建一个文件,在绘制好的表格需要插入数据的地方设置书签(插入->书签),另存为模版文件(.dot)。

2.新建一个Qt工程,在main文件中如下定义:

#include 

#include 

#include 

int main(int argc, char* argv[])

{

 QApplication app(argc, argv);

 // 新建一个word应用程序,并设置为可见

 QAxWidget *word=new QAxWidget("Word.Application", 0, Qt::MSWindowsOwnDC);

 word->setProperty("Visible", true);

 // 获取所有的工作文档

 QAxObject * documents = word->querySubObject("Documents");

 // 以文件template.dot为模版新建一个文档

 documents->dynamicCall("Add(QString)",QString::fromLocal8Bit("D:/template.dot"));

 // 获取当前激活的文档

 QAxObject *document=word->querySubObject("ActiveDocument");

 // 获取文档中名字为text的标签

 QAxObject*bookmark_text=document->querySubObject("Bookmarks(QVariant)","code");

 // 选中标签,将字符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)","code");

 // 选中标签,将图片插入到标签位置

 if(!bookmark_pic->isNull()){

 bookmark_pic->dynamicCall("AddPicture(void)");

 bookmark_pic->querySubObject("Range")->setProperty("InlineShape","D:/waitting.gif");

 }

 // 将文件另存为docbyqt.doc,关闭工作文档,退出应用程序

 document->dynamicCall("SaveAs (const QString&)", QString("D:/docbyqt.doc"));

 document->dynamicCall("Close (boolean)", false);

 word->dynamicCall("Quit()");

 return app.exec();

}

现在可以实现插入Text类型的字符,但是使用Qt操作word,实现插入图片和表格的功能还不能实现,请各路高手帮忙,谢谢。

【备注】需修改pro文件内容,使其支持应用

其实,如果你认真看QT官方的文档,就能发现正确的 pro参数是:

 += 

而不是QT +=...