いつものようにセル内の文字を横書きにすると、
幅が広くなって見にくくなるときがあるんだけど…。
openpyxlでセル内の文字を縦書きにする方法は無いの?
あります!簡単にできますよ!
「縦書きにする方法」と
「斜め表示(垂直表示)にする方法」を
できるだけわかりやすく解説いたします!
【著者情報】
Python歴3年。
入社2年目の春に先輩が突然トンズラし、業務を半分肩代わりするハメに…。
今までの1.5倍の仕事をこなせるはずもなく、苦しむ毎日。
業務効率化を模索中にPythonと出合う。
業務とPythonの相性が良く、2倍以上の効率化を実現。現在も効率化を進行中。
openpyxlでセル内の文字を縦書きにするには
「textRotation」を使います。まずは実行見本をどうぞ。
実行見本
全コード
ひとまず全コードを網羅します。解説は後ほど行います。
import openpyxl
from openpyxl.styles import Alignment
wb = openpyxl.load_workbook('input.xlsx')
ws = wb['Sheet1']
ws['A1'].alignment = Alignment(textRotation = 255)
wb.save('output.xlsx')
ws['A1'].alignment = Alignment(textRotation = 255)
事前準備
- openpyxlのインストール
既存のエクセルファイルを編集するには「openpyxl」のインストールが必要です。
openpyxlのインストール方法
openpyxlを初めて使用する場合は、下記コードを入力・実行して、インストールしてください。
pip install openpyxl
※openpyxlを使用したことがある場合は、このインストール作業は不要です。
インストールに関する詳細や、インストールができなかった場合の対処法は下記記事で解説しております。
また、既存ファイルを開いて保存する方法など、基本解説も行っておりますのでご参考ください。
解説
※わかりやすさを重視しております。厳密には解釈が異なる場合がありますことをご了承ください。
インポート
セル内の文字を縦書きにするには、「Alignment」のインポートが必要です。
「Alignment」は「中央揃え」や「折り返して全体を表示」など、文字配置を変更する時に使います。
import openpyxl
from openpyxl.styles import Alignment
まずは上記2行を記述して、インポートを完了させましょう。
縦書き
ws['A1'].alignment = Alignment(textRotation = 255)
上記一文にて、指定したセル内の文字を縦書きにすることができます。
<テンプレ>
【 ワークシートが入った変数[‘セル名’].alignment = Alignment(textRotation = 255) 】
※()内の数字ですが、縦書きにする場合は「255」にしてください。
「セルを結合」を合わせて使うことで、さらに見やすい資料になる場合があります。
下記記事で解説しておりますので、ご参考ください。
その他の表示方法
前項では、セル内の文字を縦書きに表示させましたが、
「右上がり45度」や、「垂直」に表示させることもできます。
ws['A1'].alignment = Alignment(textRotation = 45)
ws['B1'].alignment = Alignment(textRotation = 135)
ws['C1'].alignment = Alignment(textRotation = 90)
ws['D1'].alignment = Alignment(textRotation = 180)
()内の数字は、0~180であれば自由に指定することができます(15や99など)
※縦書きなら「255」、斜めや垂直なら「0~180」です。
- 45:A1のように右上がり45度
- 135:B1のように右下がり45度
- 90:C1のように下から上に向かって垂直表示
- 180:D1のように上から下に向かって垂直表示
通常の横書きに戻したい場合は、「textRotation = 0」にしてください。
セル内の文字を中央揃えにすることで、さらに体裁が整います。
中央揃えにする方法は、下記記事で解説しておりますのでご参考ください。
うまく動作しない時
エラーが出る
No such file or directory: ○○
これは、読み込むファイルやフォルダが見つからないというエラーです。
読み込むファイルのファイル名と構文のファイル名が一致しているか確認しましょう。
詳しい解説は、下記記事をご参考ください。
Permission denied: ○○
操作しようとしているファイルにアクセスできないというエラーです。
「ファイルを開いている状態なので編集できない」と言っていることが多いので、開いていれば閉じて再度トライしましょう。
詳しい解説は、下記記事をご参考ください。
Worksheet ○○ does not exist
「指定したシートがありません」というエラーです。
指定のシート名が間違っていないか、「sheet1」など先頭が小文字になっていないか確認しましょう。
詳しい解説は、下記記事をご参考ください。
○○ is not defined
今まで出てきていない変数などを処理しようとした時に出るエラーです。
変数名などが間違っていないかチェックしましょう。
詳しい解説は、下記記事をご参考ください。
その他のエラー
その他のエラーが出た場合は、エラー文をコピーしてNETで検索してみましょう。
最後に
openpyxlでセル内の文字を縦書きにする方法を解説いたしました。
縦書きや垂直表示を組み込んで、見やすい資料を作りましょう!
当ブログでは、Pythonに関する情報を配信しております。
この記事がわかりやすいと感じた方は、他の記事も読んでいってください。
最後までお読みいただき、ありがとうございました。がんばってください!