Qt导出图片到Excel中

来源:互联网 发布:自动写小说软件 编辑:程序博客网 时间:2024/06/04 19:47

手头一个石油项目,需要把管柱序列中的工具信息导出到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()

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

工程代码,请移步这里
1 0
原创粉丝点击