操作word的步骤:
1.新建一个文件,在绘制好的表格需要插入数据的地方设置书签(插入->书签),另存为模版文件(.dot)。
2.新建一个Qt工程,在main文件中如下定义:
#include <QtGui/QApplication>
#include <QAxWidget>
#include <QAxObject>
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,实现插入图片和表格的功能还不能实现,请各路高手帮忙,谢谢。