Django - форматирование ячеек excel при экспорте excel

Я пытаюсь выполнить функцию экспорта в excel в Django, в которой я генерирую файл excel в соответствии с выбором списка полей. При этом я хочу отформатировать ячейки в соответствии с данными полей. В настоящее время данные для даты не отображаются в правильном формате даты. Прилагаю скриншот для примера.

Неправильный формат даты

Каждый раз после загрузки excel мне приходится вручную менять формат ячеек.

Смена формата происходит ежегодно

Но я хочу установить формат для поля даты с помощью кода.

Вот мой код для генерации excel и его загрузки.

        checkedField = request.POST.getlist('excelfields[]')
        FinalPath = ''
        filename = 'media\ExcelExportClientReg\InitalRegistaration.xls'
        work_book = xlwt.Workbook(encoding='utf-8')
        uc = u"".join(chr(0x0410 + i) for i in range(32)) # some Cyrillic characters
        u8 = uc.encode("UTF-8")
        work_sheet = work_book.add_sheet('Client Registration')

        style_head_row = xlwt.easyxf("""    
        align:
        wrap off,
        vert center,
        horiz center;
        borders:
        left THIN,
        right THIN,
        top THIN,
        bottom THIN;
        font:
        name Arial,
        colour_index white,
        bold on,
        height 0xA0;
        pattern:
        pattern solid,
        fore-colour 0x15;
        """
        )
        style_data_row = xlwt.easyxf("""
        align:
            wrap on,
            vert center,
            horiz left;
        font:
            name Arial,
            bold off,
            height 0XA0;
        borders:
            left THIN,
            right THIN,
            top THIN,
            bottom THIN;
        """
        )
        # set columns value.
        row_num = 0
        columns = checkedField
        
        for col_num in range(len(columns)):
            work_sheet.write(row_num, col_num, columns[col_num],style_head_row)
        # set rows value
        if request.session['AdminID'] == 1:
            rows = ClientRegistration.objects.values_list(*checkedField).all()
        else:
            rows = ClientRegistration.objects.values_list(*checkedField).filter(CreatedBy=request.session['AdminID'],IsDeleted=0)

        for row in rows:
            row_num += 1
            for col_num in range(len(row)):
                work_sheet.write(row_num, col_num, row[col_num],style_data_row)
        work_book.save(filename)

        FinalPath = os.path.join(settings.BASE_DIR,filename)
        path = open(FinalPath, 'rb')
        mime_type, _ = mimetypes.guess_type(FinalPath)
        response = HttpResponse(path,content_type=mime_type)
        response['Content-Disposition'] = 'attachment; filename="InitalRegistaration.xls"'
        os.remove(FinalPath)
        return response

Здесь checkedField указано, какие поля необходимо добавить в файл excel.

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