首页 > 解决方案 > 使用 openpyxl 更改整个 Excel 工作表的列宽

问题描述

我想更改我的 excel 文件中多张工作表的所有列宽。我在其他帖子中发现的是关于更改一列的宽度。我怎样才能做到这一点?

这是我尝试但失败的方法:

 wb = openpyxl.load_workbook('my_file.xlsx')
    for sheet in wb.worksheets:
        for column in sheet.columns:
            sheet.column_dimensions[column].width = 50

标签: pythonopenpyxl

解决方案


嗨,您可以使用以下代码构建动态单元格大小,但也可以用于您的目的

column_widths = []
for row in data:
    for i, cell in enumerate(row):
        if len(column_widths) > i:
            if len(cell) > column_widths[i]:
                column_widths[i] = 50
        else:
            column_widths += [50]

for i, column_width in enumerate(column_widths):
    worksheet.column_dimensions[get_column_letter(i+1)].width = column_width

推荐阅读