Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
尝试使用Python选择红色和绿色背景的excel单元格_Python_Excel_Pandas_Xlrd_Styleframe - Fatal编程技术网

尝试使用Python选择红色和绿色背景的excel单元格

尝试使用Python选择红色和绿色背景的excel单元格,python,excel,pandas,xlrd,styleframe,Python,Excel,Pandas,Xlrd,Styleframe,我有一个文件,其中有绿色突出显示的单元格和红色突出显示的单元格,指示严重性级别 现在我正在使用StyleFrame来提取它们,但出于某种原因,我可以提取红细胞,但不能提取绿细胞。你知道怎么做吗 请注意,我确保代码中指定的颜色与文件中的颜色相同 from StyleFrame import StyleFrame, utils GeneralCategories = StyleFrame.read_excel('Categories.xlsx', read_style=True, use_ope

我有一个文件,其中有绿色突出显示的单元格和红色突出显示的单元格,指示严重性级别

现在我正在使用StyleFrame来提取它们,但出于某种原因,我可以提取红细胞,但不能提取绿细胞。你知道怎么做吗

请注意,我确保代码中指定的颜色与文件中的颜色相同

from StyleFrame import StyleFrame, utils


GeneralCategories = StyleFrame.read_excel('Categories.xlsx', read_style=True, use_openpyxl_styles=False)

def redBackground(cell):
    return cell if cell.style.bg_color in {utils.colors.red, 'FFFF0000'} else np.nan


def greenBackground(cell):
    return cell if cell.style.bg_color in {utils.colors.green, '00FF00'} else np.nan


SevereCategory = StyleFrame(GeneralCategories.applymap(redBackground).dropna(axis=(0, 1), how='all'))


NonSevereCategory = StyleFrame(GeneralCategories.applymap(greenBackground).dropna(axis=(0, 1), how='all'))  
结果:

print(SevereCategory)

                                    Keyword Categories
1               Adult Content: Nudity & Partial Nudity
2    Adult Content: Nudity & Partial Nudity;Adult C...
3    Adult Content: Nudity & Partial Nudity;Adult C...
4    Adult Content: Nudity & Partial Nudity;Adult C...
5    Adult Content: Nudity & Partial Nudity;Adult C...
..                                                 ...



print(NonSevereCategory)

Empty DataFrame
Columns: []
Index: []

感谢@OsmosisJonesLoL,我在通常的6位绿色十六进制代码之前添加了“FF”,它成功了

最终代码:

GeneralCategories = StyleFrame.read_excel('Keyword Category Breakout 12.5.19.xlsx', read_style=True, use_openpyxl_styles=False)

def redBackground(cell):
    return cell if cell.style.bg_color in {utils.colors.red, 'FFFF0000'} else np.nan

def greenBackground(cell):
    return cell if cell.style.bg_color in {utils.colors.green, 'FF00FF00', 'green'} else np.nan


SevereCategory = StyleFrame(GeneralCategories.applymap(redBackground).dropna(axis=(0, 1), how='all'))

NonSevereCategory = StyleFrame(GeneralCategories.applymap(greenBackground).dropna(axis=(0, 1), how='all'))

可能不相关,但为什么红色用8个字符表示,如FFFF0000和绿色仅在典型的RGB 6 00FF00中。@OsmosisJonesLoL(喜欢用户名)。我不知道,但我增加了FF的绿色十六进制开始,它的工作!没问题,我是一个人的一个细胞FF可能表示阿尔法通道什么的?对StyleFrame或excel不太熟悉,无法说出。所以也许你以前在搜索看不见的绿色单元格。可能是,我尝试了其他字符,但它似乎只适用于FF,它也适用于黄色的
FF
FFFF00