如何使用 python 读取 excel 中的彩色对象并应用公式?

How to read colored object in excel using python and apply formula?

我有一个 excel 文件,如下所示。文件可以从linkhere

下载

每种颜色都有分数。例如:红色 = 0,绿色 = 90 和 Tacao = 50

因此,对于每一行,我想计算平均分数并将其存储在新列中。

例如,

第 1 行包含 4 个绿色、4 个红色、2 个塔可

第 2 行包含 2 个绿色、3 个红色、3 个塔可

根据每种颜色的得分,

第 1 行平均值 = 46(通过公式 = ((4 * 90) + (4 * 0) + (2 * 50))/10 获得。因此,总数为 460。除以 10 种颜色 = 46 )

第二行平均值 = 41.25

我希望我的输出如下所示

我尝试了以下方法,但它不起作用。文件本身无法正确读取。

from styleframe import StyleFrame, utils
# from StyleFrame import StyleFrame, utils (if using version < 3.X)

sf = StyleFrame.read_excel('DUMMY_DATA_TEST.xlsx', read_style=True)
print(sf)
sf = sf[[col for col in sf.columns if col.style.fill.fgColor.rgb in ('#FF0000', utils.colors.red)]]

为什么不使用条件格式为整个单元格着色? 然后在单元格中计算输出并在其上放置条件格式。那么你只需要计算平均值即可。

编辑: 单元格是图标集条件格式。它们也可以计算出来,因为后面有一个值。因为下拉选择的值不等于颜色的分配值,所以你可以计算颜色并将它们与颜色的分配值相乘。

计算平均值的公式为:

=(COUNTIFS(Table22[@[Column1]:[Column16]];">=33";Table22[@[Column1]:[Column16]];"<66")*50+COUNTIF(Table22[@[Column1]:[Column16]];">66")*90)/COUNT(Table22[@[Column1]:[Column16]])