Home » Python » OpenPyXLの使い方 » OpenPyXLでセル内改行を設定する

OpenPyXLでセル内改行を設定する

動作検証バージョン:Windows 10 + Python 3.7.3 + OpenPyXL 2.6.2

OpenPyXLのload_workbook()関数でフルパスを指定する方法を記事にしました。

おそらくエスケープシーケンスをご存知なかったのでしょうから、セル内改行のエスケープシーケンスも、確認しておくほうが良さそうに感じます。

Excelのセル内改行(LF)のエスケープシーケンスは、「\n」です。

セル内改行を確認するサンプル

以下のようなスクリプトを実行してから、C:\temp\foo.xlsxブックを開いてみてください。

import openpyxl as xl

bk = xl.Workbook()
ws = bk.worksheets[0]

ws['A1'].value = 'AAA\nBBB'
ws['A1'].alignment = xl.styles.Alignment(wrapText=True)

bk.save(r'c:\temp\foo.xlsx')

下図のとおりA1セルに文字列「AAABBB」が入力され、AとBの間でセル内改行されていることを確認できます。

実際にセル内改行させるには書式設定が必要

セル内改行(LF)を含んだ文字列を設定しているのは、

ws['A1'].value = 'AAA\nBBB'

です。
つづく、折り返して全体を表示する設定、

ws['A1'].alignment = xl.styles.Alignment(wrapText=True)

をコメントアウトして、

import openpyxl as xl

bk = xl.Workbook()
ws = bk.worksheets[0]

ws['A1'].value = 'AAA\nBBB'
# ws['A1'].alignment = xl.styles.Alignment(wrapText=True)

bk.save(r'c:\temp\foo.xlsx')

を実行した場合には、下図のような状態になります。

この状態のときも、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

[スポンサードリンク]

Home » Python » OpenPyXLの使い方 » OpenPyXLでセル内改行を設定する

「OpenPyXLの使い方」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.