You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用xlsxwriter保护Excel工作表并启用可用的Autofilter?

解决方案

要解决工作表保护后Autofilter无法使用的问题,核心是在调用xlsxwriter的工作表保护方法时,明确开启Autofilter的使用权限——这对应你手动操作里的「Use Autofilter」勾选选项。

关键修改步骤

只需要修改代码中最后一行的protect调用,添加autofilter=True参数即可:

# 保护工作表并允许使用Autofilter
worksheet.protect('enterPasswordHere', autofilter=True)

完整调整后的代码

整合你原有代码并完成修改后的版本如下:

# 加载CSV数据到DataFrame
csv_dataframe = pd.read_csv(report_csv_file, sep = ',', encoding = "ISO-8859-1", engine = 'python', index_col = None, names = ['TIPO', 'CODIGO', 'DESCRICAO',
'FORNECEDOR', 'PRINCIPIO_ATIVO', 'ANVISA', 'FABRICANTE'])

# 重置Pandas默认表头格式
pandas.io.formats.excel.header_style = None

# 创建Excel写入对象
writer = pd.ExcelWriter(template_excel_file, engine = 'xlsxwriter')

# 将DataFrame写入Excel工作表
excel_dataframe = csv_dataframe.to_excel(writer, sheet_name = 'Material Alto Custo', index = False, header = ['TIPO', 'CODIGO', 'DESCRICAO',
'FORNECEDOR', 'PRINCIPIO_ATIVO', 'ANVISA', 'FABRICANTE'])

# 获取DataFrame维度
(max_row, max_col) = csv_dataframe.shape

# 获取工作簿和工作表对象
workbook = writer.book
worksheet = writer.sheets['Material Alto Custo']

# 定义表头格式
header_format = workbook.add_format({'bold' : True, 
'font' : 'Arial', 
'size' : 10,
'border' : 1})

# 定义常规列格式和特殊列格式
font_size_and_border = workbook.add_format({'font' : 'Arial', 'size' : 10, 'border' : 1, 'align' : 'left'})
column_left_zeroes_format_and_border = workbook.add_format({'num_format' : '00000000','font' : 'Arial', 'size' : 10,  'border' : 1, 'align' : 'left'})

# 应用列格式
worksheet.set_column(0,max_col - 1, 20.0, font_size_and_border)
worksheet.set_column(1, 1, 20.0, column_left_zeroes_format_and_border)

# 重写表头并应用格式
for col_num, value in enumerate(csv_dataframe.columns.values):
    worksheet.write(0, col_num, value, header_format)

# 给表头添加Autofilter
worksheet.autofilter(0, 0, 0, 6)

# 保护工作表并允许使用Autofilter
worksheet.protect('enterPasswordHere', autofilter=True)

# 保存并关闭写入对象
writer.close()

补充说明

  • worksheet.protect()还支持其他权限参数,比如sort=True允许排序、select_locked_cells=True允许选中锁定单元格等,可根据需求自行添加。
  • 无需额外解锁表头单元格,只要开启autofilter权限,筛选器就能正常交互,同时工作表其他区域保持保护状态。

内容的提问来源于stack exchange,提问作者Leonardo Leipnitz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 05:03:36