Конвертировать csv в xlsx с разделением в «;» в разные столбцы - PullRequest
0 голосов
/ 07 сентября 2018

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

Мой CSV-файл содержит некоторые данные, хранящиеся в разных столбцах.Если я преобразовываю этот файл в xlsx в python, все данные помещаются в один столбец с ";"между ними.Но как я могу сохранить столбцы в файле xlsx?

Если я открою файл csv и сохраню его как xlsx, он тоже будет работать, и все останется прежним.

РЕДАКТИРОВАТЬ:

import os
import glob
import csv
from xlsxwriter.workbook import Workbook

for csv_f in glob.glob(os.path.join('.', '*.csv')):
    workbook = Workbook(csv_f[:-4] + '.xlsx')
    worksheet = workbook.add_worksheet()
    with open(csv_f, 'rt', encoding='utf8') as f:
        reader = csv.reader(f)
        for r, row in enumerate(reader):
            for c, col in enumerate(row):
                worksheet.write(r, c, col)
    workbook.close()

Ответы [ 2 ]

0 голосов
/ 07 сентября 2018

Я это исправил!

import os
import glob
import csv
from xlsxwriter.workbook import Workbook


for csvfile in glob.glob(os.path.join('.', '*.csv')):
   workbook = Workbook(csvfile[:-4] + '.xlsx')
   worksheet = workbook.add_worksheet()
   with open(csvfile, 'rt', encoding='utf8') as f:
       reader = csv.reader(f, delimiter=";")
       for r, row in enumerate(reader):
           for c, col in enumerate(row):
               str(worksheet.write(r, c, col)).split(";")
   workbook.close()

Важной вещью здесь является "delimiter=";" в этой строке:

reader = csv.reader(f, delimiter=";")
0 голосов
/ 07 сентября 2018

Вот как вы можете конвертировать CSV в XLSX через xlsxwriter

import os
import glob
import csv
from xlsxwriter.workbook import Workbook


    for csv_f in glob.glob(os.path.join('.', '*.csv')):
        workbook = Workbook(csv_f[:-4] + '.xlsx')
        worksheet = workbook.add_worksheet()
        with open(csv_f, 'rt', encoding='utf8') as f:
            reader = csv.reader(f)
            for r, row in enumerate(reader):
                for c, col in enumerate(row):
                    worksheet.write(r, c, col)
        workbook.close()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...