日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

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

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

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

文章目錄

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

1、概述🎤

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

  • 使用方式

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

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

2、準備工作🪕

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

3、函數說明🎻

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

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

4、示例代碼🎹

4.1 .h文件📻

/******************************************************************************* @文件名 test5.h* @功能 1、在當前Sheet指定位置插入圖片;* 2、獲取當前Sheet中圖片個數;* 3、通過索引方式和行列號方式讀取當前Sheet中的圖片。** @開發者 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)) // 如果文件已經存在則覆蓋{qInfo() << "Excel保存成功!";}else{qWarning() << "Excel保存失敗!";} }/*** @brief 打開Excel文件,并查詢當前Sheet中圖片數量*/ 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中圖片數量QMessageBox::about(this, "插入圖片數", 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、實現效果🎸

6、源代碼🥁

gitee
github

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

總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。