• 8180阅读
  • 2回复

[提问]mExcelObj->querySubObject( "Workbooks" ); 的返回总是空? [复制链接]

上一主题 下一主题
离线ausgojob
 
只看楼主 倒序阅读 楼主  发表于: 2012-06-20
关键词: Workbooks

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" )的返回总是空?怎么回事呢?
离线ausgojob
只看该作者 1楼 发表于: 2012-06-20
其实我是想把excel转成指定格式的xml,想到读excel,然后在写到xml里去。

这个程序一直通不过,不过现在找到了别的办法。

其实excel里面有直接导出到xml 的操作,excel 2003 和 2007 都有。

可以在excel里面指定导出xml文件里的标签的名字,很方便。

具体操作参考这个网址。

希望对有同样困惑的人有帮助!

http://www.51cto.com/art/200508/1481.htm
离线roywillow

只看该作者 2楼 发表于: 2012-06-20
Workbooks后加不加括号会不会有啥影响?
另外那些判断可以不用0==,直接用!取反
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
快速回复
限100 字节
 
上一个 下一个