from openpyxl import load_workbook from openpyxl.drawing.image import Image def read_images_from_excel(file_path, filter_column): # Load the workbook wb = load_workbook(filename=file_path) # Iterate through each sheet in the workbook for sheet_name in wb.sheetnames: sheet = wb[sheet_name] # Find the column index of the filter column filter_column_index = None for col in range(1, sheet.max_column + 1): if sheet.cell(row=1, column=col).value == filter_column: filter_column_index = col break if filter_column_index is None: print(f"Filter column '{filter_column}' not found in sheet '{sheet_name}'") continue # Iterate through each row in the sheet for row in range(2, sheet.max_row + 1): # Check if the filter condition is met if sheet.cell(row=row, column=filter_column_index).value == "your_filter_value": # Iterate through each image in the row for image in sheet._images: # Check if the image is in the same row as the filter condition if image.anchor._from.row == row: # Get the image data img_data = image.image # You can process the image data here # For example, you can save the image to a file img_data.save(f"{sheet_name}_{row}_{image.anchor._from.col}.png") # Example usage: read_images_from_excel("example.xlsx", "Column F")