1
1

More than 3 years have passed since last update.

【Python】 Worksheet.column_dimensions列幅(行の高さ)を調整する。

Last updated at Posted at 2021-03-17

pythonを使用してExcelファイルの操作を勉強しています。
本日の気づき(復習)は、セルの列幅(行の高さ)に関してです。
pythonでExcelを操作するため、openpyxlというパッケージを使用しています。

image.png

上記のようなブック「商品リストを」

image.png

この様な表に変更したいです。

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辞書便利ですね。
これからも何かとお世話になりそうです。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1