连接Excel控件
QAxWidget excel("Excel.Application");
显示当前窗口:
excel.setProperty("Visible", true);
更改 Excel 标题栏:
excel.setProperty("Caption", "Invoke Microsoft Excel");
不显示任何警告信息
setProperty("DisplayAlerts",0)
添加新工作簿:
QAxObject * workbooks = excel.querySubObject("WorkBooks");
workbooks->dynamicCall("Add");
打开已存在的工作簿:
workbooks->dynamicCall("Open (const QString&)", QString("c:/test.xls"));
获取活动工作簿:
QAxObject * workbook = excel.querySubObject("ActiveWorkBook");
获取所有的工作表:
QAxObject * worksheets = workbook->querySubObject("WorkSheets");
获取工作表数量:
int intCount = worksheets->property("Count").toInt();
获取第一个工作表:
QAxObject * worksheet = workbook->querySubObject("Worksheets(int)", 1);
获取cell的值:
QAxObject * range = worksheet->querySubObject("Cells(int,int)", 1, 1 );
获取已使用区域
m_pworksheet->querySubObject("UsedRange")
获取行数
QAxObject *rows = usedrange->querySubObject("Rows");
int nRows = rows->property("Count").toInt();
获取列数
QAxObject *columns = usedrange->querySubObject("Columns");
int nCols = columns->property("Count").toInt();
以上操作不一定每个都可用(都好用),仅作为参考吧。起码我第9)个就没成功,不知为何?后来我改用了Range(QVariant, QVariant)的方法来替代它。