QT 写入Excel文件

文章介绍了使用QT库通过QAxObject在Excel文件中写入数据的方法,一种是写入后自动打开并询问用户保存,另一种是后台操作,自动保存且不显示提示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

QT向Excel文件中写入数据:

1.写入数据后自动打开Excel文件,用户需手动选择是否保存写入信息

QAxObject excel("Excel.Application");
    excel.setProperty("Visible",true);
    QAxObject *workbooks=excel.querySubObject("Workbooks");
    QAxObject *workbook = workbooks->querySubObject("Open(const QString&)",selectedFilePath);
    if (workbook){
        QAxObject *worksheet=workbook->querySubObject("Worksheets(int)",1); //获取excel文件中的第一个表
        if(worksheet){
            QAxObject *cell1 =worksheet->querySubObject("Cells(int,int)",1,1);//写入单元格row,col
            cell1->dynamicCall("SetValue(const QVariant&)",QString("写入数据"));
            delete cell1;
        }
    }

2.写入数据后不打开Excel文件,也不弹出弹窗信息,直接默认保存

QAxObject excel_("Excel.Application");
        excel_.setProperty("Visible",false);
        QAxObject *workbooks=excel_.querySubObject("Workbooks");
        QAxObject *workbook;

        workbook = workbooks->querySubObject("Open(const QString&)",filePath);
        if (workbook){

            QAxObject *worksheet=workbook->querySubObject("Worksheets(int)",1); //获取excel文件中的第一个表
            if(worksheet){
                QAxObject *cell1 =worksheet->querySubObject("Cells(int,int)",firstEmptyRow,col);
                cell1->dynamicCall("setValue(const QString&)",QString("%1").arg("Content"));
            excel_.setProperty("DisplayAlerts", false);
            delete cell1;
            workbook->dynamicCall("Save()");
            //workbook->dynamicCall("SaveAs(const QString&)",filePath);
            workbook->dynamicCall("Close()");//关闭工作簿
            excel_.dynamicCall("Quit()");//关闭excel应用
            }
        }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值