目次
使用環境
- OS:Windows 10 Pro(バージョン:20H2)
- 言語:Python(openpyxlライブラリ使用)
経緯
PythonでCSVファイルからデータを読み込むと、
**Excelに貼り付けた際、セルの表示形式が「標準」**になってしまうため、
自動で「ユーザー定義」形式(たとえば日付形式)に変えたいと考えました。
そこで、openpyxlでセルの表示形式を変更する方法について学びました。
解決方法:number_format
プロパティを使用する
openpyxlでは、セルオブジェクトの**number_format
属性**を使うことで、
自由にユーザー定義形式へ変更できます。
コード例(セルA1を「yyyy/mm/dd」形式に設定)
from openpyxl import Workbook
# ワークブックとワークシートの作成
wb = Workbook()
ws = wb.active
# セルA1に値を入力
ws["A1"] = "2024-05-01"
# セルA1の表示形式をユーザー定義で変更
ws["A1"].number_format = "yyyy/mm/dd"
# ファイル保存
wb.save("sample.xlsx")
コード解説
- ワークブックとワークシートを用意します。
- セルA1に**日付データ(文字列)**を入力します。
- **
number_format
プロパティを使って、「yyyy/mm/dd」**というユーザー定義形式に設定します。 - 最後にExcelファイルを保存します。
この操作により、Excel上ではA1セルが**「2024/05/01」**のような見た目に整形されます。
ポイントまとめ
number_format
に指定する文字列は、Excelで設定できるユーザー定義形式と同じルールです。- 例えば、
- 日付形式 →
"yyyy/mm/dd"
- 数値にカンマ →
"#,##0"
- パーセンテージ →
"0.00%"
などが使えます。
- 日付形式 →
- 特別なインポート(
is_builtin
やis_date_format
など)は不要です。ただし、必要に応じてインポートする場合もあります。
まとめ
Python(openpyxl)でセルの表示形式をユーザー定義に変更したい場合は、
- 対象セルに対して
.number_format = "書式文字列"
と設定するだけで簡単に実現できます。
Excelファイルをより見栄えよく整えたいときに非常に便利な機能です。
ここまでお読みいただき、誠にありがとうございました。