我已经填好了一个工作表,里面有一些数据。我想让列的宽度自适应,就像这里所描述的那样。基本上,就是当您双击列宽调整分隔符时发生的自动调整。
这是我的最小示例,根据我对openpyxl
文档的理解,这应该可以工作:
import openpyxl
from typing import NoReturn
def columns_best_fit(ws: openpyxl.worksheet.worksheet.Worksheet) -> NoReturn:
"""
Make all columns best fit
"""
column_letters = tuple(openpyxl.utils.get_column_letter(col_number + 1) for col_number in range(ws.max_column))
for column_letter in column_letters:
dim = openpyxl.worksheet.dimensions.ColumnDimension(ws, index=column_letter, bestFit=True, customWidth=True)
ws.column_dimensions[column_letter] = dim
wb = openpyxl.Workbook()
ws = wb.active
ws.append(("Long Column Header 1", "Even Longer Column Header 2"))
ws.append(("some data", "more data"))
columns_best_fit(ws)
wb.save("column_width_test.xlsx")
然而,当我打开生成的文件时,列只是稍微更宽了一点,但肯定不是最适合的。
bestWidth=True
没有任何效果。 - Charlie ClarkWONTFIX
。 - kevinarpe