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

如何用Openpyxl冻结Excel首列?现有代码报错求解决

解决openpyxl冻结Excel第一列的问题

原代码的核心问题是冻结点设置错误,同时存在缩进不规范的问题。以下是具体修正方案:

关键错误分析

  • worksheet.freeze_panes = 'A' 无法实现整列冻结:该设置将冻结点设为A1单元格,仅会固定该单元格上方(无内容)和左侧(无列)的区域,达不到横向滚动时固定A列的效果。正确的冻结点应设为'B1',这样B1左侧的A列会被固定。
  • 代码缩进层级错误:原代码中for循环的缩进与上层代码不对齐,会直接导致语法报错。

修正后的完整代码

from openpyxl import Workbook
from openpyxl.utils import get_column_letter
from openpyxl.worksheet.dimensions import DimensionHolder, ColumnDimension

# 创建工作簿和工作表实例
wb = Workbook()
worksheet = wb.active

# 批量设置列宽(修正缩进问题)
dim_holder = DimensionHolder(worksheet=worksheet)
for col in range(worksheet.min_column, worksheet.max_column + 1):
    dim_holder[get_column_letter(col)] = ColumnDimension(
        worksheet, min=col, max=col, width=20)

# 单独设置A列宽度
dim_holder['A'] = ColumnDimension(worksheet, min=1, max=1, width=35)
worksheet.column_dimensions = dim_holder

# 冻结第一列:设置冻结点为B1,其左侧的A列将被固定
worksheet.freeze_panes = 'B1'

# 保存生成的Excel文件
wb.save("frozen_first_column.xlsx")

效果验证

打开生成的Excel文件后,横向滚动时A列会始终固定在视图左侧,其余列可正常滚动。

内容的提问来源于stack exchange,提问作者Happy Coder

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 00:45:53