Qt 源码之 Qt 操作 Excel,通过几个简单的操作为大家讲解有关Qt 中Excel的操作。先来看内容。
Qt 源码之 Qt 操作 Excel是本文丫介绍的内容,先来看内容:QAxWidget Excel("Excel.Application");
1、显示当前窗口:
excel.setProperty("Visible", true);
2、更改 Excel 标题栏:
excel.setProperty("Caption", "Invoke Microsoft Excel");
3、添加新工作簿:
QAxObject * workbooks = excel.querySubObject("WorkBooks");
workbooks->dynamicCall("Add");
4、打开已存在的工作簿:
workbooks->dynamicCall("Open (const QString&)", QString("c:/test.xls"));
5、获取活动工作簿:
QAxObject * workbook = excel.querySubObject("ActiveWorkBook");
6、获取所有的工作表:
QAxObject * worksheets = workbook->querySubObject("WorkSheets");
7、获取工作表数量:
int intCount = worksheets->property("Count").toInt();
8、获取***个工作表:
QAxObject * worksheet = workbook->querySubObject("Worksheets(int)", 1);
9、获取cell的值:
QAxObject * range = worksheet->querySubObject("Cells(int,int)", 1, 1 );
示例代码:
- viewplaincopytoclipboardprint?
- #include<QtGui>
- #include<QAxObject>
- #include<QAxWidget>
- #include<qaxselect.h>
- intmain(intargc,char**argv)
- {
- QApplicationa(argc,argv);
- QAxSelectselect;
- select.show();
- QAxWidgetexcel("Excel.Application");
- excel.setProperty("Visible",true);
- QAxObject*workbooks=excel.querySubObject("WorkBooks");
- workbooks->dynamicCall("Open(constQString&)",QString("c:/test.xls"));
- QAxObject*workbook=excel.querySubObject("ActiveWorkBook");
- QAxObject*worksheets=workbook->querySubObject("WorkSheets");
- intintCount=worksheets->property("Count").toInt();
- for(inti=1;i<=intCount;i++)
- {
- intintVal;
- QAxObject*worksheet=workbook->querySubObject("Worksheets(int)",i);
- qDebug()<<i<<worksheet->property("Name").toString();
- QAxObject*range=worksheet->querySubObject("Cells(1,1)");
- intVal=range->property("Value").toInt();
- range->setProperty("Value",QVariant(intVal+1));
- QAxObject*range2=worksheet->querySubObject("Range(C1)");
- intVal=range2->property("Value").toInt();
- range2->setProperty("Value",QVariant(intVal+1));
- }
- QAxObject*worksheet=workbook->querySubObject("Worksheets(int)",1);
- QAxObject*usedrange=worksheet->querySubObject("UsedRange");
- QAxObject*rows=usedrange->querySubObject("Rows");
- QAxObject*columns=usedrange->querySubObject("Columns");
- intintRowStart=usedrange->property("Row").toInt();
- intintColStart=usedrange->property("Column").toInt();
- intintCols=columns->property("Count").toInt();
- intintRows=rows->property("Count").toInt();
- for(inti=intRowStart;i<intRowStart+intRows;i++)
- {
- for(intj=intColStart;j<=intColStart+intCols;j++)
- {
- QAxObject*range=worksheet->querySubObject("Cells(int,int)",i,j);
- qDebug()<<i<<j<<range->property("Value");
- }
- }
- excel.setProperty("DisplayAlerts",0);
- workbook->dynamicCall("SaveAs(constQString&)",QString("c:/xlsbyqt.xls"));
- excel.setProperty("DisplayAlerts",1);
- workbook->dynamicCall("Close(Boolean)",false);
- excel.dynamicCall("Quit(void)");
- returna.exec();
- }
小结:Qt 源码之 Qt 操作 Excel的内容介绍完了,希望本文对你有所帮助,原文来自: http://blog.csdn.net/tingsking18/archive/2010/06/18/5677353.aspx
知优网 » Qt 源码之 Qt 操作 Excel(qt的源码)