Python, столбец openpyxl с настройкой - PullRequest
0 голосов
/ 13 февраля 2019

Надеюсь, кто-нибудь может помочь мне объяснить строку кода для меня.Я получил это из другого поста, но не смог задать вопрос с помощью комментариев, потому что я новый пользователь и у меня недостаточно очков репутации.Как плакат узнал, что col[0].column получит название столбца?Я не смог найти в документах openpyxl, откуда взялись свойства .column.

for col in worksheet.columns:
     max_length = 0
     column = col[0].column # Get the column name
     for cell in col:
         try: # Necessary to avoid error on empty cells
             if len(str(cell.value)) > max_length:
                 max_length = len(cell.value)
         except:
             pass
     adjusted_width = (max_length + 2) * 1.2
     worksheet.column_dimensions[column].width = adjusted_width

1 Ответ

0 голосов
/ 29 мая 2019

col [0] .column возвращает число, в то время как worksheet.column_dimensions [column] принимает только такие символы, как 'A', 'B', 'C' вместо столбца.Я изменил код, и теперь он работает нормально.

import re

for col in _ws.columns:
max_lenght = 0
print(col[0])
col_name = re.findall('\w\d', str(col[0]))
col_name = col_name[0]
col_name = re.findall('\w', str(col_name))[0]
print(col_name)
for cell in col:
    try:
        if len(str(cell.value)) > max_lenght:
            max_lenght = len(cell.value)
    except:
        pass
adjusted_width = (max_lenght+2)
_ws.column_dimensions[col_name].width = adjusted_width
...