首页 > 编程语言 >PYTHON - openpyxl (四)

PYTHON - openpyxl (四)

时间:2022-12-20 12:46:33浏览次数:36  
标签:styles openpyxl PYTHON a1 sh True wb

1.1 字体Font

类型:openpyxl.styles.fonts.Font

sheet["a1"].font = Font(name='字体',size=字号, ...)
  • name 字体,中文字体前面加u
  • size 字号大小
  • bold = True / False 粗体
  • italic = True / False 斜体
  • underline = None / single / double 下划线(没有,单,双)
  • strike=True / False 删除线
  • vertAlign = None / superscript / subscript
  • color = rrggbb 颜色
from openpyxl.styles import Font

wb: Workbook = load_workbook("d:/test.xlsx", data_only=True)
sh: Worksheet = wb.active
font_object = Font(name=u'宋体', size=25, underline='single',vertAlign='superscript', color='00ff00')
sh["a1"].font = font_object
sh["a1"] = "中国"

1.2 对齐 Alignment

类型:openpyxl.styles.alignment.Alignment

sheet["a1"].alignment  = Alignment(horizontal=None, vertical=None,
                 textRotation=0, wrapText=None, ...)
  • horizontal = general / justify / right / centerContinuous / distributed / fill / center / left
    • 水平对齐方式:常规,两端对齐,右,跨列居中,分散对齐,填充,居中,靠左
  • vertical = center / top / bottom/ justify / distributed
    • 垂直对齐方式:中,上,下,两端,分散
  • textRotation = 旋转角度
  • wrapText = True / False 自动换行
  • shrink_to_fit = True / False 是否缩小字体填充
  • indent = 缩进, 在电子表格中增加缩进量,减小缩进量
from openpyxl.styles import Alignment

wb: Workbook = load_workbook("d:/test.xlsx", data_only=True)
sh: Worksheet = wb.active
align = Alignment(horizontal='right')
sh["a1"] = "中国"
sh["a1"].alignment = align

1.3 边框:Side, Border

类型:

  • openpyxl.styles.borders.Side
  • openpyxl.styles.borders.Border
Side(style=线条样式, color=边线颜色)

线条样式:slantDashDot、dashDotDot、dotted、double、dashed、thick、medium、mediumDashDotDot、thin、dashDot、hair、mediumDashDot、mediumDashed

sheet["a1"].border = Border(left=Side, right=Side, top=Side, bottom=Side)

定义,上下左右边框的样式

from openpyxl.styles import Side, Border

from openpyxl.workbook import Workbook
from openpyxl.worksheet.worksheet import Worksheet

wb: Workbook = load_workbook("d:/test.xlsx", data_only=True)
sh: Worksheet = wb.active
sh["a1"] = "中国"
side1 = Side(style='thin', color='ff0000')
side2 = Side(style='double', color='00ff00')
border = Border(left=side1, top=side2, bottom=side2, right=side1)
for row in sh["a1:b5"]:
    for col in row:
        col.border = border

1.4 填充 PatternFill

用于填充纯色和图案

类型:openpyxl.styles.fills.PatternFill

sheet["a1"].fill = PatternFill(fill_type=填充类型, start_color=前景色, end_color=背景色)

填充类型:

  • None, 不填充
  • solid, 实心
  • darkGray, 75%灰
  • mediumGray, 50%灰
  • lightGray, 25%灰
  • gray125, 12.5%灰
  • gray0625, 6.25%灰
  • darkHorizontal,水平条纹
  • darkVertical, 垂直条纹
  • darkDown, 逆对角线条纹
  • darkUp, 对角线条纹
  • darkGrid, 对角线剖面线
  • darkTrellis, 粗对角线剖面线
  • lightHorizontal , 细水平条纹
  • lightVertical , 细垂直条纹
  • lightDown, 细逆对角线条纹
  • lightUp, 细对角线条纹
  • lightGrid, 细水平剖面线
  • lightTrellis, 细对角线剖面线
from openpyxl.styles importPatternFill

wb: Workbook = load_workbook("d:/test.xlsx", data_only=True)
sh: Worksheet = wb.active
p = PatternFill(fill_type='lightTrellis', start_color='ff0000')
for item in sh["a1:b5"]:
    for cell in item:
        cell.fill = p

wb.save("1.xlsx")

对于前景色和背景色:

  • 对于纯色:用前景色绘制

  • 对于图案:用前景色绘制,如果指定背景色,则在背景色块上绘制图案。

1.5 锁定单元格和隐藏公式

类型: openpyxl.styles.protection.Protection

cell.protection = Protection(locked=True, hidden=False)
  • locked = True / False 是否锁定
  • hidden = True / False 是否隐藏公式

注意:只有在保护工作表的时候才有效。

1.6 行高和列宽

sh.row_dimensions[行].height = 200
sh.column_dimensions[列].width = 100
  • 行用数字表示
  • 列用字母表示
wb: Workbook = load_workbook("d:/test.xlsx", data_only=True)
sh: Worksheet = wb.active
sh.row_dimensions[1].height = 30
sh.column_dimensions["b"].width = 50

1.7 自定义样式

可以定义多个样式对象,之后添加到工作簿中,用到的时候赋值即可。

类型:class openpyxl.styles.named_styles.NamedStyle

NamedStyle(self,
             name="Normal",
             font=Font(),
             fill=PatternFill(),
             border=Border(),
             alignment=Alignment(),
             number_format=None,
             protection=Protection(),
             builtinId=None,
             hidden=False,
             xfId=None,
            ):
  • name是起一个名字
  • 其它参加可以设置样式

wb: Workbook = load_workbook("d:/test.xlsx", data_only=True)
sh: Worksheet = wb.active

# 定义两个样式
a = NamedStyle("title", font=Font(name=u'黑体', size=14, bold=True, color='ff0000'))
b = NamedStyle("normal", font=Font(name=u'宋体', size=12, bold=False))

# 添加样式到工作簿
wb.add_named_style(a)
wb.add_named_style(b)

# 标题(第一行)应用样式
for cell in sh[1]:
    cell.style = "title"

# 正文(其它行)应用样式
rows = sh.rows
next(rows)
for row in rows:
    for cell in row:
        cell.style = "normal"

标签:styles,openpyxl,PYTHON,a1,sh,True,wb
From: https://www.cnblogs.com/three-sheep/p/16993934.html

相关文章

  • 用Python写一个一次性计算出加减乘除的运算小程序
    0x1前言跟上一个购物车一样的玩法,也都挺简单的,看标题意思就懂了,不做多介绍了0x2加减乘除的运算小程序importre#处理字符串中的符号defsign_exp(strvar):s......
  • python的time模块功能详解
    >>>importtime>>>dir(time)['__doc__','__name__','__package__','accept2dyear','altzone','asctime','clock','ctime','daylight','gmtime......
  • Python实现点阵字体读取与转换
    点阵字体是指根据文字的像素点来显示的字体,效果如下:使用Python读取并显示的过程如下: 根据中文字符获取GB2312编码通过GB2312编码计算该汉字在点阵字库中的区位和码位通过区......
  • 再谈Python多线程--避免GIL对性能的影响
    在Python中使用多线程,如果你对GIL本身没有一定的了解;那么很有可能你只是写出了正确的多线程代码,而并没有达到多线程的目的,甚至截然相反的效果。下面介绍了Python中GIL的作用......
  • Linux下安装python+appium+android(附带各种错误解决办法)
    文章目录​​安装AndroidSDK​​​​安装nodejs、NPM、cnpm​​​​安装Appium​​​​安装Python和基础库​​​​设置WIFI连接及调试​​​​引用​​​​安装错误解决​......
  • Python单元测试报告框架PyTestReport
    文章目录开局一张图安装通过pip安装通过安装包通过源码(最新版本)使用单元测试使用样例附录​​原文链接​​如果你是Java栈的同学,那么你可能知道extentreport测试报告框架。......
  • Python面试常见算法题集锦(递归部分)
    0x1前言开始学习python基础的时候,有以下几种算法是面试中常见的,也是前期学习python的时候可以连带学习了解的,不卡门槛哟0x2实现算法的方式很多种,而算法的实现也是分程......
  • python2.X编码问题梳理
    首先这些问题只有在python2.X版本出现,因为3.X版本中python环境就只有unicode类型的字符串了,即所有程序中处理的都会自动转换成unicode字符串。那么2.X......
  • python抓网页资源小脚本
    #!/usr/bin/envpython#coding:utf-8importurllibdeffilter_src(file_name):resource_list=[]f_obj=open(file_name)forf_lineinf_obj:if'......
  • python中的编解码攻略
    正如其他语言一样,在Python的世界里也有有字符的编解码问题;有的在命令行回显时出现,有的在读取文件时出现,有的在执行命令时出现,有的在读取数据库时出现,不尽相同。注:如未特别申......