Qt读写Excel–QXlsx插入、读取图片6
文章目录
- Qt读写Excel--QXlsx插入、读取图片6
-
- @[toc]
- 1、概述
- 2、准备工作
- 3、函数说明
- 4、示例代码
-
- 5、实现效果
- 6、源代码
1、概述
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文件
#ifndef TEST5_H
#define TEST5_H
#include
#include "Interface.h"
namespace Ui {
class Test5;
}
class Test5 : public InterFace
{
Q_OBJECT
public:
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
4.2 .cpp文件
#include "test5.h"
#include "ui_test5.h"
#include
#include
#include
QXLSX_USE_NAMESPACE
#define EXCEL_NAME "image.xlsx"
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;
}
void Test5::on_but_insert_clicked()
{
Document xlsx;
QImage image1("://image/C++.PNG");
QImage image2("://image/Qt.PNG");
qDebug() << "插入图片:"<<xlsx.insertImage(3, 3, image1);
qDebug() << "插入图片:"<<xlsx.insertImage(23, 3, image2);
if(xlsx.saveAs(EXCEL_NAME))
{
qInfo() << "Excel保存成功!";
}
else
{
qWarning() << "Excel保存失败!";
}
}
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();
QMessageBox::about(this, "插入图片数", QString("共有%1张图片!").arg(count));
}
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);
if(ret)
{
ui->label->setPixmap(QPixmap::fromImage(image));
}
else
{
QMessageBox::warning(this, "错误", "读取图片失败,可能是不存在!");
}
}
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);
if(ret)
{
ui->label->setPixmap(QPixmap::fromImage(image));
}
else
{
QMessageBox::warning(this, "错误", "读取图片失败,可能是不存在或位置错误!");
}
}
5、实现效果
6、源代码
gitee
github