Qt里QAxObject应该怎么用

Qt里QAxObject应该怎么用,第1张

LRESULT CALLBACK MainProc(HWND hWnd,UINT message, WPARAM wParam,LPARAM lParam)

{

HDC hdc;

PAINTSTRUCT ps;

switch(message)

{

case WM_CREATE:

return 0;

case WM_PAINT:

hdc=BeginPaint(hWnd,&ps);

//do drawing

EndPaint(hWnd,&ps);

return 0;

case WM_RBUTTONDOWN:

//鼠标在窗口中右键被按下时,d出浮动式菜单

if(DoDispPopupMenu(hWnd,LOWORD(lParam),HIWORD(lParam)))

return 0; //函数调用成功

else

break; //函数调用失败

case WM_COMMAND:

switch(LOWORD(wParam))

{

case ID_INSERT:

if(isInsert==0)

{

//插入新的菜单项

DoInsertMenuItem();

//显示相关信息

DoDispMessage(4);

}

break;

case ID_NEWITEM:

DoDispMessage(3);

break;

case ID_DELETE:

if(isInsert!=0)

{

*** 作word的步骤:1

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

(dot)。

2新建一个Qt工程,在main文件中如下定义:#include<QtGui/QApplication#include<QAxWidget#include<QAxObjectintmain(intargc,

charargv[]){QApplicationapp(argc,

argv);//新建一个word应用程序,并设置为可见QAxWidgetword=newQAxWidget(WordApplication,0,Qt::MSWindowsOwnDC);word-setProperty(Visible,

true);//获取所有的工作文档QAxObjectdocuments=word-querySubObject(Documents);//以文件templatedot为模版新建一个文档

documents-dynamicCall(

Add(QString),

QString::fromLocal8Bit(

D:/templatedot));//获取当前激活的文档QAxObjectdocument=word-querySubObject(

ActiveDocument);//获取文档中名字为text的标签QAxObjectbookmark_text=document-querySubObject(

Bookmarks(QVariant),

code);//选中标签,将字符InsertText插入到标签位置if(!bookmark_text-isNull()){

bookmark_text-dynamicCall(

Select(void));bookmark_text-querySubObject(Range)-setProperty(Text,

InsertText);}//获取文档中名字为pic的标签QAxObjectbookmark_pic=document-querySubObject(

Bookmarks(QVariant),

code);//选中标签,将插入到标签位置if(!bookmark_pic-isNull()){

bookmark_pic-dynamicCall(

AddPicture(void));bookmark_pic-querySubObject(Range)-setProperty(

InlineShape,

D:/waittinggif);}//将文件另存为docbyqtdoc,关闭工作文档,退出应用程序

include <QtCore/QCoreApplication>

#include <QAxObject>

#include <Windowsh>

int main(int argc, char argv[])

{

//OleInitialize(0);

//CoInitialize(0);

QCoreApplication a(argc, argv);

QAxObject asdfg = new QAxObject("ExcelApplication");

return aexec();

}

1:在项目文件中添加 QT+=axcontainer模块

2:头文件包含 #include<QAxObject>

3:定义一个QAxObjec对象并且指定父对象

4:连接控件,控件通常有excel和wps两种,大多数是excel,但需注意电脑上是否

安装了excel以及excel是否激活,因为这两种情况都会导致读取失败

实例:

//加入用户电脑没有安装excel,setControl的返回值是零

//第二条if语句是判断用户有没有安装wps,有的话就打开wps控件

if (!excelsetControl("ExcelApplication"))

    {

        if (!excelsetControl("ketApplication"))  //连接Excel控件

        {

            QMessageBox::about(NULL, "提示", "请安装excel或wps  ");

            return;

        }

    }

5:设置读取xlsx文件对象的属性

实例:

excelsetProperty("Visible", true);//设置xlsx文件是否可见

6:获取工作簿集合

实例:

  QAxObject work_books = excelquerySubObject("WorkBooks");

7:通过调用COM中的一个函数来打开我们的xlsl文件

实例:

work_books->dynamicCall("Open (const QString&)", QString("D:/luohuiqing/qtexcelxlsx"));

/调用COM中名为Open的函数,并将第二个参数当做Open的形参传入/

8:获取活动工作簿

实例:

QAxObject work_book = excelquerySubObject("ActiveWorkBook");//获取活动工作簿

9:获取所有的工作表

实例:

QAxObject work_sheets = work_book->querySubObject("WorkSheets");//获取所有的工作表,如图

10:获取工作表数目

实例:

int sheet_count = work_sheets->property("Count")toInt();  //获取工作表数目

11在判断获取的工作表数目大于零的情况下,对表进行我们想要的 *** 作,如:

111:获取我们工作簿中的某张表

实例:

QAxObject work_sheet = work_book->querySubObject("Sheets(int)", 1);

/获取工作簿中的第一张表/

112:获取我们表中值的集合

实例:

QAxObject usedRange=work_sheet->querySubObject("UsedRange");

QVariant var=usedRange->dynamicCall("value");

113:将我们得到的值存入一个QVariantList容器中

实例:

QVariantList varRowContents=vartoList();

114:将数据的数量用一个const的整形变量保存下来

115:注意数据在容器中的存储顺序是一行一行存储的

12:在我们对xslx文件 *** 作结束后,应该关闭wps或excel,防止有进程残留

实例:

exceldynamicCall("Quit(void)");

为楼主搜索到的网上已有资料,经验证正确:

-----------------------------------------------------

*** 作word的步骤:1

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

(dot)。

2新建一个Qt工程,在main文件中如下定义:#include<QtGui/QApplication#include<QAxWidget#include<QAxObjectintmain(intargc,

charargv[]){QApplicationapp(argc,

argv);//新建一个word应用程序,并设置为可见QAxWidgetword=newQAxWidget(WordApplication,0,Qt::MSWindowsOwnDC);word-setProperty(Visible,

true);//获取所有的工作文档QAxObjectdocuments=word-querySubObject(Documents);//以文件templatedot为模版新建一个文档

documents-dynamicCall(

Add(QString),

QString::fromLocal8Bit(

D:/templatedot));//获取当前激活的文档QAxObjectdocument=word-querySubObject(

ActiveDocument);//获取文档中名字为text的标签QAxObjectbookmark_text=document-querySubObject(

Bookmarks(QVariant),

code);//选中标签,将字符InsertText插入到标签位置if(!bookmark_text-isNull()){

bookmark_text-dynamicCall(

Select(void));bookmark_text-querySubObject(Range)-setProperty(Text,

InsertText);}//获取文档中名字为pic的标签QAxObjectbookmark_pic=document-querySubObject(

Bookmarks(QVariant),

code);//选中标签,将插入到标签位置if(!bookmark_pic-isNull()){

bookmark_pic-dynamicCall(

AddPicture(void));bookmark_pic-querySubObject(Range)-setProperty(

InlineShape,

D:/waittinggif);}//将文件另存为docbyqtdoc,关闭工作文档,退出应用程序

include <QtCore/QCoreApplication>

#include <QAxObject>

#include <Windowsh>

int main(int argc, char argv[])

{

//OleInitialize(0);

//CoInitialize(0);

QCoreApplication a(argc, argv);

QAxObject asdfg = new QAxObject("ExcelApplication");

return aexec();

}

以上就是关于Qt里QAxObject应该怎么用全部的内容,包括:Qt里QAxObject应该怎么用、如何使用Qt *** 作word,实现插入图片和表格的功能、php读取富文本的时p标签会出现红线是怎么回事等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9509590.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-29
下一篇2023-04-29

发表评论

登录后才能评论

评论列表(0条)

    保存