2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Python】セルのnumber_format属性を使ってセルの表示形式を変更する。

Posted at

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

image.png

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

image.png

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

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')

入荷日の列幅を変更しないとちゃんと表示してくれなかったので
ついでに他の列幅も変更しちゃいました。

表示形式を変えるときは注意しないといけないですね。

2
3
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
2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?