[Pythonでエクセル編集]セルの幅や高さを変更する方法

スポンサードリンク
sample Python
うたたねこ
うたたねこ

Pythonを使ってエクセルファイルを編集しているんだけど、
セルの幅が既定のままだと文字が全部見えない部分がある。
完成後に手動で幅を変更してるけど、
Pythonでセルの幅を変更する方法はないの?

そんなお悩みを、Python歴3年の私ができるだけわかりやすく解説し、解決に導きます。

スポンサードリンク

実行見本

スポンサードリンク

全コード

ひとまず全コードを網羅します。解説は後ほど行います。

import openpyxl

wb = openpyxl.load_workbook('input.xlsx')
ws = wb['Sheet1']

ws.column_dimensions['B'].width = 20
ws.row_dimensions[2].height = 30

wb.save('input.xlsx')

>>6.ws.column_dimensions[‘B’].width = 20
>>7.ws.row_dimensions[2].height = 30

スポンサードリンク

事前準備

  • openpyxlのインストール

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

openpyxlのインストール方法

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

pip install openpyxl

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

スポンサードリンク

解説

セルの幅(列の幅)を変更

>>6.ws.column_dimensions[‘B‘].width = 20

この一文でセルの幅を変更することができます。

[]内は「変更したい列」を指定し、右辺は「変更した後のセルの幅」を記述します。

【 ワークシート変数.column_dimensions[‘変更したい列‘].width = 変更した後のセルの幅 】

セルの高さ(行の高さ)を変更

今度は高さを変更する方法です。

>>7.ws.row_dimensions[2].height = 30

幅の変更と同じく、[]内は「変更したい行」を指定し、右辺は「変更した後のセルの高さ」を記述します。

【 ワークシート変数.row_dimensions[変更したい行].height = 変更した後のセルの高さ 】

幅の変更は「column_dimensions」でしたが、高さの変更は「row_dimensions」と記述します。

幅や高さのサイズについて

うたたねこ
うたたねこ

ここまでの「解説」と「実行見本」を見て思ったんだけど、
幅のサイズが20、高さが50になっているのに、
幅の方が広いのはなぜ?

実は、高さサイズの基準が違うんです。

【幅】
ws.column_dimensions[‘B’].width = 20
20は文字数のことで、半角20文字(全角で10文字)が納まる幅になっています。

【高さ】
ws.row_dimensions[2].height = 30
30はポイント(pt)です。
 エクセルで資料を作る際、文字の大きさをポイントで調整するかと思います。
 30なら30ptの文字が納まる高さになっています。

その他の解説

既存ファイル操作の基本解説は下記記事で行っております。ご参考ください。

https://utataneblog760.com/011openpyxl/
Pythonで既存のエクセルファイルに書き込み保存する方法

スポンサードリンク

うまく動作しない時

エラーが出る

No such file or directory: ○○

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

Permission denied: ○○

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

Worksheet ○○ does not exist

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

list index out of range

規定を超える部分を操作しようとした時に出るエラーです。
今回の場合では、実際にないSheet3(シート番号2)などを指定した場合にも起こります。
ファイルとコードを再確認しましょう。

その他のエラー

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

スポンサードリンク

まとめ

Pythonでエクセルファイルのセルの幅を変更する方法を解説いたしました。

セルの幅変更は、「ws変数.column_dimensions[‘列’].width = ○○」と覚えてください。

最後までお読みいただき、ありがとうございました。

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