pythonを使用してExcelファイルの操作を勉強しています。
本日の気づき(復習)は、セルの列幅(行の高さ)に関してです。
pythonでExcelを操作するため、openpyxlというパッケージを使用しています。
上記のようなブック「商品リストを」
この様な表に変更したいです。
Worksheet.column_dimensions
# 列の幅を変更
ws.column_dimensions[列名].width = 列の幅(単位:文字数)
# 行の高さを変更
ws.column_dimensions[行番名].height = 行の高さ(単位:ポイント)
openpyxlには、行と列の幅をセルの文字数に合わせて
自動で変更してくれる機能はないようなので
個別に設定していきます。
列名なので
A,B,C....のようなアルファベット表記での指定が必要です。
逆に行番号の場合は
1,2,3,....のように数値を指定します。
最終的なコード
from openpyxl import load_workbook
wb = load_workbook('商品リスト.xlsx')
ws = wb.active
column_width = {'B': 3.5, 'C': 30, 'D': 8, 'E': 8, 'F': 8}
for col, width in column_width.items():
# 行の幅を変更
ws.column_dimensions[col].width = width
wb.save('商品リスト_幅変更.xlsx')
ポイントは
- 列名とそれに対応する幅をPython辞書で用意する
- 辞書のキーと値を取り出すためにitemsメソッドを使用する
ということでしょうか。
Python辞書便利ですね。
これからも何かとお世話になりそうです。