openpyxl styles 模块

news/2024/11/14 13:05:26/文章来源:https://www.cnblogs.com/wangguishe/p/18196270

styles 模块说明

styles 模块提供了许多用于设置和控制单元格样式的类和方法。这些类和方法可以帮助你定制 Excel 工作表中单元格的外观,包括字体样式、边框、填充颜色等。

styles 模块主要功能

Font(字体):Font 类用于定义和修改单元格中文本的字体样式,如字体名称、大小、颜色、粗体、斜体等。PatternFill(填充颜色):PatternFill 类允许设置单元格的填充颜色和填充样式。Border(边框):Border 类用于定义单元格的边框样式,包括边框粗细、颜色和线条样式。Alignment(对齐):Alignment 类允许控制单元格中内容的对齐方式,包括水平对齐(左对齐、居中、右对齐)和垂直对齐。NamedStyle(命名样式):NamedStyle 类用于创建自定义的命名样式,将多个单元格样式属性组合在一起。

styles 模块导入

from openpyxl.styles import Font, PatternFill, NamedStyle, Alignment, Border

Font

Font(): 通过 Font 类,可以控制字体的名称、大小、颜色、样式(粗体、斜体等)等属性,从而定制单元格中文本的外观。Font() 参数:name="Calibri":设置字体为 Calibri。sz=11:设置字号为 11。family=2:指定字体族,2 代表无衬线字体。b=False:设置粗体为 False,即不启用粗体效果。i=False:设置斜体为 False,即不启用斜体效果。color=Color(theme=1):设置颜色为主题颜色,并选择第一个主题颜色。scheme="minor":指定该字体样式属于次要文本方案。charset=None:字符集。u=None:下划线样式。strike=None:删除线效果。strikethrough=None:是否有删除线。vertAlign=None:垂直对齐方式。outline=None:外框。shadow=None:阴影。condense=None:是否压缩。extend=None:延伸效果。
from openpyxl import Workbook
from openpyxl.styles import Font, PatternFill, NamedStyle, Alignment, Border# 创建一个新的Excel工作簿
wb = Workbook()# 获取第一个工作表
worksheet = wb.active# 设置单元格的值
cell_A1 = worksheet.cell(row=1, column=1, value=30)  # 设置第一行第一列的值为 30# 定义字体样式
font_style = Font(name='Arial',    # 字体名称size=12,        # 字体大小bold=True,      # 加粗italic=False,   # 斜体color='FF0000', # 字体颜色(红色)underline='single') # 下划线样式(单线)# 设置单元格的样式
cell_A1.font = font_style# 保存工作簿到指定的文件名
wb.save("execl_test.xlsx")# 关闭工作簿
wb.close()

PatternFill 

PatternFill(填充颜色):PatternFill 类允许设置单元格的填充颜色和填充样式。
PatternFill 参数:patternType=None:填充的图案类型。fgColor=Color():前景色,即填充的主要颜色。bgColor=Color():背景色,即填充的背景颜色。fill_type=None:填充类型,例如 'solid' 纯色填充。start_color=None:渐变填充的起始颜色。end_color=None:渐变填充的结束颜色。
from openpyxl import Workbook
from openpyxl.styles import Font, PatternFill, NamedStyle, Alignment, Border, Color# 创建一个新的Excel工作簿
wb = Workbook()# 获取第一个工作表
worksheet = wb.active# 设置单元格的值
cell_A1 = worksheet.cell(row=1, column=1, value=30)  # 设置第一行第一列的值为 30# 定义填充样式
pattern_fill = PatternFill(patternType='solid', fgColor=Color(rgb="00FF00"))  # 这里使用绿色作为填充颜色# 设置单元格的样式
cell_A1.fill = pattern_fill# 保存工作簿到指定的文件名
wb.save("execl_test.xlsx")# 关闭工作簿
wb.close()

Border

Border(边框):Border 类用于定义单元格的边框样式,包括边框粗细、颜色和线条样式。
Border 参数:left:左边框样式。right:右边框样式。top:顶部边框样式。bottom:底部边框样式。diagonal:对角线边框样式。diagonal_direction:对角线方向。vertical:垂直边框样式。horizontal:水平边框样式。diagonalUp:是否使用从左上到右下的对角线。diagonalDown:是否使用从左下到右上的对角线。outline:是否应用外框。start:起始边框样式。end:结束边框样式。
from openpyxl import Workbook
from openpyxl.styles import Font, PatternFill, NamedStyle, Alignment, Border, Color, Side# 创建一个新的Excel工作簿
wb = Workbook()# 获取第一个工作表
worksheet = wb.active# 设置单元格的值
cell_A1 = worksheet.cell(row=1, column=1, value=30)  # 设置第一行第一列的值为 30# 创建边框样式
thin_border = Border(left=Side(style='thin'),right=Side(style='thin'),top=Side(style='thin'),bottom=Side(style='thin'))# # 应用边框样式到单元格范围
cell_A1.border = thin_border     # 设置单元格A1的边框样式# 选定单元格范围B1:C3
cell_range = worksheet["B1:C3"]
for row in cell_range:for cell in row:cell.border = thin_border  # 设置单元格范围B1:C3的边框样式# 保存工作簿到指定的文件名
wb.save("execl_test.xlsx")# 关闭工作簿
wb.close()

Alignment

Alignment(对齐):Alignment 类允许控制单元格中内容的对齐方式,包括水平对齐(左对齐、居中、右对齐)和垂直对齐。
Alignment 参数:horizontal:文本在单元格内的水平对齐方式。vertical:文本在单元格内的垂直对齐方式。textRotation:文本旋转角度。wrapText:是否自动换行。shrinkToFit:是否缩小字体以适应。indent:文本缩进级别。relativeIndent:相对缩进级别。justifyLastLine:是否两端对齐最后一行文本。readingOrder:文本的读取顺序。text_rotation:文本旋转角度。wrap_text:是否自动换行。shrink_to_fit:是否缩小字体以适应。mergeCell:是否合并单元格内的文本。
from openpyxl import Workbook
from openpyxl.styles import Font, PatternFill, NamedStyle, Alignment, Border, Color, Side# 创建一个新的Excel工作簿
wb = Workbook()# 获取第一个工作表
worksheet = wb.active# 设置单元格的值
cell_A1 = worksheet.cell(row=1, column=1, value="This is a long text that will wrap")# 创建一个 Alignment 对象
alignment = Alignment(horizontal='center',     # 水平居中vertical='center',       # 垂直居中textRotation=45,         # 文本旋转角度wrapText=True,           # 自动换行shrinkToFit=True,        # 缩小字体以适应indent=2)                # 缩进两个字符# 将对齐样式应用于单元格 A1
cell_A1.alignment = alignment# 调整列宽和行高以适应自动换行
default_row_height = worksheet.row_dimensions[1].height
worksheet.row_dimensions[1].height = 30  # 设置行高
worksheet.column_dimensions['A'].width = 30  # 设置列宽# 保存工作簿到指定的文件名
wb.save("execl_test.xlsx")# 关闭工作簿
wb.close()

NamedStyle

NamedStyle(命名样式):NamedStyle 类用于创建自定义的命名样式,将多个单元格样式属性组合在一起。
NamedStyle 参数:name:命名样式的名称。 唯一的名称。font:字体样式,可以通过 openpyxl.styles.Font 类定义。fill:填充样式,可以通过 openpyxl.styles.PatternFill 类定义。border:边框样式,可以通过 openpyxl.styles.Border 类定义。alignment:对齐样式,可以通过 openpyxl.styles.Alignment 类定义。number_format:数字格式。protection:保护设置,可以通过 openpyxl.styles.Protection 类定义。builtinId:内置 ID。hidden:是否隐藏。xfId:扩展字段 ID
from openpyxl import Workbook
from openpyxl.styles import Font, PatternFill, NamedStyle, Alignment, Border, Color, Protection# 创建一个新的Excel工作簿
wb = Workbook()# 获取第一个工作表
worksheet = wb.active# 设置单元格的值
cell_A1 = worksheet.cell(row=1, column=1, value="This is a long text that will wrap")# 创建一个 NamedStyle 对象
normal_style = NamedStyle(name="CustomStyle",font=Font(),              # 字体样式fill=PatternFill(),       # 填充样式border=Border(),          # 边框样式alignment=Alignment(),    # 对齐样式number_format=None,       # 数字格式protection=Protection(),  # 保护设置builtinId=None,           # 内置样式 IDhidden=False,xfId=None)# 将样式应用于单元格 A1
cell_A1.style = normal_style# 保存工作簿到指定的文件名
wb.save("execl_test.xlsx")# 关闭工作簿
wb.close()

参考文档

https://openpyxl.readthedocs.io/en/stable/styles.html#/ 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/709880.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

dotnet 命令行工具解决方案 PomeloCli

目录PomeloCli 是什么为什么实现太多的工具太少的规范基于二进制拷贝分发难以为继快速开始1. 引用 PomeloCli 开发命令行应用2. 引用 PomeloCli 开发命令行插件开发命令行插件搭建私有 nuget 服务发布命令行插件3. 使用 PomeloCli 集成已发布插件安装命令行宿主集成命令行插件…

华为云CodeArts 12大安全防护机制,端到端全面保障软件供应链安全!

华为云CodeArts推出软件供应链安全解决方案,对软件作业流12个安全威胁点加对应防护机制。全球网络安全事件频发不断,企业纷纷损失惨重。2021年11月,知名logo4j漏洞波及全球多达6万款开源软件,70%以上企业受影响。2022年3月,大型加油站服务商遭到勒索软件攻击,要求其支付2…

MLOps 学习之旅「GitHub 热点速览」

又是 AI 神仙打架的一周,上周 OpenAI 发布了最新的 GPT-4o 模型,而谷歌也紧跟着开源了 Gemma 2 模型。随着 AI 大模型不断地变强,各大科技巨头正利用它们重塑自家的产品,这也让大模型算法工程师变得炙手可热,相关岗位需求正旺。 对于普通程序员来说,想要转型成为大模型算…

【博客园发文技巧】不离开编辑页面,批量添加图片链接和设置图片大小

参考文档:https://www.cnblogs.com/sanshi/p/3794796.html 起因 在博客园写文章,有时需要上传好多大图片,如果这些图片过大,则会导致页面变形。 因此有一个实际的需求,能够在博客园的编辑页面,直接批量修改所有图片的大小,然后给这些图片添加链接,以便点击时转到大图。…

video2blog 视频转图文AI小工具正式开源啦

前言 最近对一些小细节做了很多处理,但是其实还是有非常多的问题,没办法时间毕竟时间有限。为什么在这个时候开源,因为主要功能可以全部跑通了,分支暂时没开发的功能也可以通过其他的工具来替代。 这个工具开发初衷(想法来源),我之前有一篇文章有详细的说明,有兴趣的可…

组策略和bginfo

简介 很多的IT管理员都希望终端操作用户达到一个计算机脱盲的水平,但是理想很丰满,现实很骨感。人生不如事十之八九。 终端用户真的一言难尽。 简单的帮我们看一下CPU,内存,IP地址,这些基础信息,他们做不到。 好在微软发布了bginfo这个软件,BgInfo - Sysinternals | Mic…

css小三角文字平移加旋转

<view class="sanjiao"><view class="slanted-text">饿了么</view></view> /* 三角 */ .sanjiao {width: 0;height: 0;border-left: 40px solid transparent;border-right: 40px solid red;border-bottom: 40px solid transparent…

20240520刷题总结

T1(状态置换,搜索与dp, dp存值结构体) T376。 还是从搜索角度去考虑:时间,前i物品,最多拿多少。 这样我们去设计状态,我一开始设置:时间,前i,值是拿多少。会发现这样会爆。 其实换一下,优化效果更好。前i物品,最多拿j,用的最少时间。 实际转移就是背包。存值就存结构…

SAP:CX_SY_READ_SRC_LINE_TOO_LONG解决

在ABAP程序编辑器中,确保每行的字符数小于72个,将光标放到行结尾,就能在右下角能看到字符总数。 只要行字符都小于72个,dump就不会再出现了。。。。 还有一种方法就是调整一下abap editor的配置,勾上Downwards-Compatible Line Length(72)。在ABAP编辑器菜单点击“实用程序…

error The system will suspend now!

解决 rambo@test2:~$ sudo mkdir /etc/systemd/sleep.conf.d rambo@test2:~$ sudo vim /etc/systemd/sleep.conf.d/nosuspend.conf [Sleep] AllowSuspend=no AllowHibernation=no AllowSuspendThenHibernate=no AllowHybridSleep=no

Hello-FPGA Camera link Full Receiver FMC Card User Manual

Hello-FPGA info@hello-fpga.cOM Hello-FPGA Camera link Full Receiver FMC Card User Manual目录 Hello-FPGA Camera link Full Receiver FMC Card User Manual 1 Hello-FPGA Camera link Full Receiver FMC Card User Manual 3 1 Camera link 简介 3 2 Camera link FPGA FUL…