openpyxl给excel设置条件格式
设置渐变色
我的项目是,将excel表中,数据按照大小来上色。
对于表的格式,一共21列,13行,其中,第一列是模型名,第一行是指标名,因此,这部分内容不参与评估。
此外,一般的指标,数值越大,颜色越是浅,数值越小,颜色越是深蓝;对于一些指标越小越好的数据列(指标名中有small
),则正好相反。
参考链接:
给excel一列设置条件格式:可以看颜色代码的网站,
官方文档:有条件的 格式化
设置两色渐变
效果图如下:
代码:
def set_condition_format():import openpyxlfrom openpyxl.formatting.rule import ColorScaleRulefile_name = "C:/Users/Dell/Documents/PythonFiles/forTESTonly/2sel/base/changeDB1123.xlsx"wb = openpyxl.load_workbook(file_name)for ws in wb:for c in range(20): # 一共有21列,其中,第一列不比较BT = chr(ord("B") + c) if "small" in ws[f"{BT}1"].value: # 判断列名,若是越小越好b, w = 'fefff9', '00046a' # 依次是浅白,深蓝else:b, w = '00046a','fefff9'ws.conditional_formatting.add(f'{BT}2:{BT}13',ColorScaleRule(start_type='max', start_color=b,end_type='min', end_color=w))wb.save(file_name)
set_condition_format()
设置三色渐变
这里设置最佳指标为深绿色,最差指标为红色,效果图:
代码:
# 给数据一列设置单元格样式,这个是设置3色渐变
def set_condition_format():import openpyxlfrom openpyxl.formatting.rule import ColorScaleRule# file_name = "C:/Users/Dell/Documents/PythonFiles/forTESTonly/2sel/base/new_xlsx/changeDB318.xlsx"file_name = "C:/Users/Dell/Documents/PythonFiles/forTESTonly/2sel/base/new_xlsx/changeDB1123.xlsx"wb = openpyxl.load_workbook(file_name)for ws in wb:for c in range(20): # 一共有21列,其中,第一列不比较BT = chr(ord("B") + c)if "small" in ws[f"{BT}1"].value: # 判断列名,若是越小越好big, small = '27a500' ,'ff564e' # 小的是绿色else:big, small = 'ff564e' , '27a500' # 大的是绿色ws.conditional_formatting.add(f'{BT}2:{BT}13',ColorScaleRule(start_type='max', start_color=big,mid_type='percentile', mid_value=50, mid_color = 'FFFFFF',end_type='min', end_color=small))wb.save(file_name)
set_condition_format()
试一下,如果把19行改为:
mid_type='percentile', mid_value=80, mid_color = 'FFFFFF',
上面的出现一点异常,即E
列,出现了大量绿色。纠结了一个小时后,发现这是因为,80%*BiggestNum
被设置成了绿色。即这里的阈值,限制的是,数的大小的基准,而不是会自动倒过来,将大的80%设置为新基准。如果要生成跟其他一样的效果,这一行应该设成20%。
修改列高,列宽
参考文章:Python使用OpenPyXl设置Excel表格中的单元格大小(行高和列宽),用openpyxl把各个Sheet另存为单独的Excel
原图和效果图
以下分别是原图和效果图:
代码,直接可运行:
from openpyxl import load_workbook
from openpyxl.utils import get_column_letter
def setSHEEThw(ws,width,height):for i in range(1, ws.max_row + 1):ws.row_dimensions[i].height = heightfor i in range(1, ws.max_column + 1):ws.column_dimensions[get_column_letter(i)].width = widthdef setHeightWidth(path,width,height):wb = load_workbook(path)sheetnames = wb.sheetnamesfor name in sheetnames:ws = wb.get_sheet_by_name(name)setSHEEThw(ws, width, height)wb.save(path) # 另存为:原文件名3.xlsx
可以直接调用,示例如下:
path = "2selCELL/base/rank2.xlsx"
setHeightWidth(path,2.18,12)
print("ok")
openpyxl给excel设置条件格式相关推荐
- excel怎么设置条件格式
条件格式是指如果指定的单元格满足了特定的条件,Excel便将底纹.字体.颜色等格式用到该单元格中,一般需突出显示.计算结果或者要监视单元格的值时,可以使用条件格式.excel怎么设置条件格式的具体操作 ...
- WPS Excel表格条件格式在哪如何使用以大于500的数字飘红加粗为例
条件格式的功能是很强大的,可以实现很多的显示效果,可以满足某个条件的显示格式.它在软件中的位置与office有所不一样,在WPS表格中有两个位置可以找到它:格式-条件格式.下文以大于500的数字飘红, ...
- 【poi第七节】poi设置excel 设置字体格式,java设置excel设置字体格式
poi设置excel 设置字体格式,java设置excel设置字体格式 import org.apache.poi.hssf.usermodel.HSSFRichTextString; import ...
- excel用条件格式设置隔行变色
1.选中要设置隔行变色的区域 2.点击条件格式->新建规则->使用公式确定要设置格式额单元格 3.输入公式 =mod(row(),2) = 0,点击格式按钮,选择填充的颜色,点击确定.如 ...
- python字典的键设置条件格式_openpyxl条件格式设置数字格式
我试图以条件格式设置数字格式.我已经找到了如何设置字体,边框和填充颜色,但我无法设置数字格式.我公司目前拥有的代码是:openpyxl条件格式设置数字格式 from openpyxl import l ...
- Excel中条件格式应用的探讨之突出显示!
在Excel中,所谓条件格式是指当指定条件为真时,Excel自动应用于单元格的格式,例如,单元格底纹或字体颜色.如果想为某些符合条件的单元格应用某种特殊格式,使用条件格式功能可以比较容易实现.如果再结 ...
- python逐行读取txt写入excel_用python从符合一定格式的txt文档中逐行读取数据并按一定规则写入excel(openpyxl支持Excel 2007 .xlsx格式)...
前几天接到一个任务,从gerrit上通过ssh命令获取一些commit相关的数据到文本文档中,随后将这些数据存入Excel中.数据格式如下图所示 观察上图可知,存在文本文档中的数据符合一定的格式,通过 ...
- Excel——数据有效性+条件格式应用
一. 数据有效性 在Excel中,使用数据有效性可以控制用户输入到单元格的数据或值的类型. 调出"数据有效性"对话框(Excel2010):单击菜单栏中的"数据" ...
- excel 的条件格式(二)
数据条 一.使用默认值 使用条件格式中的数据条可以非常方便地对一定区域内的单元格的数值进行可视化.照着以下步骤执行,便可以添加数据条. 选择需要添加数据条的数据区域. 点击开始菜单,在样式组里点击条件 ...
- 今天带大家认识下excel的条件格式
Excel作为一款功能实用的电子表格软件,提供了许多有助于数据可视化和分析的工具和功能.其中,条件格式是一项十分实用的功能,它允许我们根据特定的条件自动对单元格进行格式化. 在[首页]选项卡上,点击[ ...
最新文章
- NBT:牛瘤胃微生物组的参考基因组集
- Struts(八)Strits2访问servlet API
- MED-V服务器部署,MED-V服务器系列之一
- 楼层标高怎么引上去_【强烈推荐】工程图纸怎么看?
- Android 蓝牙开发浅析
- 如何使用Gradle外部脚本进行项目构建
- python中osgeo库使用教程链接
- Windows Azure Web Site (15) 取消Azure Web Site默认的IIS ARR
- 01 前端HTTP协议(图解HTTP) 之 网络基础
- Mysql学习总结(81)——为什么MySQL不推荐使用uuid或者雪花id作为主键?
- 关于欧几里德第五公设的感言
- php函数find的用法,fleaphp crud操作之findByField函数的用法
- javah vs javac -h
- 51单片机制作计算机1602显示,51单片机对LCD1602液晶显示器的控制
- Python:1019 数字黑洞
- 邮件服务器mx记录,学习邮件服务器之MX记录
- python excel动态图表_那些年做过的动态图表-实用漂亮的Excel动态图表
- js验证固定电话、手机号码
- 中小学计算机课程标准及解读,小学信息技术课课程标准及解读
- 程序员的英文代号_构建一个代号为1的聊天应用程序2