Подтвердить что ты не робот

Запись многострочных строк в ячейки с помощью модуля xlwt

Python: Есть ли способ написать многострочные строки в ячейку excel только с модулем xlwt? (Я видел ответы, предлагающие использование модуля openpyxl)

Метод sheet.write() игнорирует escape-последовательность\n. Итак, просто xlwt, возможно ли это? Заранее спасибо.

4b9b3361

Ответ 1

Я нашел ответ в python-excel Google Group. Используя sheet.write() с необязательным аргументом style, включив перенос слов для ячейки, делает трюк. Вот минимальный рабочий пример:

import xlwt
book = xlwt.Workbook()
sheet = book.add_sheet('Test')

# A1: no style, no wrap, despite newline
sheet.write(0, 0, 'Hello\nWorld')

# B1: with style, there is wrap
style = xlwt.XFStyle()
style.alignment.wrap = 1
sheet.write(0, 1, 'Hello\nWorld', style)
book.save('test.xls')

Пока в ячейке A1 отображается HelloWorld без прерывания строки, ячейка B1 показывает Hello\nWorld (т.е. с разбиением строк).

Ответ 2

Есть несколько вещей, которые вы могли бы попробовать:

  • Windows обрабатывает новые строки по-разному для Unix/Linux. Хотя символ \n (строка строки) является стандартным методом Unix, а также используется в Python, Windows требует возврата каретки и строки. Поэтому вы можете попробовать заменить \n на \r\n.
  • Если это не сработает, попробуйте заменить их символами ascii {chr (13) и chr (10)} внутри формулы.
  • Если это все еще не работает, возможно, стоит попробовать эту статью, которая предлагает более длинный и простой способ приближения к проблеме.