При выгрузке данных с БД через psycopg2 и дальнейшей записи через Openpyxl в лист эксель, функции экселя отказываются воспринимать один из рядов

Выгружаю с БД postgres данные через psycopg2. В скрипте SQL есть такой фрагмент

case when name_column is true then 'ИСТИНА' else 'ЛОЖЬ' end  as name_column

После выгрузки происходит копирование и запись этих данных через openpyxl в эксель листы. Запись выглядит примерно вот так. введите сюда описание изображения

На других листах происходит вычисления данных из этой простыни. Проблема состоит в том что функции эксель отказываются видеть последний столб с данными "ЛОЖЬ" или "ИСТИНА" Пример формулы

=СЧЁТЕСЛИМН(Data1!$A:$A;ATB$3;Data1!$H:$H;ЛОЖЬ)

И формула ничего не просчитывает и выводит нули. Если удалить значение "ЛОЖЬ" в одной из ячеек и написать там же только вручную, формула начинает считать эту ячейку. Тип данных одинаковый в ячейках. При выгрузке с DataGrip и вставке вручную все работает нормально. Желательно решить проблему так, что бы не изменять sql скрипт и эксель файл. Возможно проблема с кодировкой в UTF-8? Если да, то куда и как пристроить кусок кода который будет декодировать/перекодировать..?

Но, так же есть формулы которые ссылаются на другие столбцы с кириллицей, и при этом работают нормально. Возможно проблема в том что эксель не понимает что это булевые значения? Если так, как это исправить? Код

import psycopg2
from contextlib import closing
from psycopg2.extras import DictCursor
import pandas as pd
from tkcalendar import Calendar,DateEntry
from openpyxl import Workbook, load_workbook
import os
from ... import sheets
import time
 
def write_to_excel(name_file):

    
    
    with psycopg2.connect(dbname='', 
                                     user="", 
                                     password="", 
                                     host='', 
                                     port ='') as connection:
        with connection.cursor(cursor_factory=DictCursor) as cursor:

            for name_sheet in sheets:
                print(f'Запускаю скрипт {name_sheet}')
                cursor.execute(sheets[name_sheet]) 
                rows = [[desc[0] for desc in cursor.description]]
                for row in cursor: 
                    rows.append(row)
                print(f'Выгрузили и скопировали {name_sheet}')

    
                clear_wb = load_workbook(name_file) 
                excel_sheet = clear_wb[name_sheet]
                excel_sheet.delete_rows(1,excel_sheet.max_row + 1)
                
                data = rows 
                print(len(rows))
                print(len(rows[0]))

                
          
                for i in data: 
                               
                     excel_sheet.append(i)

                clear_wb.save(name_file)
                print(f'Сохранили {name_sheet}')
            clear_wb.close()

start_time = time.time()
write_to_excel('file.xlsx')
print("--- %s seconds ---" % (time.time() - start_time))

Ответы (0 шт):