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

使用xlwings保护工作表时如何禁用“选择锁定单元格”?

解决xlwings保护工作表时禁用“选择锁定单元格”的问题

你遇到的问题是因为AllowSelectingLockedCells并不是Excel Worksheet.Protect()方法的直接参数,要实现禁用“选择锁定单元格”的效果,需要通过设置工作表的EnableSelection属性来完成,具体操作如下:

核心原理

Excel中“选择锁定单元格”的权限由工作表的EnableSelection属性控制:

  • 设置为xlUnlockedCells(对应数值1):仅允许选择未锁定单元格,对应取消勾选“选择锁定单元格”的效果
  • 设置为xlNoSelection(对应数值2):禁止选择任何单元格
  • 设置为xlNoRestrictions(对应数值0):允许选择所有单元格(默认状态)

需要在调用Protect()方法完成基础保护设置后,添加EnableSelection的配置代码。

修改后的完整代码

import xlwings as xw

folder = r"C:\Python\DF\"  # 用原始字符串避免路径转义问题
xls = "65982.xlsx"

book = xw.Book(folder + xls)
book.app.visible = True
sht = book.sheets["Sheet1"]

# 执行工作表基础保护配置
sht.api.Protect(
    DrawingObjects=False, 
    Contents=True, 
    Scenarios=True,
    UserInterfaceOnly=False, 
    AllowFormattingCells=False, 
    AllowFormattingColumns=False,
    AllowFormattingRows=False, 
    AllowInsertingColumns=False, 
    AllowInsertingRows=False,
    AllowInsertingHyperlinks=False, 
    AllowDeletingColumns=False, 
    AllowDeletingRows=False,
    AllowSorting=False, 
    AllowFiltering=False, 
    AllowUsingPivotTables=False
)

# 配置仅允许选择未锁定单元格,即禁用“选择锁定单元格”
sht.api.EnableSelection = xw.constants.EnableSelection.xlUnlockedCells
# 若xlwings版本不支持constants,直接用数值1代替:sht.api.EnableSelection = 1

book.save()

额外提示

  • 路径字符串建议添加前缀r使用原始字符串,避免因转义字符导致的路径识别错误
  • 如果不需要完全禁用选择,只是限制到未锁定单元格,上述代码即可满足需求

内容的提问来源于stack exchange,提问作者FORREST.KIM

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 00:46:02