日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Qt读写Excel--QXlsx插入、读取图片6

發(fā)布時間:2024/1/1 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Qt读写Excel--QXlsx插入、读取图片6 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Qt讀寫Excel–QXlsx插入、讀取圖片6🎧

文章目錄

  • Qt讀寫Excel--QXlsx插入、讀取圖片6🎧
    • @[toc]
    • 1、概述🎤
    • 2、準備工作🪕
    • 3、函數(shù)說明🎻
    • 4、示例代碼🎹
      • 4.1 .h文件📻
      • 4.2 .cpp文件🎷
    • 5、實現(xiàn)效果🎸
    • 6、源代碼🥁
更多精彩內(nèi)容
👉個人內(nèi)容分類匯總 👈

1、概述🎤

  • QXlsx是一個可以讀寫Excel文件的庫。不依賴office以及wps組件,可以在Qt5支持的任何平臺上使用;

  • 使用方式

  • QXlsx可以編譯為動態(tài)庫使用(使用動態(tài)庫不用每次的編譯,也可以讓項目代碼量更少,不用一打開工程就幾十個文件);
  • 直接將QXlsx.pri加入代碼中使用(我比較推薦直接使用源碼,因為QXlsx的注釋信息基本在cpp文件中,可以通過閱讀源碼和注釋來學習QXlsx的功能,當然,如果你已經(jīng)熟悉了QXlsx的使用方式那編譯成庫使用會更方便,可以使工程的代碼量變少);
  • 本文中實現(xiàn)的功能:

  • 在當前Sheet指定位置插入圖片;
  • 獲取當前Sheet中圖片個數(shù);
  • 通過索引方式和行列號方式讀取當前Sheet中的圖片。

2、準備工作🪕

👉Qt讀寫Excel–QXlsx基本使用1👈
👉Qt讀寫Excel–QXlsx編譯為靜態(tài)庫2👈

3、函數(shù)說明🎻

注意:執(zhí)行了操作要保存才生效。?

  • int Document::insertImage(int row, int column, const QImage &image)
    • 功能說明: 在當前活動工作表的row行、column列位置插入圖像;
    • 參數(shù)row: 插入圖像的左上角位于row行(從1開始);
    • 參數(shù)col: 插入圖像的左上角位于col行(從1開始);
    • 參數(shù)image: 需要插入的圖片;
    • 返回值:true:插入成功,false:插入失敗;
  • uint Document::getImageCount()
    • 功能說明: 獲取當前活動工作表中圖片的個數(shù);
    • 返回值: 工作表中圖片個數(shù);
  • bool Document::getImage(int imageIndex, QImage& img)
    • 功能說明: 以【索引】方式獲取當前活動工作表中索引為imageIndex的圖片;
    • **參數(shù)imageIndex:**需要獲取的圖片的索引(從1開始);
    • 參數(shù)img: 用于保存獲取的圖片;
    • 返回值: true:獲取圖片成功,false:獲取圖片失敗;
  • bool Document::getImage(int row, int col, QImage &img)
    • 功能說明: 以【行列號】方式獲取當前活動工作表中位于row行、col列的圖片;
    • 參數(shù)row: 圖像的左上角位于row行(從1開始);
    • 參數(shù)col: 圖像的左上角位于col行(從1開始);
    • 參數(shù)img: 用于保存獲取的圖片;
    • 返回值: true:獲取圖片成功,false:獲取圖片失敗;

4、示例代碼🎹

4.1 .h文件📻

/******************************************************************************* @文件名 test5.h* @功能 1、在當前Sheet指定位置插入圖片;* 2、獲取當前Sheet中圖片個數(shù);* 3、通過索引方式和行列號方式讀取當前Sheet中的圖片。** @開發(fā)者 mhf* @郵箱 1603291350@qq.com* @時間 2022/07/06* @備注*****************************************************************************/ #ifndef TEST5_H #define TEST5_H#include <QWidget> #include "Interface.h"namespace Ui { class Test5; }class Test5 : public InterFace {Q_OBJECTpublic:explicit Test5(QWidget *parent = nullptr);~Test5();QString getExcelName() override;private slots:void on_but_insert_clicked();void on_but_getCount_clicked();void on_but_getImage1_clicked();void on_pushButton_4_clicked();private:Ui::Test5 *ui; };#endif // TEST5_H

4.2 .cpp文件🎷

#include "test5.h" #include "ui_test5.h" #include <QDebug> #include <QMessageBox> #include <xlsxdocument.h> QXLSX_USE_NAMESPACE#define EXCEL_NAME "image.xlsx" // 本Demo使用的Excel文件名Test5::Test5(QWidget *parent) :InterFace(parent),ui(new Ui::Test5) {ui->setupUi(this);this->setWindowTitle("QXlsx在工作表中插入、讀取圖片");this->setToolTip(this->windowTitle()); }Test5::~Test5() {delete ui; }QString Test5::getExcelName() {return EXCEL_NAME; }/*** @brief 插入圖片*/ void Test5::on_but_insert_clicked() {Document xlsx;QImage image1("://image/C++.PNG");QImage image2("://image/Qt.PNG");qDebug() << "插入圖片:"<<xlsx.insertImage(3, 3, image1); // 在3行3列單元格右下角位置插入圖片qDebug() << "插入圖片:"<<xlsx.insertImage(23, 3, image2); // 在23行3列單元格右下角位置插入圖片if(xlsx.saveAs(EXCEL_NAME)) // 如果文件已經(jīng)存在則覆蓋{qInfo() << "Excel保存成功!";}else{qWarning() << "Excel保存失敗!";} }/*** @brief 打開Excel文件,并查詢當前Sheet中圖片數(shù)量*/ void Test5::on_but_getCount_clicked() {Document xlsx(EXCEL_NAME);if(!xlsx.load()){QMessageBox::warning(this, "錯誤", QString("打開%1失敗,可能是文件不存在!").arg(EXCEL_NAME));return;}uint count = xlsx.getImageCount(); // 查詢當前Sheet中圖片數(shù)量QMessageBox::about(this, "插入圖片數(shù)", QString("共有%1張圖片!").arg(count)); }/*** @brief 使用方法一讀取Excel中的圖片(通過索引讀取)* 注意:這里索引從1開始,而不是從0開始(Qxlsx的一些小bug)*/ void Test5::on_but_getImage1_clicked() {Document xlsx(EXCEL_NAME);if(!xlsx.load()){QMessageBox::warning(this, "錯誤", QString("打開%1失敗,可能是文件不存在!").arg(EXCEL_NAME));return;}QImage image;bool ret = xlsx.getImage(1, image); // 讀取當前Sheet中第1張圖片(注意:索引是從1開始,而不是從0開始)if(ret){ui->label->setPixmap(QPixmap::fromImage(image)); // 顯示讀取到的圖片}else{QMessageBox::warning(this, "錯誤", "讀取圖片失敗,可能是不存在!");} }/*** @brief 使用方法一讀取Excel中的圖片(通過行列號讀取)*/ void Test5::on_pushButton_4_clicked() {Document xlsx(EXCEL_NAME);if(!xlsx.load()){QMessageBox::warning(this, "錯誤", QString("打開%1失敗,可能是文件不存在!").arg(EXCEL_NAME));return;}QImage image;bool ret = xlsx.getImage(23, 3, image); // 讀取當前Sheet中第2張圖片if(ret){ui->label->setPixmap(QPixmap::fromImage(image)); // 顯示讀取到的圖片}else{QMessageBox::warning(this, "錯誤", "讀取圖片失敗,可能是不存在或位置錯誤!");} }

5、實現(xiàn)效果🎸

6、源代碼🥁

gitee
github

📢📢📢📢📢📢📢📢📢📢📢📢

總結(jié)

以上是生活随笔為你收集整理的Qt读写Excel--QXlsx插入、读取图片6的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。