Excelは強力なデータ処理および分析ツールであり、大量のデータを保存できるだけでなく、複雑なデータ処理や可視化機能もサポートしています。Excelシートのデータを適切に表示する方法は、Excelファイル作成の重要な要素の一つです。これには、Excelセルの数値フォーマットの設定が含まれます。数値フォーマットは、データの美学的な表示(通貨、日付、パーセンテージなどの形式)だけでなく、データの読みやすさと正確性にも直接影響します。Python言語を使用することで、柔軟に Excelセルの数値フォーマット(表示形式) を設定し、データの一貫性と専門的な標準を保証できます。本記事では、Pythonを使用してExcelシートのセルの数値フォーマットを設定する方法を紹介します。
ここで使用する方法は、Spire.XLS for Pythonを必要とします。PyPI:pip install Spire.XLS
。
フォーマットコードを使用してExcelセルの数値フォーマットを設定する
Excelのセルの数値表示フォーマットは、フォーマットコードによって設定できます。これらのコードは、一連のシンボルによって、数値データ、時間と日付データ、および通貨データなどの表示方法を決定します。以下は一般的なフォーマットコードのシンボルです:
- #:数値プレースホルダーで、ゼロ以外の数字のみを表示します。
- 0:数値プレースホルダーで、数字がゼロでも少なくとも一つの位置を占めます。
- ;(セミコロン):正の数、負の数、およびゼロのフォーマットを区切るために使用します。
- /(スラッシュ):日付フォーマットで年、月、日を区切るために使用します。
- $:通貨記号で、システムの地域設定に応じて通貨の値を表示します。
- ()(括弧):負の数のフォーマットで、負の数を括弧内に表示します。
-
[](角括弧):条件付きフォーマット設定に使用します。例:
[Red]
は色の設定、[<=100]"Low";[>100]"High"
は条件式。
ライブラリには、CellRange.NumberValue
を使用してセルにデータを追加し、CellRange.NumberFormat
を使用してフォーマットコードでセルデータの数値表示フォーマットを設定する機能が提供されています。以下は、Pythonを使用してExcelセルの数値フォーマットを設定する操作手順です:
- 必要なモジュールをインポートする。
-
Workbook
インスタンスを作成し、Excelブックを作成する。 -
Workbook.Worksheets.Clear()
メソッドを使用してデフォルトのワークブックをクリアし、Workbook.Worksheets.Add()
メソッドを使用して新しいワークシートを作成する。 -
Worksheet.Range[].Text
プロパティを使用してヘッダーテキストを設定する。 -
Worksheet.Range[].NumberValue
プロパティを使用してセルデータを設定し、Worksheet.Range[].NumberFormat
を使用してフォーマットコードでセルの数値フォーマットを設定する。 -
CellRange.Style.Font
プロパティ下のプロパティを使用してフォントフォーマットを設定し、CellRange.AutoFitRows()
およびCellRange.AutoFitColumns()
メソッドを使用して行高と列幅を自動調整する。 -
Workbook.SaveToFile()
メソッドを使用してワークブックを保存する。 - リソースを解放する。
コード例
from spire.xls import *
from spire.xls.common import *
# Workbookインスタンスを作成
workbook = Workbook()
# デフォルトのワークシートをクリアして新しいワークシートを作成
workbook.Worksheets.Clear()
sheet = workbook.Worksheets.Add("数字フォーマット")
# タイトル行を設定
sheet.Range["B9"].Text = "数字フォーマット"
sheet.Range["C9"].Text = "数値"
sheet.Range["D9"].Text = "表示"
# カンマ区切りと小数点以下二桁の数値を設定
sheet.Range["B10"].Text = "カンマ区切りと小数点以下二桁の数値"
sheet.Range["C10"].Text = "-1234123.5678"
sheet.Range["D10"].NumberValue = -1234123.5678
sheet.Range["D10"].NumberFormat = "#,##0.00"
# 赤色の数値を設定
sheet.Range["B11"].Text = "赤色の数値"
sheet.Range["C11"].Text = "12345.12345"
sheet.Range["D11"].NumberValue = 12345.12345
sheet.Range["D11"].NumberFormat = "[Red]###0.00"
# 小数点以下二桁のパーセンテージを設定
sheet.Range["B12"].Text = "小数点以下二桁のパーセンテージ"
sheet.Range["C12"].Text = "0.12345"
sheet.Range["D12"].NumberValue = 0.12345
sheet.Range["D12"].NumberFormat = "0.00%"
# 括弧付きの数値を設定
sheet.Range["B13"].Text = "括弧付きの数値"
sheet.Range["C13"].Text = "-1234.5678"
sheet.Range["D13"].NumberValue = -1234.5678
sheet.Range["D13"].NumberFormat = "(###0.00;(###0.00))"
# 日付を設定
sheet.Range["B14"].Text = "日付"
sheet.Range["C14"].Text = "36526"
sheet.Range["D14"].NumberValue = 36526
sheet.Range["D14"].NumberFormat = "yyyy/m/d"
# 24時間制の時間を設定
sheet.Range["B15"].Text = "24時間制の時間"
sheet.Range["C15"].Text = "0.6"
sheet.Range["D15"].NumberValue = 0.6
sheet.Range["D15"].NumberFormat = "H:MM:SS"
# 日本語形式の通貨を設定
sheet.Range["B16"].Text = "日本語形式の通貨"
sheet.Range["C16"].Text = "1234.56"
sheet.Range["D16"].NumberValue = 1234.56
sheet.Range["D16"].NumberFormat = "¥#,##0.00"
# 科学的記数法を設定
sheet.Range["B17"].Text = "科学的記数法"
sheet.Range["C17"].Text = "1234.5678"
sheet.Range["D17"].NumberValue = 1234.5678
sheet.Range["D17"].NumberFormat = "0.00E+00"
# 日付と12時間制の時間を設定
sheet.Range["B18"].Text = "日付と12時間制の時間"
sheet.Range["C18"].Text = "36526"
sheet.Range["D18"].NumberValue = 36526
sheet.Range["D18"].NumberFormat = "yyyy/m/d h:mm:ss 午前/午後"
# テキスト付きの数値を設定
sheet.Range["B19"].Text = "テキスト付きの数値"
sheet.Range["C19"].Text = "1234.5678"
sheet.Range["D19"].NumberValue = 1234.5678
sheet.Range["D19"].NumberFormat = "\"JPY \"###0.00"
# フォント、フォントサイズを設定し、行列を自動調整
sheet.AllocatedRange.Style.Font.FontName = "Yu Gothic Medium"
sheet.AllocatedRange.Style.Font.Size = 13
sheet.AllocatedRange.AutoFitRows()
sheet.AllocatedRange.AutoFitColumns()
# ファイルを保存
workbook.SaveToFile("output/Excelセルの表示形式.xlsx", FileFormat.Version2016)
workbook.Dispose()
本記事では、Pythonを使用してExcelシートのセルの数値フォーマットを設定する方法を紹介しました。
より多くのExcelファイル処理のヒントについては、Spire.XLS for Pythonのチュートリアルをご覧ください。