Qt下Excel操作Word文档格式.docx
《Qt下Excel操作Word文档格式.docx》由会员分享,可在线阅读,更多相关《Qt下Excel操作Word文档格式.docx(10页珍藏版)》请在冰豆网上搜索。
![Qt下Excel操作Word文档格式.docx](https://file1.bdocx.com/fileroot1/2022-10/27/9f9782c0-7d6c-4392-8bd8-77f0faee01e9/9f9782c0-7d6c-4392-8bd8-77f0faee01e91.gif)
如下,是我下载的一个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()<
<
QString("
exceltitle:
"
)<
title_value;
QAxObject*work_book=excel.querySubObject("
ActiveWorkBook"
QAxObject*work_sheets=work_book->
querySubObject("
Sheets"
//Sheets也可换用WorkSheets
intsheet_count=work_sheets->
property("
Count"
).toInt();
//获取工作表数目
sheetcount:
sheet_count;
for(inti=1;
i<
=sheet_count;
i++)
{
QAxObject*work_sheet=work_book->
Sheets(int)"
i);
//Sheets(int)也可换用Worksheets(int)
QStringwork_sheet_name=work_sheet->
Name"
).toString();
//获取工作表名称
QStringmessage=QString("
sheet"
)+QString:
:
number(i,10)+QString("
name"
message<
work_sheet_name;
}
if(sheet_count>
0)
{
1);
QAxObject*used_range=work_sheet->
UsedRange"
QAxObject*rows=used_range->
Rows"
QAxObject*columns=used_range->
Columns"
introw_start=used_range->
Row"
//获取起始行
intcolumn_start=used_range->
Column"
//获取起始列
introw_count=rows->
//获取行数
intcolumn_count=columns->
//获取列数
for(inti=row_start;
i
{
for(intj=column_start;
j
QAxObject*cell=work_sheet->
Cells(int,int)"
i,j);
QVariantcell_value=cell->
Value"
//获取单元格容
row-"
number(i,10)+QString("
-column-"
number(j,10)+QString("
"
cell_value;
}
效果如下:
Excel增、删、改
主要操作:
∙设置标题
∙插入工作表〔至最后一行〕
∙设置工作表名称
∙删除工作表
∙设置单元格容
∙设置单元格字体〔类型、大小、加粗、斜体、下划线、颜色等〕
∙设置单元格对齐方式
∙设置单元格高度、宽度
∙设置单元格背风光、边框色
∙合并/拆分单元格
∙清空单元格
Open(constQString&
"
\\test.xlsx"
QtExcel"
//删除工作表〔删除第一个〕
QAxObject*first_sheet=work_sheets->
Item(int)"
first_sheet->
delete"
//插入工作表〔插入至最后一行〕
QAxObject*last_sheet=work_sheets->
sheet_count);
QAxObject*work_sheet=work_sheets->
Add(QVariant)"
last_sheet->
asVariant());
last_sheet->
Move(QVariant)"
work_sheet->
work_sheet->
setProperty("
QtSheet"
//设置工作表名称
//操作单元格〔第2行第2列〕
2,2);
cell->
JavaC++C#PHPPerlPythonDelphiRuby"
//设置单元格值
RowHeight"
50);
//设置单元格行高
ColumnWidth"
30);
//设置单元格列宽
HorizontalAlignment"
-4108);
//左对齐〔xlLeft〕:
-4131
居中〔xlCenter〕:
-4108
右对齐〔xlRight〕:
-4152
VerticalAlignment"
//上对齐〔xlTop〕-4160居中〔xlCenter〕:
下对齐〔xlBottom〕:
-4107
WrapText"
//容过多,自动换行
//cell->
ClearContents()"
//清空单元格容
QAxObject*interior=cell->
Interior"
interior->
Color"
QColor(0,255,0));
//设置单元格背风光〔绿色〕
QAxObject*border=cell->
Borders"
border->
QColor(0,0,255));
//设置单元格边框色〔蓝色〕
QAxObject*font=cell->
Font"
//获取单元格字体
font->
QStringLiteral("
华文彩云"
//设置单元格字体
Bold"
//设置单元格字体加粗
Size"
20);
//设置单元格字体大小
Italic"
//设置单元格字体斜体
Underline"
2);
//设置单元格下划线
QColor(255,0,0));
//设置单元格字体颜色〔红色〕
//设置单元格容,并合并单元格〔第5行第3列-第8行第5列〕
QAxObject*cell_5_6=work_sheet->
5,3);
cell_5_6->
Val