TExcelReader::TExcelReader(QString excelName, QObject *parent)
: QObject(parent)
, mExcelObj(0)
, mWorkBooks(0)
, mWorkBook(0)
, mSheets(0)
{
QString str = excelName;
test();
mExcelObj = new QAxObject( "Excel.Application",NULL);
//mExcelObj->dynamicCall("SetVisible(bool)", false);
//mWorkBooks = mExcelObj->querySubObject("workbooks");
mWorkBooks = mExcelObj->querySubObject( "Workbooks" ); //得到Workbooks集合的指针
if(0 == mWorkBooks)
return;
mWorkBook = mWorkBooks->querySubObject( "Open(const QString&)", excelName);//open xls
if(0 == mWorkBook)
return;
mSheets = mWorkBook->querySubObject( "Sheets" ); //得到Sheets对象的指针
if(0 == mSheets)
return;
int iSheetCount = mSheets->property("Count").toInt();
for(int index=1; index<=iSheetCount; ++index)
{
QAxObject* sheetObj = mWorkBook->querySubObject("Worksheets(int)", index);
if(0 == sheetObj)
{
Clear();
return;
}
mListSheet.append(TExcelSheet(sheetObj));
}
}
mExcelObj->querySubObject( "Workbooks" )的返回总是空?怎么回事呢?