Django, Openpyxl: ширина столбцов возвращает странные значения

внутри моего приложения я создаю простую рабочую книгу и -sheet! Затем я итерирую словарь для настройки ширины столбцов и высоты строк.

functions.py

def create_workbook():
    dict_col_width = {
        'A': 2.22, 'B': 0.5, 'C': 2.33, 'D': 2.89,
    }
    dict_row_height = {
        1: 44.4, 2: 9.9, 3: 15.6, 4: 85.2,
    }

    wb = Workbook()
    ws = wb.active
    ws.title = "Some title"

    for key, value in dict_col_width.items():
        ws.column_dimensions[key].width = value

    for key, value in dict_row_height.items():
        ws.row_dimensions[key].height = value

    return wb

views.py

...
wb = create_workbook()
file_text = "some_file_name"
response = HttpResponse(content=save_virtual_workbook(wb), content_type='application/ms-excel')
response['Content-Disposition'] = f'attachment; filename={file_text}.xlsx'

return response

Моя проблема в том, что после загрузки и открытия файла, кажется, что ширина столбцов была создана случайным образом. Я также протестировал ширину столбцов с числами от 1 до 4 и вот какие результаты:

  • ws.column_dimensions[...].width = 1 --> получается ширина 0.56
  • ws.column_dimensions[...].width = 2 --> получается ширина 1.22
  • ws.column_dimensions[...].width = 3 --> получается ширина 2.22
  • ws.column_dimensions[...].width = 4 --> получается ширина 3.22

Как ни странно, строки работали совершенно нормально! Я уже настраивал ширину столбцов в других программах, и эта ошибка(?) никогда не возникала раньше! Может кто-нибудь знает, что я делаю не так?

Спасибо за помощь и хорошего дня!

Вернуться на верх