python openpyxlを使ってEXCELのセルの書式を変更する

python openpyxlを使ってEXCELのセルの書式を変更する

pythonで、ライブラリopenpyxlのnumber_formatを使用して、EXCELのセルの書式を変更するサンプルコードを記述してます。pythonのバージョンは3.8.5を使用してます。

環境

  • OS windows10 pro 64bit
  • python 3.8.5

openpyxlインストール

openpyxlをインストールされていない方は、pipでインストールしておきます。

pip install openpyxl

<出力結果>
Successfully installed et-xmlfile-1.0.1 jdcal-1.4.1 openpyxl-3.0.5

number_format使い方

number_formatを使用すると、EXCELのセルの書式を変更することが可能です。

import openpyxl

sheet1["A1"].number_format = 書式を指定

以下は、「sample.xlsx」を読み込んでセルの書式を変更する表示するサンプルコードとなります。

import openpyxl

# EXCLEファイル読み込み
wb = openpyxl.load_workbook("sample.xlsx")

# シートを選択
sheet1 = wb["Sheet1"]

# 少数2桁まで表示
sheet1["A1"].number_format = "0.00" 
sheet1["A1"] = 1234.567

# 文字列に変換 
sheet1["A2"].number_format = openpyxl.styles.numbers.FORMAT_TEXT
sheet1["A2"] = 1234

# 保存
wb.save('sample.xlsx')

実行結果

openpyxl.styles.numbersに指定できる定数は以下となります。

FORMAT_CURRENCY_EUR_SIMPLE
FORMAT_CURRENCY_USD
FORMAT_CURRENCY_USD_SIMPLE
FORMAT_DATE_DATETIME
FORMAT_DATE_DDMMYY
FORMAT_DATE_DMMINUS
FORMAT_DATE_DMYMINUS
FORMAT_DATE_DMYSLASH
FORMAT_DATE_MYMINUS
FORMAT_DATE_TIME1
FORMAT_DATE_TIME2
FORMAT_DATE_TIME3
FORMAT_DATE_TIME4
FORMAT_DATE_TIME5
FORMAT_DATE_TIME6
FORMAT_DATE_TIME7
FORMAT_DATE_TIME8
FORMAT_DATE_TIMEDELTA
FORMAT_DATE_XLSX14
FORMAT_DATE_XLSX15
FORMAT_DATE_XLSX16
FORMAT_DATE_XLSX17
FORMAT_DATE_XLSX22
FORMAT_DATE_YYMMDD
FORMAT_DATE_YYMMDDSLASH
FORMAT_DATE_YYYYMMDD2
FORMAT_GENERAL
FORMAT_NUMBER
FORMAT_NUMBER_00
FORMAT_NUMBER_COMMA_SEPARATED1
FORMAT_NUMBER_COMMA_SEPARATED2
FORMAT_PERCENTAGE
FORMAT_PERCENTAGE_00
FORMAT_TEXT