Qt读写Excel–QXlsx设置字体格式、样式8
文章目录
- Qt读写Excel--QXlsx设置字体格式、样式8
-
- @[toc]
- 1、概述
- 2、准备工作
- 3、函数说明
- 4、示例代码
-
- 5、实现效果
- 6、源代码
1、概述
2、准备工作
Qt读写Excel–QXlsx基本使用1 |
Qt读写Excel–QXlsx编译为静态库2 |
3、函数说明
注意:执行了操作要保存才生效。⛔
-
void Format::setNumberFormatIndex(int format) |
- 功能说明: 通过索引号设置数字格式(目前好像只支持到81)。
- 参数format: 数字格式索引;
-
int Format::numberFormatIndex() const |
- 功能说明: 获取单元格的数字格式索引;
- 返回值: 数字格式索引;
-
void Format::setNumberFormat(const QString &format) |
- 功能说明: 以字符串传入自定义数字格式,例如
“# ?/?”、“[Red][<=100];[Green][>100]”
;
- 参数format: 自定义数字格式;
-
void Format::setFontSize(int size) |
- 功能说明: 设置单元格字体字号大小;
- 参数size: 字号大小;
-
int Format::fontSize() const |
- 功能说明: 获取单元格字体字号大小;
- 返回值: 字号大小;
-
void Format::setFontItalic(bool italic) |
- 功能说明: 将单元格字体设置为斜体;
- 参数italic: true:斜体 false:正常;
-
bool Format::fontItalic() const |
- 功能说明: 返回单元格字体是否为斜体;
- 返回值: true:斜体 false:正常;
-
void Format::setFontStrikeOut(bool strikeOut) |
- 功能说明: 设置单元格字体是否有删除线;
- 参数strikeOut: true:有删除线 false:无删除线;
-
bool Format::fontStrikeOut() const |
- 功能说明: 获取单元格字体是否有删除线;
- 返回值: true:有删除线 false:无删除线;
-
void Format::setFontColor(const QColor &color) |
- 功能说明: 设置单元格字体颜色;
- 参数color: 字体颜色;
-
QColor Format::fontColor() const |
- 功能说明: 获取单元格字体颜色;
- 返回值: 字体颜色;
-
void Format::setFontBold(bool bold) |
- 功能说明: 设置单元格字体加粗;
- 参数bold: true:加粗 false:正常;
-
bool Format::fontBold() const |
- 功能说明: 返回字体是否为粗体。;
- 返回值: true:加粗 false:正常;
-
void Format::setFontScript(FontScript script) |
- 功能说明: 设置单元格字体脚本样式(上下标);
- 参数script: 由
Format::FontScript
枚举定义,FontScriptSuper:上标、FontScriptSub:下标;
-
Format::FontScript Format::fontScript() const |
- 功能说明: 返回字体的脚本样式;
- 返回值: 由
Format::FontScript
枚举定义;
-
void Format::setFontUnderline(FontUnderline underline) |
- 功能说明: 设置单元格字体下划线;
- 参数underline: 由
Format::FontUnderline
枚举定义;
-
Format::FontUnderline Format::fontUnderline() const |
- 功能说明: 返回单元格字体下划线样式;
- 返回值: 由
Format::FontUnderline
枚举定义;
-
void Format::setFontOutline(bool outline) |
- 功能说明: 设置单元格字体轮廓;
- 参数outline: true:设置字体轮廓 false:正常;
-
bool Format::fontOutline() const |
- 功能说明: 返回单元格字体是否使用字体轮廓;
- 返回值: true:设置字体轮廓 false:正常;
-
void Format::setFontName(const QString &name) |
- 功能说明: 设置单元格字体类型;
- 参数name: 字体类型(例如:黑体、宋体);
-
QString Format::fontName() const |
- 功能说明: 返回单元格字体类型;
- 返回值: 字体类型;
4、示例代码
4.1 .h文件
#ifndef TEST7_H
#define TEST7_H
#include
#include "Interface.h"
namespace Ui {
class Test7;
}
class Test7 : public InterFace
{
Q_OBJECT
public:
explicit Test7(QWidget *parent = nullptr);
~Test7();
QString getExcelName() override;
private slots:
void on_pushButton_clicked();
void on_pushButton_2_clicked();
void on_pushButton_3_clicked();
private:
Ui::Test7 *ui;
};
#endif
4.2 .cpp文件
#include "test7.h"
#include "ui_test7.h"
#include
#include
QXLSX_USE_NAMESPACE
#define EXCEL_NAME "test7.xlsx"
Test7::Test7(QWidget *parent) :
InterFace(parent),
ui(new Ui::Test7)
{
ui->setupUi(this);
this->setWindowTitle("QXlsx设置字体格式、样式");
this->setToolTip(this->windowTitle());
}
Test7::~Test7()
{
delete ui;
}
QString Test7::getExcelName()
{
return EXCEL_NAME;
}
void Test7::on_pushButton_clicked()
{
Document xlsx;
Format format;
for(int i = 1; i < 100; i++)
{
format.setNumberFormatIndex(i);
xlsx.write(i, 1, 1234, format);
xlsx.write(i, 3, 1234.321, format);
qDebug() << xlsx.cellAt(i, 1)->format().numberFormatIndex();
}
if(xlsx.saveAs(EXCEL_NAME))
{
qInfo() << "Excel保存成功!";
}
else
{
qWarning() << "Excel保存失败!";
}
}
void Test7::on_pushButton_2_clicked()
{
Document xlsx;
Format format;
format.setNumberFormat("# ?/?");
xlsx.write(1, 1, 1234.321, format);
format.setNumberFormat("[Red][<=100];[Green][>100]");
xlsx.write(2, 1, 14.321, format);
if(xlsx.saveAs(EXCEL_NAME))
{
qInfo() << "Excel保存成功!";
}
else
{
qWarning() << "Excel保存失败!";
}
}
void Test7::on_pushButton_3_clicked()
{
Document xlsx;
xlsx.write(1, 1, "默认样式");
Format format;
format.setFontSize(15);
xlsx.write(1, 2, "字体大小15", format);
qDebug() << xlsx.cellAt(1, 2)->format().fontSize();
Format format1;
format1.setFontItalic(true);
xlsx.write(1, 3, "斜体", format1);
qDebug() << xlsx.cellAt(1, 3)->format().fontItalic();
Format format2;
format2.setFontStrikeOut(true);
xlsx.write(1, 4, "删除线", format2);
qDebug() << xlsx.cellAt(1, 4)->format().fontStrikeOut();
Format format3;
format3.setFontColor(Qt::red);
xlsx.write(1, 5, "字体颜色", format3);
qDebug() << xlsx.cellAt(1, 5)->format().fontColor();
Format format4;
format4.setFontBold(true);
xlsx.write(1, 6, "字体加粗", format4);
qDebug() << xlsx.cellAt(1, 6)->format().fontBold();
Format format5;
format5.setFontScript(Format::FontScriptSub);
xlsx.write(1, 7, "字体下标", format5);
format5.setFontScript(Format::FontScriptSuper);
xlsx.write(1, 8, "字体上标", format5);
qDebug() << xlsx.cellAt(1, 7)->format().fontScript();
Format format6;
format6.setFontUnderline(Format::FontUnderlineNone);
xlsx.write(1, 9, "无下划线", format6);
format6.setFontUnderline(Format::FontUnderlineSingle);
xlsx.write(1, 10, "单下划线", format6);
format6.setFontUnderline(Format::FontUnderlineDouble);
xlsx.write(1, 11, "双下划线", format6);
format6.setFontUnderline(Format::FontUnderlineSingleAccounting);
xlsx.write(1, 12, "会计用单下划线", format6);
format6.setFontUnderline(Format::FontUnderlineDoubleAccounting);
xlsx.write(1, 13, "会计用双下划线", format6);
qDebug() << xlsx.cellAt(1, 9)->format().fontUnderline();
Format format7;
format7.setFontOutline(true);
xlsx.write(1, 14, "字体轮廓", format7);
qDebug() << xlsx.cellAt(1, 14)->format().fontOutline();
Format format8;
format8.setFontName("黑体");
xlsx.write(1, 15, "字体类型", format8);
qDebug() << xlsx.cellAt(1, 15)->format().fontName();
if(xlsx.saveAs(EXCEL_NAME))
{
qInfo() << "Excel保存成功!";
}
else
{
qWarning() << "Excel保存失败!";
}
}
5、实现效果
6、源代码
gitee
github