pip install openpyxl
python
import openpyxl
from openpyxl.utils import get_column_letter
from openpyxl.styles import Font, PatternFill
def filter_and_sort(file_name, sheet_name, filter_column, filter_value, sort_column):
wb = openpyxl.load_workbook(file_name)
sheet = wb[sheet_name]
filter_column_index = None
for col in sheet.iter_cols(max_row=1):
for cell in col:
if cell.value == filter_column:
filter_column_index = get_column_letter(cell.column)
if filter_column_index is None:
return
for row in sheet.iter_rows(min_row=2):
if row[int(filter_column_index)-1].value != filter_value:
sheet.delete_rows(idx=row[0].row, amount=1)
sheet.auto_filter.ref = sheet.dimensions
sheet.auto_filter.add_filter_column(int(filter_column_index), [filter_value])
sheet.auto_filter.add_sort_condition(sort_column)
wb.save(file_name)
wb.close()