Flet自动化创建报表模板自动填充数据生成上报报表自定义框架模板
一、效果图截图
二、应用场景介绍
该应用是一个基于 Flet 和 OpenPyXL 的自动化报表生成工具,主要用于创建和管理销售报表。具体应用场景包括:
报表模板创建:
- 用户可以选择不同的报表模板创建脚本,这些脚本会根据预定义的格式生成 Excel 报表模板。
- 目前支持三种不同样式的销售报表模板:
销售报表1
、销售报表2
和销售报表3
。
数据填充与保存:
- 用户可以选择已经创建的报表模板,并填充实际的销售数据。
- 填充后的报表将被保存为新的 Excel 文件,方便用户进一步处理或上报。
数据清除:
- 用户可以清除报表中的数据,生成空白的报表模板,以便重新填充或存档。
三、特色说明
用户友好的界面:
- 使用 Flet 框架构建了一个简洁且直观的用户界面,用户可以通过下拉菜单选择报表模板,点击按钮进行操作。
- 界面中包含多个按钮,每个按钮都有明确的功能标识,如创建模板、选择模板、填充数据和清除数据。
多种报表模板:
- 提供了三种不同样式的销售报表模板,每种模板都有独特的颜色和样式设置,满足不同用户的需求。
- 每个模板的创建逻辑都封装在单独的 Python 脚本中,便于维护和扩展。
数据管理和操作:
- 支持从本地文件系统选择报表模板文件,确保用户可以灵活地管理和使用已有的报表。
- 提供了数据填充和清除功能,用户可以根据需要对报表进行修改和保存。
样式和格式化:
- 使用 OpenPyXL 库对 Excel 文件进行详细的样式设置,包括合并单元格、设置字体、背景色、边框等,确保生成的报表具有专业和美观的外观。
自动化和高效:
- 通过自动化脚本,用户可以快速生成和管理报表,减少了手动操作的时间和错误率。
- 所有操作都在一个统一的界面上完成,提高了工作效率。
四、Flet 和 OpenPyXL结合总结
该应用通过结合 Flet 和 OpenPyXL,提供了一个强大而灵活的报表生成工具,适用于需要频繁创建和管理销售报表的业务场景。用户可以通过简单的界面操作,轻松实现报表的创建、数据填充和管理,大大提升了工作效率和报表的专业度。
五、Workbook 的作用
在 create_sales_report_template3.py
中,Workbook
是 OpenPyXL 库中的一个核心类,用于创建和管理 Excel 工作簿。以下是 Workbook
的主要作用:
创建工作簿:
Workbook()
构造函数用于创建一个新的 Excel 工作簿对象。wb = Workbook()
管理工作表:
Workbook
对象可以添加、删除和管理多个工作表(Sheet)。- 默认情况下,创建一个新的
Workbook
时会自动包含一个名为 “Sheet” 的工作表。 - 可以通过
wb.active
获取当前活动的工作表。 ws = wb.active
设置工作表名称:
- 可以通过
ws.title
属性设置工作表的名称。 ws.title = "销售报表3"
- 可以通过
写入数据:
- 通过
ws.cell(row, column, value)
方法可以在指定的单元格中写入数据。 ws.cell(row=2, column=1, value="产品名称")
- 通过
样式设置:
Workbook
对象及其关联的工作表可以设置各种单元格样式,如字体、背景色、对齐方式等。title_cell = ws['A1'] title_cell.alignment = Alignment(horizontal='center', vertical='center') title_cell.font = Font(bold=True, size=16, color="FFFFFF") title_cell.fill = PatternFill(start_color="70AD47", end_color="70AD47", fill_type="solid")
保存工作簿:
- 最后,通过
wb.save(filename)
方法将工作簿保存为一个 Excel 文件。 wb.save("sales_report_template3.xlsx")
- 最后,通过
六、Workbook示例代码解析
在 create_sales_report_template3.py
中,Workbook
的具体使用如下:
def create_sales_report_template3():
# 创建一个新的工作簿
wb = Workbook()
ws = wb.active
# 设置工作表名称
ws.title = "销售报表3"
# 添加标题
ws['A1'] = "销售报表3"
# 合并单元格以居中显示标题
ws.merge_cells('A1:F1')
# 设置标题样式(可选)
title_cell = ws['A1']
title_cell.alignment = Alignment(horizontal='center', vertical='center')
title_cell.font = Font(bold=True, size=16, color="FFFFFF")
title_cell.fill = PatternFill(start_color="70AD47", end_color="70AD47", fill_type="solid")
# 添加列标题
headers = ["产品名称", "数量", "单价", "折扣", "税额", "总价"]
for col_num, header in enumerate(headers, start=1):
ws.cell(row=2, column=col_num, value=header)
# 设置列标题样式(可选)
for row in ws["2:2"]:
row.font = Font(bold=True, color="FFFFFF")
row.fill = PatternFill(start_color="4F8A3D", end_color="4F8A3D", fill_type="solid")
row.border = Border(bottom=Side(style='thin'))
# 设置列宽
ws.column_dimensions['A'].width = 20
ws.column_dimensions['B'].width = 10
ws.column_dimensions['C'].width = 10
ws.column_dimensions['D'].width = 10
ws.column_dimensions['E'].width = 10
ws.column_dimensions['F'].width = 10
# 保存工作簿
wb.save("sales_report_template3.xlsx")
七、Workbook角色总结
Workbook
在 OpenPyXL 中扮演着核心角色,它不仅用于创建工作簿,还负责管理其中的工作表、写入数据、设置样式以及最终保存文件。通过 Workbook
,可以高效地生成和管理复杂的 Excel 报表。
八、源码下载地址
https://download.csdn.net/download/jackchuanqi/91676482