Qt導出圖片到Excel中

手頭一個石油項目,需要把管柱序列中的工具信息導出到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()

去獲得程序的執行路徑,然後加上圖片的相對路徑,從而獲得圖片的絕對路徑。

工程代碼,請移步這裏
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章