Openpyxl / Pandas - конвертировать CSV в XLSX - PullRequest
0 голосов
/ 26 февраля 2020

Я пытаюсь преобразовать файл CSV в файл Excel, но после того, как я попробовал большинство предложений из Интернета, самое близкое, что я получил, - использование этого фрагмента кода:

Входной файл выглядит как this

pathcsv = r'C:\Users\Python\test.csv'
pathxls = r"C:\Users\Python\test123.xlsx"


wb = Workbook()
ws = wb.active

with open('test.csv', 'r') as f:
    for row in csv.reader(f):
        ws.append(row)

wb.save(pathxls)   

Проблема здесь в том, что выходной файл выглядит как this (см. выделенное)

Еще одна попытка была с pandas.

data = pd.read_csv(pathcsv, sep="\t")
df = pd.DataFrame(data)
df.to_excel(pathxls, index=False)

Но результат выглядел как this

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

Спасибо!

Ответы [ 2 ]

0 голосов
/ 27 февраля 2020

Я нашел решение на этом.

Я просто добавил параметр кодирования как utf-8, и он работал нормально.

with open(pathcsv, 'r+', encoding="utf-8") as f:

Спасибо всем за вашу помощь. Это был хороший первый пост :)

0 голосов
/ 26 февраля 2020

В дополнение к комментарию выше, вы пробовали использовать разные кодировки? Вы можете попробовать использовать аргумент encoding с некоторыми здесь:

https://docs.python.org/3/library/codecs.html#standard -кодировки

Теоретически только в методе read_csv(), но это не так Больно попробовать при экспорте.

Так что есть что-то:

df = pd.read_csv(pathcsv, sep="\t", encoding = 'ascii') # or other encodings
df.to_excel(pathxls, index=None)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...