はじめに
こんにちは。風助です。
今回はセルの高さ、幅を変える方法について書いていきます。

.row_dimensionsで高さを変える
まずは高さから。
import openpyxl
wb = openpyxl.Workbook()
ws = wb.active
ws.row_dimensions[2].height = 50
wb.save('test.xlsx')
コードはこちら。
ワークブックとワークシートを指定します。
大かっこで行を指定し、高さを意味するheightを加えます。
そしてイコールの後ろに高さを入れます。
このコードを実行するとこうなります。

高さが変わりましたね。
ちょっと実験。
rowに幅を指定したらどうなるのでしょうか。
import openpyxl
wb = openpyxl.Workbook()
ws = wb.active
ws.row_dimensions[2].width = 50
wb.save('test.xlsx')
こんなコードです。動かしてみましょう。

なるほど何も変わらない。なるほどな。そりゃそうだ。
.column_dimensionsで幅を変える
次は横幅。
import openpyxl
wb = openpyxl.Workbook()
ws = wb.active
ws.column_dimensions['C'].width = 50
wb.save('test.xlsx')
コードはこちら。これを実行するとこうなります。

Cの列の横幅が変わりましたね。
基本的なことは.row_dimensionsと一緒です。
違うのは大かっこの中身と幅を意味するwidthを付けること。
こちらでも実験。
columnに高さを指定するとどうなるのか。試してみました。
import openpyxl
wb = openpyxl.Workbook()
ws = wb.active
ws.column_dimensions['C'].height = 50
wb.save('test.xlsx')
こういうコードを動かしてみました。

少し幅が変わりました。

実際の幅は12.36となっています。
どういうロジックなのか分からん。なんだこれ。
実際には使いどこないですかね。時間に余裕あるときにどういうルールなのか検証するのもアリかもしれん。

おわりに
今回はセルの高さ、幅の変更方法について書きました。
Excelは高さと幅の単位が違います。
高さはポイントなのに対し、幅は表示可能な文字の数で表されます。
なので同じ高さ、幅で指定したはずなのになぜかサイズが合わないということが起きます。
そこは何回も繰り返すことで感覚をつかむしかないと思います。
皆さんの快適なPythonライフの参考になると嬉しいです。
では次回までさようなら。
コメント