Qt中操作Excel表格读写

这篇博客展示了如何使用C++通过QAxObject与Excel进行交互,实现数据从数据库导入到Excel以及从Excel回填到数据库的操作。首先,代码创建Excel对象并隐藏界面,然后打开或创建工作簿,设定标题并填充数据。接着,从Excel读取数据,存入结构化数据,并执行相应的数据库操作。最后,关闭工作簿和Excel应用,完成数据迁移过程。

示例代码(将数据从数据库导入到Excel,将数据从Excel导入到数据库):

void slotExportBtn(){
    QAxObject *excel = new QAxObject("Excel.Application");
    if(excel->isNull()){
        if(excel != NULL){
            excel->dynamicCall("Quit()");
            delete excel;
        }
        QMessageBox::critical(0, tr("error"), tr("Excel Application is not Exist"));
        return ;
    }

    QAxObject *workbooks = NULL;
    QAxObject *workbook = NULL;
    QAxObject *worksheets = NULL;
    QAxObject *worksheet = NULL;

    excel->dynamicCall("SetVisible(bool)", false);
    excel->setProperty("DisplayAlerts", false);
    workbooks = excel->querySubObject("WorkBooks");

    if(QFile::exists(fileName)){
        workbook = workbooks->querySubObject("Open(const QString &)", fileName);
    }else{
        workbooks->dynamicCall("Add");
        workbook = excel->querySubObject("ActiveWorkBook");
    }

    worksheets = workbook->querySubObject("Sheets");
    worksheet = worksheets->querySubObject("Item(int)", 1);

    QAxObject * usedrange = worksheet->querySubObject("UsedRange");
    //    QAxObject * rows = usedrange->querySubObject("Rows");
    //    QAxObject * columns = usedrange->querySubObject("Columns");
    int intRowStart = usedrange->property("Row").toInt();
    int intColStart = usedrange->property("Column").toInt();
    //    int intCols = columns->property("Count").toInt();
    //    int intRows = rows->property("Count").toInt();

    QAxObject *cell = NULL;
    QString str;
    int rowCount =
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值