OpenPyXL Pythonでエクセル操作 – 行の高さと列の幅の指定方法

OpenPyXL

OpenPyXLを使って、行の高さと列の幅の指定と変更を行います。

import openpyxl

# ワークブックを開く
wb = openpyxl.Workbook()

# アクティブシートを取得
sh = wb.active

# 行の高さを取得/指定
row_height = sh.row_dimensions[1].height
print(row_height)           # None
sh.row_dimensions[2].height = 20
row_height = sh.row_dimensions[2].height
print(row_height)           # 20

# 列の幅を取得/指定
column_width = sh.column_dimensions["A"].width
print(column_width)         # 13
sh.column_dimensions["B"].width = 20
column_width = sh.column_dimensions["B"].width
print(column_width)         # 20

# ワークブック保存
wb.save('file.xlsx')

# ワークブックを閉じる
wb.close()

プログラムのコードを最初から見ていきます。

import openpyxl

openpyxlをインポートします。これをしないとopenpyxlのモジュールが使えません

# ワークブックを開く
wb = openpyxl.Workbook()

openpyxlモジュールの、Workbook()関数を使い、新規のエクセルファイルを作成します。

新規のエクセルファイル作成と同時にシート名が”Sheet”が自動で作成されます。

# アクティブシートを取得
sh = wb.active

アクティブのシートを取得します。このエクセルファイルには”Sheet”のみしか入っていないため、このシートのオブジェクトが入ります。

# 行の高さを取得/指定
row_height = sh.row_dimensions[1].height
print(row_height)           # None
sh.row_dimensions[2].height = 20
row_height = sh.row_dimensions[2].height
print(row_height)           # 20

row_dimensions[ ].heightで行の高さの情報を取得します。[ ]の中には行を指定します。行は0からではなく、1から始まる点が注意です。

sh.row_dimensions[1].heightで1行目の行の高さを取得します。

print(row_height) するとわかりますが、Noneが出力されます。行の高さは指定しない場合、Noneとなります。

row_dimensions[2].height = 20で、2行目の行の高さを20で指定します。

# 列の幅を取得/指定
column_width = sh.column_dimensions["A"].width
print(column_width)         # 13
sh.column_dimensions["B"].width = 20
column_width = sh.column_dimensions["B"].width
print(column_width)         # 20

column_dimensions[“A”].widthで列の幅の情報を取得します。[ ]の中には列を指定します。列は0からではなく、1から始まる点が注意です。

sh.column_dimensions[“A”].widthでA列目(1列目)の列の幅を取得します。

print(column_width) するとわかりますが、13が出力されます。行はNoneで出力されますが、列はデフォルトの初期値は13です。

sh.column_dimensions[“B”].width = 20で、B列目(2列目)の列の幅を20で指定します。

以上となります。

OpenPyXLの他の関数の使い方について知りたい場合は下記記事が非常に参考になります。

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