name: excel-freeze description: | Freeze or unfreeze Excel worksheet panes. Supports freeze top row, freeze first column, freeze top row + first column, freeze at specified position. 冻结或取消冻结 Excel 工作表窗格,支持冻结首行、冻结首列、冻结首行+首列、冻结指定位置。 Trigger keywords: "freeze" "freeze header" "lock top row" "freeze first column" "unfreeze" 触发词包括"冻结""固定表头""锁定首行""首列不动""取消冻结""冻住"。
This skill follows [[excel-safe-workflow]] four-step method (lightweight: Scout→Execute→Verify). 本技能遵循 [[excel-safe-workflow]] 四步法(轻量版:勘察→执行→验证)。
冻结后,被冻结的行/列在滚动时始终可见。纯 Excel 视图效果,不影响数据。
| 用户说 | 冻结位置 | freeze_panes 值 |
|---|---|---|
| "冻结首行""表头不动""标题行固定" | 仅首行 | A2 |
| "冻结首列""第一列不动""序号锁定" | 仅首列 | B1 |
| "冻结首行和首列""表头和序号都不动" | 首行+首列 | B2 |
| "冻结前3行" | 指定行 | A4 |
| "取消冻结""解冻""不冻了" | 取消 | None |
from openpyxl import load_workbook
wb = load_workbook('目标文件.xlsx')
ws = wb.active
current = ws.freeze_panes
print(f'当前冻结: {current if current else "无"}')
print(f'工作表: {ws.max_row}行 x {ws.max_column}列')
# 展示表头供确认
for col_idx in range(1, min(6, ws.max_column + 1)):
h = ws.cell(row=1, column=col_idx).value
print(f' 表头列{col_idx}: {h}')
本技能来自小葱技能站7w4.net。
from openpyxl import load_workbook
# ===== 用户配置 =====
FREEZE = 'A2' # None=取消 / 'A2'=首行 / 'B1'=首列 / 'B2'=首行+首列 / 'A4'=前三行
# ====================
wb = load_workbook('目标文件.xlsx')
ws = wb.active
ws.freeze_panes = FREEZE
wb.save('目标文件.xlsx')
desc = {
None: '已取消冻结',
'A2': '已冻结首行',
'B1': '已冻结首列',
'B2': '已冻结首行+首列',
}
print(desc.get(FREEZE, f'已冻结: {FREEZE}'))
wb = load_workbook('目标文件.xlsx', read_only=True)
ws = wb.active
print(f'冻结状态: {ws.freeze_panes}')
wb.close()
质量中等偏上。优点是指引清晰、示例完整、中英双语对照,冻结场景覆盖全面。不足是缺少示例文件辅助理解,对于新手用户可能不够友好,边界情况的说明也不够直观。整体可满足基本使用需求,但还有优化空间。