【openpyxl】セルの文字を縮小して全体を表示【Python初心者向け】

スポンサードリンク
Python
過去の自分
過去の自分

opnepyxlでエクセルファイルを編集しているんだけど、
文字がセルからはみ出して切れてしまったから、全体を表示させたい…。

実行前の画像
今の自分
今の自分

なるほど…。
では今回は、「openpyxlでセルの文字を縮小して全体を表示させる方法」
できるだけわかりやすく解説いたします。
また、「全セルの文字に適用する方法」も紹介いたしますので、
ぜひ最後まで読んでいってください。

著者情報
スポンサードリンク

openpyxlでセルの文字を縮小して全体を表示させる方法

「Alignment」に「shrinkToFit=True」を適用します。まずは全コードと実行結果をお見せします。
解説は後ほど行います。

全コード

import openpyxl
from openpyxl.styles import Alignment

wb = openpyxl.load_workbook('C:/Utatane/input.xlsx')
ws = wb['Sheet1']

ws['A1'].alignment = Alignment(shrinkToFit=True)

wb.save('C:/Utatane/output.xlsx')
ws['A1'].alignment = Alignment(shrinkToFit=True)

実行結果

実行見本

事前準備

  • openpyxlのインストール

既存のエクセルファイルを編集するには「openpyxl」のインストールが必要です。

openpyxlのインストール方法

openpyxlを初めて使用する場合は、下記コードを入力・実行して、インストールしてください。

pip install openpyxl

※openpyxlを使用したことがある場合は、このインストール作業は不要です。

インストールに関する詳細や、インストールができなかった場合の対処法は下記記事で解説しております。
また、既存ファイルを開いて保存する方法など、基本解説も行っておりますのでご参考ください。

解説

※わかりやすさを重視しております。厳密には解釈が異なる場合がありますことをご了承ください。

インポート~ブック・シートの取得

import openpyxl
from openpyxl.styles import Alignment

wb = openpyxl.load_workbook('C:/Utatane/input.xlsx')
ws = wb['Sheet1']

上記コードにて、エクセル操作に必要な「openpyxl」のインポートと、エクセルブック・シートを取得しています。
詳細は、「インストール方法」の記事をご参考ください。

コードの2行目は、今回の「縮小して全体を表示」という書式設定に必要な「Alignment」という機能を使うためのインポートですので、忘れず記述しましょう。

セルの文字を縮小して全体を表示

ws['A1'].alignment = Alignment(shrinkToFit=True)

上記一文にて、セルに「縮小して全体を表示」という書式を適用しています。

【コードの解説】
ワークシートを取得した変数(今回はws)を書いたら [] を書きます。
[]内には、縮小して全体を表示させたいセルの名前を記述しましょう。

【注意点】
[]内に記述したセル名は、「’(クォーテーション)」で囲ってください。
囲わないと、変数と判断されてうまく動作しません。

[]の後ろには、「.alignment = Alignment(shrinkToFit=True)」を書きます。

これで指定したセルの文字(今回はA1)が縮小され全体が表示されます。

【注意点】
「Alignment(shrinkToFit=True)」は大文字と小文字が混在していますので注意してください。
全部小文字にすると動作しません。

ここまで1つのセルの文字を縮小して全体を表示する方法を解説いたしました。
しかしながら、全てのセルの文字を縮小した場合もあるかと思います。
次項をご覧ください。

スポンサードリンク

全セルの文字を縮小して全体を表示させる方法

import openpyxl
from openpyxl.styles import Alignment

wb = openpyxl.load_workbook('C:/Utatane/input.xlsx')
ws = wb['Sheet1']

for row in ws :
    for cell in row :
        cell.alignment = Alignment(shrinkToFit=True)

wb.save('C:/Utatane/output.xlsx')

上記コードを実行することで、「Sheet1」内の全セルの文字に「縮小して全体を表示する」を適用することができます。
実行結果が下図です。

全セル適用の実行結果

for文を使用し、セルを1つ1つ取得して適用しているだけで、あとは前項で解説した内容と同じです。
for文については下記記事をご参考ください。

スポンサードリンク

うまく動作しない場合の対処法

エラーが出る

No such file or directory: ○○

これは、読み込むファイルやフォルダが見つからないというエラーです。
読み込むファイルのファイル名と構文のファイル名が一致しているか確認しましょう。

詳しい解説は、下記記事をご参考ください。

Permission denied: ○○

操作しようとしているファイルにアクセスできないというエラーです。
ファイルを開いている状態なので編集できない」と言っていることが多いので、開いていれば閉じて再度トライしましょう。

詳しい解説は、下記記事をご参考ください。

Worksheet ○○ does not exist

「指定したシートがありません」というエラーです。
指定のシート名が間違っていないか、「sheet1」など先頭が小文字になっていないか確認しましょう。

詳しい解説は、下記記事をご参考ください。

○○ is not defined

今まで出てきていない変数などを処理しようとした時に出るエラーです。
変数名などが間違っていないかチェックしましょう。

詳しい解説は、下記記事をご参考ください。

その他のエラー

その他のエラーが出た場合は、エラー文をコピーしてNETで検索してみましょう。

スポンサードリンク

最後に

openpyxlでセルの文字を縮小して全体を表示させる方法を解説いたしました。

当ブログでは、Pythonに関する情報を配信しております。
この記事がわかりやすいと感じた方は、他の記事も読んでいってください。

挫折せずにPythonを独学で学習する方法は特におすすめです。

最後までお読みいただき、ありがとうございました。がんばってください!

タイトルとURLをコピーしました