Python使用设计模式中的建筑模式将数据写入Excel且满足条件内容标红

本文主要是介绍Python使用设计模式中的建筑模式将数据写入Excel且满足条件内容标红,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

对于这个任务,适合使用"Builder"设计模式。Builder模式的主要目的是将对象的构建与其表示分离,以便相同的构建过程可以创建不同的表示。在这个情况下,我们需要一个构建器来逐行构建Excel表格,并根据给定的数据添加相应的统计结果。

下面是一个简单的示例,展示了如何使用Builder模式来实现这个功能:


import pandas as pd# 定义构建器类
class ExcelBuilder:def __init__(self, headers):self.headers = headersself.result_df = pd.DataFrame(columns=headers) # 定位DataFrame中下一个可用的行def add_row(self, data):self.result_df.loc[len(self.result_df)] = datadef export_excel(self, filename):excel_writer = pd.ExcelWriter(filename, engine='xlsxwriter')self.result_df.to_excel(excel_writer, index=False, sheet_name='Sheet1')# 获取工作簿和工作表对象workbook = excel_writer.bookworksheet = excel_writer.sheets['Sheet1']# 添加条件格式:将值大于25的单元格标红red_format = workbook.add_format({'bg_color': '#FFC7CE', 'font_color': '#9C0006'})worksheet.conditional_format('B2:D1000', {'type': 'cell', 'criteria': '>', 'value': 25, 'format': red_format})# excel_writer.save()excel_writer.close()print("Excel表格已生成")# 使用构建器来构建Excel表格
headers = ['类别', '结果1', '结果2', '结果3']
excel_builder = ExcelBuilder(headers)# 假设这是你的统计结果,以列表形式存储
statistics = [['A', 10, 20, 30],['B', 15, 25, 35],['C', 20, 30, 40],['D', 20, 30, "4a"]
]# 逐行添加统计结果
for row in statistics:excel_builder.add_row(row)# 导出Excel表格
excel_builder.export_excel('统计结果.xlsx')

运行结果

在这个示例中,我们首先定义了一个`ExcelBuilder`类,用于构建Excel表格。该类有三个方法:`__init__`用于初始化构建器,`add_row`用于逐行添加统计结果,`export_excel`用于将构建好的Excel表格导出到文件中。然后,我们使用构建器来创建Excel表格并逐行添加统计结果,最后导出到文件中。

self.result_df = pd.DataFrame(columns=headers)这行代码是用于将数据逐行添加到DataFrame中的。让我一步一步解释:
  1. self.result_df 是一个DataFrame对象,它存储着我们的统计结果数据。

  2. len(self.result_df) 返回DataFrame中已有的行数。

  3. self.result_df.loc[len(self.result_df)] 是用来定位DataFrame中下一个可用的行,并将数据添加到这一行中。

  4. = data 则是将data变量中的数据赋值给这一行,这样就完成了一行数据的添加操作。

综合起来,这行代码的作用是将数据逐行添加到DataFrame中的下一个可用行中。

worksheet.conditional_format('B2:D1000', {'type': 'cell', 'criteria': '>', 'value': 25, 'format': red_format})这行代码是用来设置 Excel 工作表中的条件格式的。让我解释一下参数的含义:
  • 'B2:D1000':这是条件格式应用的范围。它指定了要应用条件格式的单元格范围,从 B2 到 D1000。
  • {'type': 'cell', 'criteria': '>', 'value': 25, 'format': red_format}:这是条件格式的规则。具体含义如下:
    • 'type': 'cell':指定条件格式的类型为单元格。
    • 'criteria': '>':指定条件为大于。这意味着我们希望对满足大于某个值的单元格应用条件格式。
    • 'value': 25:这是条件的值。在本例中,条件是大于25的单元格将被标红。
    • 'format': red_format:这是应用的格式。red_format 是之前定义的红色格式,它指定了标红的背景色和字体颜色。

因此,这行代码的作用是将范围内数值大于25的单元格标记为红色。

这篇关于Python使用设计模式中的建筑模式将数据写入Excel且满足条件内容标红的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/948511

相关文章

使用Python将JSON,XML和YAML数据写入Excel文件

《使用Python将JSON,XML和YAML数据写入Excel文件》JSON、XML和YAML作为主流结构化数据格式,因其层次化表达能力和跨平台兼容性,已成为系统间数据交换的通用载体,本文将介绍如何... 目录如何使用python写入数据到Excel工作表用Python导入jsON数据到Excel工作表用

Mysql如何将数据按照年月分组的统计

《Mysql如何将数据按照年月分组的统计》:本文主要介绍Mysql如何将数据按照年月分组的统计方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录mysql将数据按照年月分组的统计要的效果方案总结Mysql将数据按照年月分组的统计要的效果方案① 使用 DA

鸿蒙中Axios数据请求的封装和配置方法

《鸿蒙中Axios数据请求的封装和配置方法》:本文主要介绍鸿蒙中Axios数据请求的封装和配置方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1.配置权限 应用级权限和系统级权限2.配置网络请求的代码3.下载在Entry中 下载AxIOS4.封装Htt

鸿蒙中@State的原理使用详解(HarmonyOS 5)

《鸿蒙中@State的原理使用详解(HarmonyOS5)》@State是HarmonyOSArkTS框架中用于管理组件状态的核心装饰器,其核心作用是实现数据驱动UI的响应式编程模式,本文给大家介绍... 目录一、@State在鸿蒙中是做什么的?二、@Spythontate的基本原理1. 依赖关系的收集2.

Python基础语法中defaultdict的使用小结

《Python基础语法中defaultdict的使用小结》Python的defaultdict是collections模块中提供的一种特殊的字典类型,它与普通的字典(dict)有着相似的功能,本文主要... 目录示例1示例2python的defaultdict是collections模块中提供的一种特殊的字

利用Python快速搭建Markdown笔记发布系统

《利用Python快速搭建Markdown笔记发布系统》这篇文章主要为大家详细介绍了使用Python生态的成熟工具,在30分钟内搭建一个支持Markdown渲染、分类标签、全文搜索的私有化知识发布系统... 目录引言:为什么要自建知识博客一、技术选型:极简主义开发栈二、系统架构设计三、核心代码实现(分步解析

基于Python实现高效PPT转图片工具

《基于Python实现高效PPT转图片工具》在日常工作中,PPT是我们常用的演示工具,但有时候我们需要将PPT的内容提取为图片格式以便于展示或保存,所以本文将用Python实现PPT转PNG工具,希望... 目录1. 概述2. 功能使用2.1 安装依赖2.2 使用步骤2.3 代码实现2.4 GUI界面3.效

Python获取C++中返回的char*字段的两种思路

《Python获取C++中返回的char*字段的两种思路》有时候需要获取C++函数中返回来的不定长的char*字符串,本文小编为大家找到了两种解决问题的思路,感兴趣的小伙伴可以跟随小编一起学习一下... 有时候需要获取C++函数中返回来的不定长的char*字符串,目前我找到两种解决问题的思路,具体实现如下:

C++ Sort函数使用场景分析

《C++Sort函数使用场景分析》sort函数是algorithm库下的一个函数,sort函数是不稳定的,即大小相同的元素在排序后相对顺序可能发生改变,如果某些场景需要保持相同元素间的相对顺序,可使... 目录C++ Sort函数详解一、sort函数调用的两种方式二、sort函数使用场景三、sort函数排序

python连接本地SQL server详细图文教程

《python连接本地SQLserver详细图文教程》在数据分析领域,经常需要从数据库中获取数据进行分析和处理,下面:本文主要介绍python连接本地SQLserver的相关资料,文中通过代码... 目录一.设置本地账号1.新建用户2.开启双重验证3,开启TCP/IP本地服务二js.python连接实例1.