我已经从Excel工作表中加载了应用单元格格式(边框,合并,字体..)
的数据
然后,我使用Python中的条件语句在某些条件下为单元格着色。我想再次应用此样式保存表格,保持原始Excel工作表的格式如下。
我怎么能代码?我已经尝试了下面,但我没有得到想要的。
import pandas as pd
import numpy as np
from openpyxl import load_workbook
workbook = openpyxl.load_workbook('test.xlsx')
worksheet = workbook['Tables']
# Load the DataFrame from the Excel file
df = pd.read_excel('test.xlsx', sheet_name='Tables')
# Define the column list
column_list = df.columns.to_list()[3:]
# Define the color function
def color(df, subset=column_list, up=5, low=-5):
tmp = df[column_list].sub(pd.to_numeric(df['Unnamed: 2'], errors='coerce'), axis=0)
return pd.DataFrame(np.select([tmp.gt(up), tmp.lt(low)],
['background-color: #e6ffe6;',
'background-color: #ffe6e6;'],
None), columns=subset, index=df.index
).reindex_like(df)
df.style.apply(color, axis=None).to_excel('result.xlsx', engine='openpyxl', index=False)
2条答案
按热度按时间ss2ws0br1#
在您期望的输出中,彩色单元格后面的逻辑并不完全清楚。
无论如何,要读取/conditionnaly-format/write一个单元格范围(* 在同一个文件 * 上),使用以下命令:
输出:
nzk0hqpo2#
我使用下面给出的代码,它保持了格式,也改变了单元格的颜色条件.使用Pandas1.5.2(我不认为这有什么关系)和openpyxl 3.0.9.它保持meger,边框,字体样式,重量,家庭和颜色,因为它是在测试文件.