Qt使用xlsx对操作excel表格常用函数及解析,绘制边框线.自动换行等

本文详细介绍了如何使用QXlsx库在Qt环境中设置Excel文档的列宽、行高、单元格样式,包括垂直和水平对齐、字体大小与加粗、边框样式以及自动换行等,提供了丰富的示例代码,帮助开发者创建美观的电子表格。
摘要由CSDN通过智能技术生成
QXlsx::Document  xlsx;

1.设置列宽或者行高:

函数原型:
bool Document::setColumnWidth(int column, double width)
示例:
xlsx.setColumnWidth(第几列, 列宽); 

函数原型:
bool Document::setColumnWidth(int colFirst, int colLast, double width)
示例:
xlsx.setColumnWidth(开始列, 结束列, 列宽);
xlsx.setRowHeight(第几行, 行高); 
xlsx.setRowHeight(第几行, 结束行, 行高); 

实例
在这里插入图片描述

1.1 写入表格

函数原型:
bool write(const CellReference &cell, const QVariant &value, const Format &format = Format());
参数1:单元格名;参数2:单元格的值;参数3:单元格格式
xlsx.write("A1", "FB3:电力安全工器具台账");
合并单元格:
xlsx.mergeCells("A1:N1", titleFormat);

在这里插入图片描述

2.设置单元格样式:

QXlsx::Format titleFormat;

2.1设置垂直对齐格式

函数原型:
void Format::setVerticalAlignment(VerticalAlignment align)
示例:
titleFormat.setVerticalAlignment(Format::VerticalAlignment::AlignVCenter);//格式垂直居中
垂直对齐各种样式如下:
	enum VerticalAlignment {
		AlignTop, 		//顶端对齐
		AlignVCenter,	//垂直居中
		AlignBottom,	//底部对齐
		AlignVJustify,	//两端对齐
		AlignVDistributed
	};

2.2设置水平对齐格式

示例:
titleFormat.setHorizontalAlignment(Format::VerticalAlignment::AlignLeft);
水平对齐各种样式如下:
    enum HorizontalAlignment {
        AlignHGeneral,
        AlignLeft,	//左对齐
        AlignHCenter,//水平居中对齐
        AlignRight,	//右对齐
        AlignHFill,
        AlignHJustify,
        AlignHMerge,
        AlignHDistributed
    };

2.3 字体大小和加粗

titleFormat.setFontBold(true); //加粗
titleFormat.setFontSize(8);	//字体大小为8

如下雨所示,一些加粗不不加的对比,中间的第二第三行为14号字体,其余为8号字体
在这里插入图片描述

2.3 设置边框样式,自动换行等

Format headerFormat;

未设置的效果:
在这里插入图片描述

添加薄边框

headerFormat.setBorderStyle(Format::BorderThin);

自动换行

headerFormat.setTextWarp(true);//自动换行

设置后:
在这里插入图片描述
边框样式有如下:

    enum BorderStyle {
        BorderNone, //无边框,默认
        BorderThin,	//薄边框
        BorderMedium,
        BorderDashed, //虚线边框
        BorderDotted, //点线边框
        BorderThick,
        BorderDouble,
        BorderHair,
        BorderMediumDashed,
        BorderDashDot,
        BorderMediumDashDot,
        BorderDashDotDot,
        BorderMediumDashDotDot,
        BorderSlantDashDot
    };
  • 4
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值