pythonを使用してExcelファイルの操作を勉強しています。
本日の気づき(復習)は、セルの表示形式に関してです。
pythonでExcelを操作するため、openpyxlというパッケージを使用しています。
上記のようなブック「商品リストを」
この様な表に変更したいです。
number_format属性
cell.number_format = 'セルの表示形式'
number_format属性には表示したい形式を代入します。
代入する値はExcelの画面上で設定する時と同じようです。
- yyyy"年"mm"月"dd"日":年月日を表示
- hh"時"mm"分"ss"秒":時間を表示
- 0.00:小数点以下二桁で表示
- #,##0:三桁のカンマ区切り
- 0%:パーセント表示
代表的なものはこれくらいでしょうか。
最終的なコード
今回はセルの横幅も変更しています。
from openpyxl import load_workbook
wb = load_workbook('商品リスト.xlsx')
ws = wb.active
column_width = {'B': 3.5, 'C': 15, 'D': 20, 'E': 10, 'F': 10, 'G': 10}
for col, width in column_width.items():
ws.column_dimensions[col].width = width
for row in ws.iter_rows(min_col=3, max_col=7, min_row=3):
row[0].number_format = 'yyyy-mm-dd'
row[2].number_format = '#,##0'
row[3].number_format = '#,##0'
row[4].number_format = '0.0%'
wb.save('商品リスト_表示形式変更.xlsx')
入荷日の列幅を変更しないとちゃんと表示してくれなかったので
ついでに他の列幅も変更しちゃいました。
表示形式を変えるときは注意しないといけないですね。