Как сохранить xlsx с помощью openpyxl и получить правильную кодировку?[мусорные персонажи] - PullRequest
0 голосов
/ 09 апреля 2019

Я получаю результаты из базы данных MYSQL и сохраняю данные в XLSX, используя библиотеку openpyxl.После сохранения и открытия файла у меня все имена со специальными символами, полными плохих символов.Я считаю, что это некоторая проблема с кодированием, но я просто не могу найти способ установить кодировку при открытии или сохранении книги.

Я уже пытался использовать:

wb =Workbook(encoding='utf8')


Нозатем я получаю сообщение об ошибке, связанное с неожиданным аргументом ключевого слова, и понятия не имею, что еще можно попробовать.

Часть кода, которая занимается записью данных результатов запроса в Excel, находится здесь:

wb = Workbook()
ws = wb.create_sheet(0)
ws.append(res.keys())
x = res.fetchall()
xlength = len(x)
ylength = len(x[0])
for i in range(xlength):
    for k in range(ylength):
        ws.cell(row=(i+2), column=(k+1)).value = x[i][k]    
wb.save('Documents/python pigu_lt/reports/cache/{}'.format(query_type) + ".xlsx")

Мой фактический результат:

'Vaikams ir kūdikiams'

И мой ожидаемый результат:

'Vaikams ir kūdikiams'

Кто-нибудь знает, как получить это право?

1 Ответ

1 голос
/ 09 апреля 2019

Это не имеет ничего общего с openpyxl и всем, что связано с MySQL и тем, как вы к нему подключаетесь.XLSX хранит данные в формате XML, который по умолчанию является UTF8, и поэтому может представлять все символы Юникода.Вам следует проверить настройки базы данных и убедиться, что она возвращает либо Unicode, либо utf8.

...