
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标签会出现红线是怎么回事等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)