Запись многострочных строк в ячейки с помощью модуля xlwt
Python:
Есть ли способ написать многострочные строки в ячейку excel только с модулем xlwt? (Я видел ответы, предлагающие использование модуля openpyxl)
Метод sheet.write()
игнорирует escape-последовательность\n. Итак, просто xlwt, возможно ли это? Заранее спасибо.
Ответы
Ответ 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)} внутри формулы.
- Если это все еще не работает, возможно, стоит попробовать эту статью, которая предлагает более длинный и простой способ приближения к проблеме.