Я конвертирую большие файлы XLSX (более 60 столбцов и 3000 строк) в формат TSV. Некоторые поля содержат тексты с 2-3 абзацами (многострочные).
Я хочу поддерживать UTF-8 и хочу, чтобы каждая строка отображалась в строке в результирующем TSV
Я сделал следующее:
import xlrd
import csv
# open the tsv file(output) in unicode format
with open('outTSV.tsv', 'w', encoding='utf-8') as TSVfile:
wr = csv.writer(TSVfile, delimiter="\t")
# open the xlsx file
xlfile = xlrd.open_workbook('inXLSX.xlsx')
# retrieve sheet
sheet = xlfile.sheet_by_index(0)
# write rows into TSVfile
for row in range(sheet.nrows):
wr.writerow(sheet.row_values(row))
Я ожидал, что каждая строка в файле XLSX преобразуется в строку в файле TSV. Однако, поскольку у некоторых ячеек есть параграфы, они переводятся как новые строки. Поэтому я получаю деформированные файлы TSV.
XLSX файл
Деформированный файл TSV