实际生活中,咱们可以通过软件来操作单元格中的内容的样式包括:字体、颜色等,也可以对列或者行进行合并操作,还可以添加公式以及调整行高和列的宽度。同样的,这些操作 openpyxl 也可以实现。
用表格展示数据的时候,有的时候我们可能需要对不同的数据以不同的风格进行展示从而达到分区或者强调的作用。
如果想要自定义单元格的风格,需要从 openpyxl.styles 模块中导入相应的类:
import openpyxl
from openpyxl.styles import Font, PatternFill, Border, Side, Alignment
# 1.打开工作簿
wb = openpyxl.load_workbook('files/school.xlsx')
sheet = wb.active
# 2.设置单元格字体样式
"""
Font(
name=None, # 字体名,可以用字体名字的字符串
strike=None, # 删除线,True/False
color=None, # 文字颜色
size=None, # 字号
bold=None, # 加粗, True/False
italic=None, # 倾斜,Tue/False
underline=None # 下划线, 'singleAccounting', 'double', 'single', 'doubleAccounting'
)
"""
# 1) 创建字体对象
font1 = Font(
size=20,
italic=True,
color='ff0000',
bold=True,
strike=True
)
# 2) 设置指定单元格的字体
# 单元格对象.font = 字体对象
sheet['B2'].font = font1
# 3. 设置单元格填充样式
"""
PatternFill(
fill_type=None, # 设置填充样式: 'darkGrid', 'darkTrellis', 'darkHorizontal', 'darkGray', 'lightDown', 'lightGray', 'solid', 'lightGrid', 'gray125', 'lightHorizontal', 'lightTrellis', 'darkDown', 'mediumGray', 'gray0625', 'darkUp', 'darkVertical', 'lightVertical', 'lightUp'
start_color=None # 设置填充颜色
)
"""
# 1) 设置填充对象
fill = PatternFill(
fill_type='solid',
start_color='ffff00'
)
# 2)设置单元格的填充样式
# 单元格对象.fill = 填充对象
sheet['B2'].fill = fill
# 4. 设置单元格对齐样式
# 1)创建对象
al = Alignment(
horizontal='right', # 水平方向:center, left, right
vertical='top' # 垂直方向: center, top, bottom
)
# 2) 设置单元格的对齐方式
sheet['B2'].alignment = al
# 5. 设置边框样式
# 1)设置边对象(四个边的边可以是一样的也可以不同,如果不同就创建对个Side对象)
side = Side(border_style='thin', color='0000ff')
# 2) 设置边框对象
# 这儿的left、right、top、bottom表示的是边框的四个边,这儿四个边使用的是一个边对象
bd = Border(left=side, right=side, top=side, bottom=side)
# 3)设置单元格的边框
sheet['B2'].border = bd
# 6.设置单元格的宽度和高度
# 设置指定列的宽度
sheet.column_dimensions['A'].width = 20
# 设置指定行的高度
sheet.row_dimensions[1].height = 45
# 7. 保存
wb.save('files/school.xlsx')