如果特定列在 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
我有一个 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