使用Python中的merge_styles()函数创建漂亮的报表样式
发布时间:2024-01-01 05:45:53
在Python中,我们可以使用openpyxl库来操作Excel文件,并通过merge_styles()函数创建漂亮的报表样式。
首先,我们需要安装openpyxl库。可以使用以下命令来安装:
pip install openpyxl
接下来,我们可以使用以下代码创建一个简单的Excel表格,并使用merge_styles()函数来创建漂亮的报表样式:
from openpyxl import Workbook
from openpyxl.styles import PatternFill, Border, Side, Alignment, Font
# 创建一个Workbook对象
wb = Workbook()
# 获取默认的活动的Sheet表格
ws = wb.active
# 设置报表标题
ws.merge_cells('A1:E1')
header_cell = ws['A1']
header_cell.value = '报表标题'
# 设置标题样式
header_font = Font(name='Arial', size=16, bold=True, color='FFFFFF')
header_fill = PatternFill(fill_type='solid', fgColor='008000')
header_border = Border(left=Side(border_style='medium', color='000000'),
right=Side(border_style='medium', color='000000'),
top=Side(border_style='medium', color='000000'),
bottom=Side(border_style='medium', color='000000'))
header_alignment = Alignment(horizontal='center', vertical='center')
header_cell.font = header_font
header_cell.fill = header_fill
header_cell.border = header_border
header_cell.alignment = header_alignment
# 设置表格头部
header_row = ['ID', '姓名', '年龄', '性别', '成绩']
ws.append(header_row)
# 设置表格头部样式
header_row_font = Font(name='Arial', size=12, bold=True, color='FFFFFF')
header_row_fill = PatternFill(fill_type='solid', fgColor='008000')
header_row_border = Border(left=Side(border_style='medium', color='000000'),
right=Side(border_style='medium', color='000000'),
top=Side(border_style='medium', color='000000'),
bottom=Side(border_style='medium', color='000000'))
header_row_alignment = Alignment(horizontal='center', vertical='center')
for cell in ws[2]:
cell.font = header_row_font
cell.fill = header_row_fill
cell.border = header_row_border
cell.alignment = header_row_alignment
# 填充数据
data_rows = [
[1, '小明', 18, '男', 90],
[2, '小红', 17, '女', 95],
[3, '小华', 19, '男', 88],
[4, '小李', 20, '男', 92],
[5, '小丽', 18, '女', 97]
]
for row in data_rows:
ws.append(row)
# 设置数据样式
data_font = Font(name='Arial', size=12)
data_border = Border(left=Side(border_style='thin', color='000000'),
right=Side(border_style='thin', color='000000'),
top=Side(border_style='thin', color='000000'),
bottom=Side(border_style='thin', color='000000'))
data_alignment = Alignment(horizontal='center', vertical='center')
for row in ws[3:8]:
for cell in row:
cell.font = data_font
cell.border = data_border
cell.alignment = data_alignment
# 保存Excel文件
wb.save('report.xlsx')
在上面的代码中,我们首先使用Workbook()函数创建了一个Workbook对象,并用active属性获取默认的活动Sheet表格。然后,我们使用merge_cells()函数将标题单元格(A1:E1)合并,并将报表标题赋值给合并后的单元格。接下来,我们定义了标题样式,包括字体、填充、边框和对齐方式,并将这些样式应用到标题单元格上。
然后,我们设置了表格的表头,并定义了表头样式。对于表头样式,我们使用了与标题样式相似的定义,并遍历表头行的每个单元格,在每个单元格上应用表头样式。
接下来,我们将数据填充到表格中,并设置了数据样式。对于数据样式,我们设置了字体、边框和对齐方式,并遍历数据行的每个单元格,在每个单元格上应用数据样式。
最后,我们使用save()函数保存Excel文件,并命名为"report.xlsx"。
运行以上代码后,将会在当前的工作目录下生成一个名为"report.xlsx"的Excel文件。在Excel文件中,将会看到一个带有漂亮报表样式的表格,包括标题、表头和数据。
总结起来,使用openpyxl库的merge_styles()函数可以轻松地创建漂亮的报表样式。我们可以通过设置字体、填充、边框和对齐方式等来定制化自己想要的报表样式,从而使报表更加美观和易读。
