import csv
from openpyxl import Workbook
def convert_csv_to_xlsx():
wb = Workbook()
sheet = wb.active
CSV_SEPARATOR = ";"
with open('G:/Мой диск/Рассвет/DC/PN_COUNT.CSV') as f:
reader = csv.reader(f)
for r, row in enumerate(reader):
for c, col in enumerate(row):
for idx, val in enumerate(col.split(CSV_SEPARATOR)):
cell = sheet.cell(row=r + 1, column=idx + 1)
cell.value = val.strip()
try:
cell.value = int(cell.value)
except ValueError:
pass
wb.save('G:/Мой диск/Рассвет/DC/PN_COUNT.xlsx')
convert_csv_to_xlsx()
Код на Python. Умеет различать разделитель. Раскидывает данные по ячейкам, а не просто меняет расширение файла как некоторые примеры в интернете.
По ходу разработки выяснилось, что нужно удалить лишние пробелы, чтобы потом преобразовать строку в число.
Единственная проблема, которую не смог решить, это некорректное преобразование csv в xls, если в csv есть значения с запятой. Видимо проблема в используемой библиотеке openpyxl.