Qt读写Excel--QXlsx插入、读取图片6
生活随笔
收集整理的這篇文章主要介紹了
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、源代碼🥁
- @[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編譯為靜態庫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_H4.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的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 坐标转换(空间直角坐标系与大地坐标系)
- 下一篇: orc识别较慢_关于半自动标注工具PPO