Qt导出图片到Excel中

本文介绍了一个石油项目中如何通过Qt应用程序将管柱序列信息导出到Excel,并成功插入图片的方法。包括使用QFileDialog选择保存路径、创建Excel对象、添加工作簿、工作表和图片等步骤。

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

手头一个石油项目,需要把管柱序列中的工具信息导出到Excel中,遇到的难点是导出图片。现在给出自己的实现例子:

QString filename = QFileDialog::getSaveFileName(this,
        tr("保存管柱序列"),"",tr("*.xls")); //选择路径
    if(filename.isEmpty())
    {
        QMessageBox::critical(0, tr("错误"), tr("要保存的文件名为空!"));
        return;
    }

    //建立Excel对象
    QAxObject *excel = new QAxObject("Excel.Application");
    excel->dynamicCall("SetVisible(bool)", true); //如果为了看自己的程序到底怎样工作,可以设置为true
    excel->setProperty("Visible", false);
    QAxObject *workbooks = excel->querySubObject("WorkBooks");
    workbooks->dynamicCall("Add");

    QAxObject *workbook = excel->querySubObject("ActiveWorkBook");//获取当前工作簿
    QAxObject *worksheets = workbook->querySubObject("Sheets");//获取工作表集合
    QAxObject *worksheet = worksheets->querySubObject("Item(int)",1);//获取工作表集合的工作表1,即sheet1


    QAxObject * shapes = worksheet->querySubObject("Shapes");
    QString picDir=QString("F:\\swpu\\qt\\qt_excel\\tool\\1.png");

    shapes->dynamicCall("AddPicture( QString&, bool, bool, double, double, double, double",picDir,true,true,0,0,180,148);
    workbook->dynamicCall("SaveAs(const QString&)",QDir::toNativeSeparators(filename));//保存至filepath,注意一定要用QDir::toNativeSeparators将路径中的"/"转换为"\",不然一定保存不了。
    workbook->dynamicCall("Close()");//关闭工作簿
    excel->dynamicCall("Quit()");//关闭excel
    delete excel;

自己实验的结果,图片路径似乎只能绝对路径,所以在项目中,用到

QDir::currentPath()

去获得程序的执行路径,然后加上图片的相对路径,从而获得图片的绝对路径。

工程代码,请移步 这里
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值