В Excel вы можете установить защиту листа, но позволить пользователю изменять отдельные элементы, такие как автофильтры. В XlsxWriter вы можете указать, какие элементы листа вы хотите защитить, используя аргумент options
в protect()
(см. документы ).
Например:
import pandas as pd
df = pd.DataFrame({'Data1': [10, 20, 30, 20, 15, 30, 45],
'Data2': [11, 21, 31, 21, 15, 31, 45]})
writer = pd.ExcelWriter('pandas_filter.xlsx', engine='xlsxwriter', )
df.to_excel(writer, sheet_name='Sheet1', index=False)
workbook = writer.book
worksheet = writer.sheets['Sheet1']
worksheet.protect(options={'autofilter': True})
worksheet.autofilter('A1:B8')
writer.save()
Выход: