使用openpyxl调整Excel的宽度

逐行加载Excel,并将行宽调整为行中的最大字符数。

希望在打开 Excel 时能够看到所有字符。

失败代码:

python 复制代码
#失败代码:
wb = openpyxl.load_workbook('./targetExcelFile.xlsx')
ws = wb.worksheets[0]

for col in ws.iter_cols():
    max_length = 0
    column = col[0].column
    
    for cell in col:

        if cell.value == None:
            continue

        if len(str(cell.value)) > max_length:
            max_length = len(str(cell.value))

    ws.column_dimensions[column].width = adjusted_width

运行结果:

python 复制代码
Traceback (most recent call last):
  File "pypy.py", line 10, in main
    ws.column_dimensions[column].width = adjusted_width
  File "/.pyenv/versions/3.7.8/lib/python3.7/site-packages/openpyxl/utils/bound_dictionary.py", line 25, in __getitem__
    setattr(value, self.reference, key)
  File "/.pyenv/versions/3.7.8/lib/python3.7/site-packages/openpyxl/descriptors/base.py", line 42, in __set__
    raise TypeError('expected ' + str(self.expected_type))
TypeError: expected <class 'str'>

我收到一个错误,所以我进行了调查

如果你看一下调查的内容...

复制代码
 - ws1.column_dimensions[column].width = adjustment_width
 + ws1.column_dimensions[col[0].column_letter].width = adjustment_width
 由于在openpyxl 3及更高版本中,column_dimensions的下标已从列号的数值更改为列名称的字符串。

原来如此。

修正处:

python 复制代码
# 修正前
column = col[0].column

# 修正后
column = col[0].column_letter

修正后的代码

python 复制代码
wb = openpyxl.load_workbook('./targetExcelFile.xlsx')
ws = wb.worksheets[0]

for col in ws.iter_cols():
    max_length = 0
    column = col[0].column_letter
    
    for cell in col:

        if cell.value == None:
            continue

        if len(str(cell.value)) > max_length:
            max_length = len(str(cell.value))

    ws.column_dimensions[column].width = adjusted_width

修改成功,没问题。

相关推荐
斯特凡今天也很帅30 分钟前
Excel在保留下拉选项的基础上,通过输入四级目录数据,在一级目录、二级目录、三级目录、五级目录的显示
excel
全栈开发圈1 天前
新书速览|Excel+DeepSeek会计与财务高效办公
语言模型·excel
ew452181 天前
【java】基于hutool实现.Excel导出任意多级自定义表头数据
java·开发语言·excel
SunnyDays10111 天前
使用 Python 在 Excel 中应用数据验证:详细指南
python·excel·数据验证
开开心心就好1 天前
模拟真人手写软件,支持随机调节
运维·服务器·windows·gitee·pdf·开源·excel
SunnyDays10112 天前
如何使用 Python 操作 Excel 图片:插入、提取与压缩
python·excel·提取图片·压缩图片·插入图片到excel·删除图片
骆驼爱记录2 天前
Word一键批量添加图章
自动化·word·excel·wps·新人首发
biuyyyxxx2 天前
Power Query功能区 - 主页
笔记·学习·excel
CDA数据分析师干货分享2 天前
【经验贴】机械工程本科,CDA数据分析师学习及转行经验
数据挖掘·数据分析·excel·cda证书·cda数据分析师
小邓睡不饱耶2 天前
东方财富股吧话题爬虫实现:从接口请求到Excel数据落地
爬虫·excel