OpenPyXLのload_workbook()関数でフルパスを指定する方法を記事にしました。
おそらくエスケープシーケンスをご存知なかったのでしょうから、セル内改行のエスケープシーケンスも、確認しておくほうが良さそうに感じます。
Excelのセル内改行(LF)のエスケープシーケンスは、「\n」です。
セル内改行を確認するサンプル
以下のようなスクリプトを実行してから、C:\temp\foo.xlsxブックを開いてみてください。
bk = xl.Workbook()
ws = bk.worksheets[0]
ws['A1'].value = 'AAA\nBBB'
ws['A1'].alignment = xl.styles.Alignment(wrapText=True)
下図のとおりA1セルに文字列「AAABBB」が入力され、AとBの間でセル内改行されていることを確認できます。
実際にセル内改行させるには書式設定が必要
セル内改行(LF)を含んだ文字列を設定しているのは、
ws['A1'].value = 'AAA\nBBB'
です。
つづく、折り返して全体を表示する設定、
ws['A1'].alignment = xl.styles.Alignment(wrapText=True)
をコメントアウトして、
import openpyxl as xlbk = xl.Workbook()
ws = bk.worksheets[0]ws['A1'].value = 'AAA\nBBB'
bk.save(r'c:\temp\foo.xlsx')
# ws['A1'].alignment = xl.styles.Alignment(wrapText=True)
を実行した場合には、下図のような状態になります。
この状態のときも、Excelで[ホーム]タブ-[配置]グループ-[折り返して全体を表示する]ボタンをOnにするなどの操作を行えば、セル内改行が行われます。
IDLEのShellウィンドウでも「\n」を確認しましょう
「\n」は、Pythonのエスケープシーケンスです。
OpenPyXLとは無関係なコードでも、もちろん挙動を確認できます。
IDLEのShellウィンドウで、LFのエスケープシーケンス「\n」を入れず、
print('AAABBB')
を実行した場合「AAABBB」が当然1行で出力され、
「\n」を途中に入れて、
print('AAA\nBBB')
を実行すれば、「AAA」と「BBB」が下図のように2行で出力されます。
最終更新日時:2023-05-07 17:36
- Newer:文字列を結合するCONCAT関数
- Older:4刷決まりました。ありがとうございます!!
Home » Python » OpenPyXLの使い方 » OpenPyXLでセル内改行を設定する