欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

QT excel中添加新的表sheet

程序员文章站 2024-03-17 19:43:22
...

初始化excel就不写了
方法一:在第二个位置上添加

int icount = m_pWorkSheets->property("Count").toInt();
    qDebug()<<"11142221"<<icount<<QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss.zzz");;


    QAxObject* newSheet = m_pWorkSheets->querySubObject("Add(QVariant)", m_pWorkSheet->asVariant());


    newSheet->setProperty("Name", strName);


    m_pWorkSheet->dynamicCall("Move(QVariant)", newSheet->asVariant());//因为此处m_pWorkSheet是第一个表格呀,所以,插入的表格都是在第二个//初始化时就为第一个
    m_pWorkSheet = newSheet;
    m_pWorkSheet->dynamicCall("Select()");//选择当前作为活动的sheet

方法二:在最后一个表后面添加

 int icount = m_pWorkSheets->property("Count").toInt();
    qDebug()<<"11142221"<<icount<<QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss.zzz");
   


    QAxObject *pLastSheet = m_pWorkSheets->querySubObject("Item(int)", icount);
    m_pWorkSheets->querySubObject("Add(QVariant)", pLastSheet->asVariant());
    m_pWorkSheet = m_pWorkSheets->querySubObject("Item(int)", icount);//新增的表在倒数第二个的位置上
    //将指定工作表移到工作簿的另一位置。expression.Move(Before, After)
    //旧表中最后一个表放在新增表的前面 
    pLastSheet->dynamicCall("Move(QVariant)", m_pWorkSheet->asVariant());
    
    
    m_pWorkSheet->setProperty("Name", strName);
    
    m_pWorkBook->dynamicCall("Save()");//必须有此`

参考https://www.cnblogs.com/findumars/p/5615725.html
相关标签: QT excel