如果特定列在 excel sheet 中使用 Python 具有背景色,则读取整行

Read entire row if a specific column has background color in excel sheet using Python

我有一个 excel sheet,其中有几列带有背景颜色。我需要获取 column B 中所有具有背景颜色的行。我尝试使用 styleframe 但只能从 excel 中选择特定的单元格,而不是整行。

from styleframe import StyleFrame, utils, Styler
cols = [1]
data = StyleFrame.read_excel(excel_file, read_style=True, use_openpyxl_style=false, usecols=cols)
print(data)
data.apply_style_by_index(data.index[1], Styler(bg_color='Yellow'), cols_to_style='Emp First Name')
print(data)

这里是示例 excel sheet

我希望整行(3、4、5、7、8、10、11、12 和 13)在 column B

中具有黄色背景色

代码如下:

import openpyxl
wb = openpyxl.load_workbook('file.xlsx', data_only=True)
ws = wb['Sheet1']
df = pd.DataFrame(columns=['Dept', 'FNAME','LNAME', '2021', '2022', '2023'])
for row in ws:
    if row[1].fill.start_color.index == "FFFFFF00":
        df.loc[len(df.index)] = [row[0].value, row[1].value, row[2].value, row[3].value, row[4].value, row[5].value]

仅在 B 列中的黄色单元格将被拾取,并且该行的整行(所有 6 列)将被添加到数据框中。您可以使用数据框 df.

继续进一步的操作

我的Excelsheet数据:

...和输出数据帧

>> df
Dept    FNAME   LNAME   2021    2022    2023
0   D2  User2   L2  100 200 300
1   D3  User3   L3  100 200 300
2   D4  User4   L4  100 200 300
3   D4  User8   L8  100 200 300
4   D2  User10  L10 100 200 300
5   D3  User11  L11 100 200 300