- pro 文件中要加入
CONFIG += qaxcontainer
2. main.cpp
- #include <QApplication>
- #include <QAxWidget>
- #include <QAxObject>
- int main(int argc, char* argv[])
- {
- QApplication app(argc, argv);
- QAxWidget *word=new QAxWidget("Word.Application", 0, Qt::MSWindowsOwnDC);
- word->setProperty("Visible", true);
- // 獲取所有的工作文檔
- QAxObject * documents = word->querySubObject("Documents");
- // 以文件template.doc為模版新建一個文檔
- documents->dynamicCall("Add(QString)",QString::fromLocal8Bit("D:/doc/template.doc"));
- // 獲取當前激活的文檔
- QAxObject *document=word->querySubObject("ActiveDocument");
- // 獲取文檔中名字為text的標簽
- QAxObject*bookmark_text=document->querySubObject("Bookmarks(QVariant)","text");
- // 選中標簽,將字符InsertText插入到標簽位置
- if(!bookmark_text->isNull()){
- bookmark_text->dynamicCall("Select(void)");
- bookmark_text->querySubObject("Range")->setProperty("Text","InsertText");
- }
- // 將文件另存為docbyqt.doc,關閉工作文檔,退出應用程序
- document->dynamicCall("SaveAs (const QString&)", QString("D:/doc/docbyqt.doc"));
- document->dynamicCall("Close (boolean)", false);
- word->dynamicCall("Quit()");
- return app.exec();
- }
http://blog.csdn.net/zbc415766331/article/details/36396159
網上關於qt操作word的資料實在是太少了,搞了半天終於能在word 表格中插入標簽的地方插入圖片了。
1.在pro中加入
CONFIG += qaxcontainer
2.main.cpp
- #include <QApplication>
- #include <QAxWidget>
- #include <QAxObject>
- int main(int argc, char* argv[])
- {
- QApplication app(argc, argv);
- QAxWidget *word=new QAxWidget("Word.Application", 0, Qt::MSWindowsOwnDC);
- word->setProperty("Visible", true);
- // 獲取所有的工作文檔
- QAxObject * documents = word->querySubObject("Documents");
- // 以文件template.doc為模版新建一個文檔
- documents->dynamicCall("Add(QString)",QString::fromLocal8Bit("D:/doc/template.doc"));
- // 獲取當前激活的文檔
- QAxObject *document=word->querySubObject("ActiveDocument");
- // 獲取文檔中名字為text的標簽
- QAxObject*bookmark_text=document->querySubObject("Bookmarks(QVariant)","text");
- // 選中標簽,將字符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)","pic");
- // 選中標簽,將圖片插入到標簽位置
- 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("D:/1.png");
- qList<<QVariant(false);
- qList<<QVariant(true);
- qList<<tmp;
- QAxObject *Inlineshapes = document->querySubObject("InlineShapes");
- Inlineshapes->dynamicCall("AddPicture(const QString&, QVariant, QVariant ,QVariant)",qList);
- }
- // 將文件另存為docbyqt.doc,關閉工作文檔,退出應用程序
- document->dynamicCall("SaveAs (const QString&)", QString("D:/doc/docbyqt.doc"));
- document->dynamicCall("Close (boolean)", false);
- word->dynamicCall("Quit()");
- return app.exec();
- }
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