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

openpyxl 如何获取Excel每列单元格内容的最大长度

openpyxl获取Excel每列内容最大长度的修改方案

你现有代码的核心逻辑是外层遍历行、内层遍历列,统计的是单一行内所有单元格的内容最大长度,和你要的每列最大长度的需求正好相反,只需交换内外层循环逻辑即可。

修改后的完整代码如下:

import openpyxl

filepath = "test.xlsx"
wb = openpyxl.load_workbook(filepath)
ws = wb.active

max_row = ws.max_row
max_column = ws.max_column

# 外层遍历所有列
for j in range(1, max_column + 1):
    max_length = 0
    # 内层遍历当前列的所有行
    for i in range(1, max_row + 1):
        try:
            current_len = len(str(ws.cell(row=i, column=j).value))
            if current_len > max_length:
                max_length = current_len
        except:
            pass
    # 遍历完一列后输出该列的最大长度
    print(f"第{j}列最大内容长度:{max_length}")

核心修改点:

  • 交换行、列的遍历顺序,外层先循环所有列,每列单独初始化最大长度计数器
  • 内层循环遍历当前列的所有行单元格,更新当前列的最大长度
  • 每列遍历完成后再输出结果,可自定义输出格式同时标注列号方便匹配

如果需要后续使用各列的最大长度值,也可以用字典存储结果,示例如下:

col_max_len = {}
for j in range(1, max_column + 1):
    max_length = 0
    for i in range(1, max_row + 1):
        try:
            current_len = len(str(ws.cell(row=i, column=j).value))
            if current_len > max_length:
                max_length = current_len
        except:
            pass
    col_max_len[j] = max_length
print(col_max_len)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 04:09:03