Python:xlwtモジュールだけで複数行の文字列をExcelセルに書き込む方法はありますか? (openpyxlモジュールの使用を提案する回答を見ました)
sheet.write()
メソッドは\ nエスケープシーケンスを無視します。だから、xlwtだけ、それは可能ですか?前もって感謝します。
python-Excel Google Group で答えを見つけました。オプションのstyle
引数を指定してsheet.write()
を使用し、セルのワードラップを有効にすると、うまくいきます。最小限の作業例を次に示します。
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
(つまり、改行あり)。
XFStyleを使用せず、代わりにeasyxfを使用する場合は、次のようになります。
import xlwt
style_head = xlwt.easyxf('alignment: wrap True')
row = 1
cell = 1
book = xlwt.Workbook(encoding='utf-8')
sheet = book.add_sheet()
sheet.write(row, cell, 'cell value', style_head)
あなたが試すことができるいくつかのことがあります:
\n
(改行)文字は標準のUnixメソッドであり、Pythonでも使用されますが、Windowsではキャリッジリターンと改行が必要です。したがって、\n
を\r\n
に置き換えてみることができます。