Qt下Excel操作.docx

上传人:b****2 文档编号:2188761 上传时间:2022-10-27 格式:DOCX 页数:10 大小:184.85KB
下载 相关 举报
Qt下Excel操作.docx_第1页
第1页 / 共10页
Qt下Excel操作.docx_第2页
第2页 / 共10页
Qt下Excel操作.docx_第3页
第3页 / 共10页
Qt下Excel操作.docx_第4页
第4页 / 共10页
Qt下Excel操作.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

Qt下Excel操作.docx

《Qt下Excel操作.docx》由会员分享,可在线阅读,更多相关《Qt下Excel操作.docx(10页珍藏版)》请在冰豆网上搜索。

Qt下Excel操作.docx

Qt下Excel操作

Qt之操作Excel

 (2021-12-0613:

57:

20)

标签:

 

qt

 

qaxobject

 

qt操作excel

 

qtvba

 

excelvba

分类:

 Qt

    VisualBasicforApplications〔VBA〕是一种VisualBasic的一种宏语言,主要能用来扩展Windows的应用程式功能,特别是MicrosoftOffice软件。

也可说是一种应用程式视觉化的BasicScript。

1994年发行的Excel5.0版本中,即具备了VBA的宏功能。

    在VBA的参考手册中就可以看到具体函数、属性的用法,Qt操作Excel主要通过 QAxObject +ExcelVBA来实现!

    关于Qt对Excel的操作,网上的资料挺多的,但大多数都是比拟根底的,关于插入工作表〔至最后一行〕、删除工作表、合并/拆分单元格、设置单元格背风光、设置单元格边框色、设置单元格字体〔类型、大小、加粗、斜体、下划线、颜色等〕、以及设置单元格对齐方式等用法都没有怎么提到,今天就总结一下有关Qt对Excel的操作。

    Qt操作Excel,无论后缀是xls还是xlsx都可以。

    如下,是我下载的一个ExcelVBA参考手册,容不算太全!

Excel读取

    

    为了便于测试,假设已存在一个excel文件,操作容已经被红色标记出来。

如下所示:

主要读取容:

∙标题

∙工作表数目

∙工作表名称

∙起始行

∙起始列

∙行数

∙列数

∙单元格容

代码如下:

QAxObjectexcel("Excel.Application"); 

excel.setProperty("Visible",true); 

QAxObject*work_books=excel.querySubObject("WorkBooks"); 

work_books->dynamicCall("Open(constQString&)",QString("E:

/test.xlsx"));

QVarianttitle_value=excel.property("Caption"); //获取标题

qDebug()<

")<

QAxObject*work_book=excel.querySubObject("ActiveWorkBook"); 

QAxObject*work_sheets=work_book->querySubObject("Sheets"); //Sheets也可换用WorkSheets

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

qDebug()<

")<

for(inti=1;i<=sheet_count;i++) 

QAxObject*work_sheet=work_book->querySubObject("Sheets(int)",i); //Sheets(int)也可换用Worksheets(int)

QStringwork_sheet_name=work_sheet->property("Name").toString(); //获取工作表名称

QStringmessage=QString("sheet")+QString:

:

number(i,10)+QString("name");

qDebug()<

}

if(sheet_count>0)

{

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

QAxObject*used_range=work_sheet->querySubObject("UsedRange"); 

QAxObject*rows=used_range->querySubObject("Rows"); 

QAxObject*columns=used_range->querySubObject("Columns"); 

introw_start=used_range->property("Row").toInt(); //获取起始行  

intcolumn_start=used_range->property("Column").toInt(); //获取起始列

introw_count=rows->property("Count").toInt(); //获取行数

intcolumn_count=columns->property("Count").toInt(); //获取列数

for(inti=row_start;i

for(intj=column_start;j

QAxObject*cell=work_sheet->querySubObject("Cells(int,int)",i,j); 

QVariantcell_value=cell->property("Value"); //获取单元格容

QStringmessage=QString("row-")+QString:

:

number(i,10)+QString("-column-")+QString:

:

number(j,10)+QString(":

");

qDebug()<

}

效果如下:

Excel增、删、改

主要操作:

∙设置标题

∙插入工作表〔至最后一行〕

∙设置工作表名称

∙删除工作表

∙设置单元格容

∙设置单元格字体〔类型、大小、加粗、斜体、下划线、颜色等〕

∙设置单元格对齐方式

∙设置单元格高度、宽度

∙设置单元格背风光、边框色

∙合并/拆分单元格

∙清空单元格

代码如下:

QAxObjectexcel("Excel.Application"); 

excel.setProperty("Visible",true); 

QAxObject*work_books=excel.querySubObject("WorkBooks"); 

work_books->dynamicCall("Open(constQString&)","E:

\\test.xlsx");

excel.setProperty("Caption","QtExcel");

QAxObject*work_book=excel.querySubObject("ActiveWorkBook"); 

QAxObject*work_sheets=work_book->querySubObject("Sheets"); //Sheets也可换用WorkSheets

//删除工作表〔删除第一个〕

QAxObject*first_sheet=work_sheets->querySubObject("Item(int)",1);

first_sheet->dynamicCall("delete");

//插入工作表〔插入至最后一行〕

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

QAxObject*last_sheet=work_sheets->querySubObject("Item(int)",sheet_count);

QAxObject*work_sheet=work_sheets->querySubObject("Add(QVariant)",last_sheet->asVariant());

last_sheet->dynamicCall("Move(QVariant)",work_sheet->asVariant());

work_sheet->setProperty("Name","QtSheet"); //设置工作表名称

//操作单元格〔第2行第2列〕

QAxObject*cell=work_sheet->querySubObject("Cells(int,int)",2,2);

cell->setProperty("Value","JavaC++C#PHPPerlPythonDelphiRuby"); //设置单元格值

cell->setProperty("RowHeight",50); //设置单元格行高

cell->setProperty("ColumnWidth",30); //设置单元格列宽

cell->setProperty("HorizontalAlignment",-4108);//左对齐〔xlLeft〕:

-4131 居中〔xlCenter〕:

-4108 右对齐〔xlRight〕:

-4152

cell->setProperty("VerticalAlignment",-4108); //上对齐〔xlTop〕-4160居中〔xlCenter〕:

-4108 下对齐〔xlBottom〕:

-4107

cell->setProperty("WrapText",true); //容过多,自动换行

//cell->dynamicCall("ClearContents()"); //清空单元格容

QAxObject*interior=cell->querySubObject("Interior");

interior->setProperty("Color",QColor(0,255,0));  //设置单元格背风光〔绿色〕

QAxObject*border=cell->querySubObject("Borders"); 

border->setProperty("Color",QColor(0,0,255));  //设置单元格边框色〔蓝色〕

QAxObject*font=cell->querySubObject("Font"); //获取单元格字体

font->setProperty("Name",QStringLiteral("华文彩云")); //设置单元格字体

font->setProperty("Bold",true); //设置单元格字体加粗

font->setProperty("Size",20); //设置单元格字体大小

font->setProperty("Italic",true); //设置单元格字体斜体

font->setProperty("Underline",2); //设置单元格下划线

font->setProperty("Color",QColor(255,0,0)); //设置单元格字体颜色〔红色〕

//设置单元格容,并合并单元格〔第5行第3列-第8行第5列〕

QAxObject*cell_5_6=work_sheet->querySubObject("Cells(int,int)",5,3);

cell_5_6->setProperty("Val

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1