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的单元格标记为红色。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/5049.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【HTML】

1.html 语义化 提高可读性:对于开发者来说,语义化的HTML代码更容易阅读和理解。因为每个标签都有其特定的含义和用途,所以看到标签就能大致了解该部分内容的结构和作用。有利于搜索引擎优化(SEO):对于搜索…

GoF之工厂模式

GoF之工厂模式 文章目录 GoF之工厂模式每博一文案1. 简单说明“23种设计模式”1.2 介绍工厂模式的三种形态1.3 简单工厂模式(静态工厂模式)1.3.1 简单工厂模式的优缺点: 1.4 工厂方法模式1.4.1 工厂方法模式的优缺点: 1.5 抽象工厂模式1.6 抽象工厂模式的…

Apache Seata基于改良版雪花算法的分布式UUID生成器分析2

title: 关于新版雪花算法的答疑 author: selfishlover keywords: [Seata, snowflake, UUID, page split] date: 2021/06/21 本文来自 Apache Seata官方文档,欢迎访问官网,查看更多深度文章。 关于新版雪花算法的答疑 在上一篇关于新版雪花算法的解析中…

C++初阶学习第四弹——类与对象(中)——刨析类与对象的核心点

类与对象(上):C初阶学习第三弹——类与对象(上)——初始类与对象-CSDN博客 前言: 在前面文章中,我们已经讲了类与对象的思想和类与对象的一些基本操作,接下来这篇文章我们将讲解以下…

探索Jellyfin:支持Android的自由开源的媒体服务器平台

探索Jellyfin:支持Android的自由开源的媒体服务器平台 I. 简介 A. 什么是Jellyfin? Jellyfin是一个自由开源的媒体服务器平台,旨在让用户能够自主管理和流式传输他们的媒体内容。与许多闭源的商业媒体服务器解决方案不同,Jelly…

Matlab各个版本介绍、区别分析及推荐

MATLAB,由美国MathWorks公司出品,是一款广泛应用的商业数学软件。自其诞生之初,MATLAB便以其强大的矩阵计算能力、灵活的编程环境以及广泛的应用领域,赢得了全球科研工作者和工程师的青睐。本文将详细介绍MATLAB的各个版本&#x…

ubuntu neo4j 下载与配置(一)

neo4j 官方下载页面 https://neo4j.com/deployment-center/#community 进入页面之后,往下滑 咱们在下载neo4j时,官方可能要咱们填写一下个人信息,比如:姓名组织结构邮箱等: 咱们可以观察一下,ne4j的下载链…

uniapp0基础编写安卓原生插件和调用第三方jar包和编写语音播报插件之编写语音播放安卓插件

前言 如果你不会编写安卓插件,你可以先看看我之前零基础的文章(uniapp0基础编写安卓原生插件和调用第三方jar包和编写语音播报插件之零基础编写安卓插件), 我们使用android.speech.tts.TextToSpeech进行编写语言播放插件 开始 uniapp <template><view style=&q…

烟雾识别图像处理方法详解---豌豆云

本文详细介绍了烟雾识别图像处理方法的原理、流程和应用场景&#xff0c;帮助读者理解并掌握这一技术&#xff0c;为实际应用提供指导。 随着科技的不断发展&#xff0c;图像处理技术在各个领域得到了广泛应用。 其中&#xff0c;烟雾识别图像处理方法作为一种重要的技术手段…

如何下载钉钉群直播回放:完整步骤解析

在当今快节奏的商业和教育环境中&#xff0c;钉钉群直播已经成为了沟通和学习的重要工具。直播结束后&#xff0c;很多观众都希望回顾内容&#xff0c;但却不知如何开始。如果你错过了实时直播&#xff0c;或者只是想再次观看精彩的演讲和讨论&#xff0c;那么下载钉钉群直播回…

基于ESP32—CAM物联网WIFI小车

一.功能概述 摄像头的画面可以实时的传输到&#xff0c;点灯科技APP的手机端&#xff0c;这样可以实时查看周围环境的状况&#xff0c;灯光不足&#xff0c;画面不清晰时可以打开灯光照明。手机端有左转、右转、前进、后退、停止的按钮。可以根据自己需要&#xff0c;来控制小车…

GitHub Copilot申请和使用

GitHub Copilot申请和使用 文章目录 前言一、申请二、使用总结 前言 之前已经成功进行了Github学生认证&#xff0c;今天邮件通知之前的学生认证已经通过。那么就去进行GitHub Copilot申请和使用。 前面准备&#xff1a;Github学生认证 一、申请 进入github的settings&#x…

git branch与tag操作

1 git新建本地分支并推送到远程 新建本地分支&#xff0c;并切换到新分支上 git checkout -b 新分支名新建一个远程分支&#xff0c;名字一样 git push origin 新分支名:新分支名将本地分支和远程分支合并关联 git push --set-upstream origin 新分支名2 使用Git添加Tag 2…

Eclipse:-Dmaven.multiModuleProjectDirectory system propery is not set.

eclipse中使用maven插件的时候&#xff0c;运行run as maven build的时候报错 -Dmaven.multiModuleProjectDirectory system propery is not set. Check $M2_HOME environment variable and mvn script match. 可以设一个环境变量M2_HOME指向你的maven安装目录 M2_HOMED:\Apps\…

Deckset for Mac激活版:MD文档转幻灯片软件

Deckset for Mac是一款专为Mac用户打造的Markdown文档转幻灯片软件。它凭借简洁直观的界面和强大的功能&#xff0c;成为许多用户的心头好。 Deckset for Mac激活版下载 Deckset支持Markdown语法&#xff0c;让用户在编辑文档时无需分心于复杂的格式设置&#xff0c;只需专注于…

【Jenkins】持续集成与交付 (九):Maven安装和配置、以及构建项目

🟣【Jenkins】持续集成与交付 (九):Maven安装和配置、以及构建项目 一、Maven简介二、持续集成环境安装Maven2.1 Maven软件包上传2.2 配置环境变量2.3 Jenkins配置关联JDK和Maven2.4 添加Jenkins全局变量2.5 修改Maven的settings.xml2.6 全局工具配置--设置自己的setting.…

【docker 】Windows10安装 Docker

安装 Hyper-V Hyper-V 是微软开发的虚拟机&#xff0c;仅适用于 Windows 10。 按键&#xff1a; win键X &#xff0c;选着程序和功能 在查找设置中输入&#xff1a;启用或关闭Windows功能 选中Hyper-V 点击确定 安装 Docker Desktop for Windows Docker Desktop 官方下载…

2024年 Java 面试八股文——Redis篇

目录 1、介绍下Redis Redis有哪些数据类型 难度系数&#xff1a;⭐ 2、Redis提供了哪几种持久化方式 难度系数&#xff1a;⭐ 3、Redis为什么快 难度系数&#xff1a;⭐ 4、Redis为什么是单线程的 难度系数&#xff1a;⭐ 5、Redis服务器的的内存是多大…

pkpmbs 建设工程质量监督系统 Ajax_operaFile.aspx 文件读取漏洞复现

0x01 产品简介 pkpmbs 建设工程质量监督系统是湖南建研信息技术股份有限公司一个与工程质量检测管理系统相结合的,B/S架构的检测信息监管系统。 0x02 漏洞概述 pkpmbs 建设工程质量监督系统 Ajax_operaFile.aspx接口处存在文件读取漏洞,未经身份认证的攻击者可以利用漏洞读…

RSA实现中弱密钥漏洞分析

RSA实现中弱密钥漏洞分析 “Analyzing Weak Key Vulnerabilities in RSA Implementation” 完整下载链接:RSA实现中弱密钥漏洞分析 文章目录 RSA实现中弱密钥漏洞分析摘要第一章 引言1.1 研究背景1.2 研究目的1.3 研究意义 第二章 RSA算法基础2.1 RSA算法原理2.2 RSA密钥生成…