チュートリアル
簡単にライブラリーを使用するためのチュートリアルコレクション

Excel ワークシートのセルに数値書式を設定することは、データ管理や可視化において欠かせない作業です。適切な数値書式を設定することで、データの可読性が向上し、一貫性が保たれ、正確なデータ分析を行いやすくなります。通貨、パーセンテージ、日付、科学的記数法など異なる種類の数値データを直感的に区別できるため、大量のデータを一目で理解しやすくなります。この記事では、Python プログラムで Spire.XLS for Python を使用して Excel ワークシートのセルに数値書式を自動設定する方法 を解説します。
この操作には、Spire.XLS for Python と plum-dispatch v1.7.4 が必要です。これらは、Spire.XLS for Python の公式ウェブサイトから手動でダウンロードするか、以下の pip コマンドでインストールできます。
pip install Spire.XLS
Excel では、セルの数値書式は「書式コード」によって決まります。開発者は書式コードの中でさまざまな記号を利用して、数値、日付や時刻、通貨などの表示形式を定義できます。以下は代表的な記号です:
Spire.XLS for Python では、セルに数値を設定するために CellRange.NumberValue プロパティを、数値書式を設定するために CellRange.NumberFormat プロパティを使用します。
以下のコード例では、数値、パーセンテージ、通貨、日付、時刻、科学的記数法など、さまざまな数値書式をセルに適用する方法を示します。
from spire.xls import *
from spire.xls.common import *
# Workbook を作成
workbook = Workbook()
# 最初のワークシートを取得
sheet = workbook.Worksheets.get_Item(0)
# ヘッダー行を設定
sheet.Range["B9"].Text = "数値書式"
sheet.Range["C9"].Text = "値"
sheet.Range["D9"].Text = "表示"
# 桁区切りと小数点付きの数値
sheet.Range["B10"].Text = "桁区切りと小数点付きの数値"
sheet.Range["C10"].Text = "-1234.5678"
sheet.Range["D10"].NumberValue = -1234.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"
# 小数点以下2桁のパーセンテージ
sheet.Range["B12"].Text = "小数点以下2桁のパーセンテージ"
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"
# 時刻
sheet.Range["B15"].Text = "時刻"
sheet.Range["C15"].Text = "0.5"
sheet.Range["D15"].NumberValue = 0.5
sheet.Range["D15"].NumberFormat = "h:mm:ss AM/PM"
# 日本円形式の通貨
sheet.Range["B16"].Text = "日本円形式の通貨"
sheet.Range["C16"].Text = "1234.56"
sheet.Range["D16"].NumberValue = 1234.56
sheet.Range["D16"].NumberFormat = "¥#,##0.00"
# 科学的記数法
sheet.Range["B18"].Text = "科学的記数法"
sheet.Range["C18"].Text = "1234.5678"
sheet.Range["D18"].NumberValue = 1234.5678
sheet.Range["D18"].NumberFormat = "0.00E+00"
# 日付と時刻
sheet.Range["B19"].Text = "日付と時刻"
sheet.Range["C19"].Text = "36526"
sheet.Range["D19"].NumberValue = 36526
sheet.Range["D19"].NumberFormat = "yyyy/m/d h:mm:ss AM/PM"
# テキスト付きの数値
sheet.Range["B20"].Text = "テキスト付きの数値"
sheet.Range["C20"].Text = "1234.56"
sheet.Range["D20"].NumberValue = 1234.5678
sheet.Range["D20"].NumberFormat = "\"円 \"#,##0.00"
# フォントサイズを設定し、行と列を自動調整
sheet.AllocatedRange.Style.Font.Size = 13
sheet.AllocatedRange.AutoFitRows()
sheet.AllocatedRange.AutoFitColumns()
# ファイルを保存
workbook.SaveToFile("output/SetNumberFormatExcel.xlsx", FileFormat.Version2016)
workbook.Dispose()
適切な数値書式を設定することは、値を直感的に理解できるように表示するための基盤であり、プロフェッショナルな Excel レポートを作成する第一歩です。
生成された Excel ファイルのプレビュー:

数値書式は、Excel セル内の数値表示を制御します。Excel レポートをより見やすく、プロフェッショナルなものに仕上げるには、数値だけでなく書式設定にもしっかり取り組むことが重要です。さらに詳しい書式設定の方法については、「Python で Excel の書式を設定する方法」をご参照ください。
Excel セルに数値書式を設定することで、データはより直感的でわかりやすく表示され、ビジネスレポートの品質も大きく向上します。Python と Spire.XLS を活用すれば、手作業では時間のかかる書式設定も自動化でき、効率的かつ一貫性のあるレポート作成が可能になります。
数値の見せ方は単なる装飾ではなく、データを正しく伝えるための重要な要素です。ぜひ今回紹介した方法を活用し、よりプロフェッショナルな Excel レポートを作成してみてください。なお、すべての機能を利用する場合は 無料の一時ライセンスを申請する か、まずは 無料版をダウンロードする ことをおすすめします。

スプレッドシートを扱う際は、データそのものと同じくらい「見やすさ」も重要です。整った書式の Excel ファイルは、分析・共有・プレゼンテーションをよりスムーズにします。Excel 上で手作業でスタイルを整える代わりに、Python を使った Excel 書式設定 で自動化することで、作業時間を大幅に削減できます。
本記事では、ライブラリ Spire.XLS for Python を利用して Python で Excel を書式設定する方法 を紹介します。基礎的な書式設定から応用、さらに実際のレポート事例までをカバーし、効率的に操作できる主要なクラスやプロパティも解説します。
内容一覧:
Excel を手作業で整えるのは時間がかかります。特に大規模なデータセットや動的にレポートを作成する場合は効率が悪くなります。Python による Excel 書式設定 を使うことで以下が可能になります:
Python を活用すれば、スプレッドシートにプロ仕様のスタイルを素早く適用できます。次に環境構築を見ていきましょう。
本記事のチュートリアルを進めるには、Excel ファイルを操作するために設計されたライブラリ Spire.XLS for Python をインストールします。このライブラリは Excel 文書の作成、読み込み、編集、書式設定をプログラムで行うことができます。
pip でインストールします:
pip install Spire.XLS
Python スクリプトにインポートします:
from spire.xls import *
書式設定を始める前に、操作対象のワークブックを用意します。
新規作成:
workbook = Workbook()
sheet = workbook.Worksheets[0]
既存ファイルを読み込み:
workbook = Workbook()
workbook.LoadFromFile("入力.xlsx")
sheet = workbook.Worksheets[0]
書式設定を適用した後は保存します:
workbook.SaveToFile("output/書式設定済み出力.xlsx", ExcelVersion.Version2016)
準備ができたら書式設定の実例を見ていきます。
応用操作に進む前に、まず Excel 書式設定の基本をマスターしましょう。フォント、配置、罫線、背景色、列幅や行の高さ調整といった基本機能は、見やすく整ったスプレッドシートを作る土台となります。これらを理解しておくことで、複雑なスタイルも柔軟に組み合わせられるようになります。
フォントの種類やサイズ、色、太字などを変更するのは最も頻繁に行う操作の一つです。Spire.XLS for Python では CellRange.Style.Font オブジェクトを通して制御します。
cell = sheet.Range[2, 2]
cell.Text = "書式設定の例"
cell.Style.Font.FontName = "メイリオ"
cell.Style.Font.Size = 14
cell.Style.Font.Color = Color.get_Blue()
cell.Style.Font.IsBold = True
セル内の文字をスタイル属性で直接変更できます。
配置は HorizontalAlignment と VerticalAlignment プロパティで制御し、WrapText で長文をセル内に収めます。
cell = sheet.Range[4, 2]
cell.Text = "中央配置かつ折り返し表示"
cell.Style.HorizontalAlignment = HorizontalAlignType.Center
cell.Style.VerticalAlignment = VerticalAlignType.Center
cell.Style.WrapText = True
長い文字列でも読みやすく整列します。
Style.Borders コレクションで各辺に個別に罫線を設定できます。
cell = sheet.Range[6, 2]
cell.Text = "罫線の例"
cell.Style.Borders[BordersLineType.EdgeBottom].LineStyle = LineStyleType.Thin
cell.Style.Borders[BordersLineType.EdgeBottom].Color = Color.get_Black()
下側に黒の細線を追加します。
背景色は Style.Color で設定し、見出しや重要項目を強調する際によく使います。
cell = sheet.Range[8, 2]
cell.Text = "背景色セル"
cell.Style.Color = Color.get_Yellow()
セルが目立つように塗りつぶされます。
文字や罫線だけでなく、列幅や行高を調整することで見やすさが向上します。
# 列幅を指定
sheet.Columns[1].ColumnWidth = 20
# 行の高さを指定
sheet.Rows[7].RowHeight = 20
また、内容に合わせて自動調整も可能です:
これによりデータが収まりやすく整った表になります。
実際の適用例は以下の通りです:

Pythonを使用したExcelのフォント設定についてさらに詳しく知りたい場合は、「PythonでExcelのフォントを設定・変更する方法」を参照してください。
個別のセルだけでなく範囲全体や再利用可能なスタイルも扱えます。セル範囲操作には CellRange、再利用スタイル定義には Workbook.Styles コレクションを使用します。
見出しやタイトルを作成する際に利用します。
range = sheet.Range[2, 2, 2, 4]
range.Merge()
range.Text = "四半期レポート"
range.Style.HorizontalAlignment = HorizontalAlignType.Center
range.RowHeight = 30
B2:D2 が結合され、中央揃えのタイトルが作成されます。
Excel には既定のスタイルが用意されており、Spire.XLS から直接適用できます。
range.BuiltInStyle = BuiltInStyles.Heading1
すぐに「見出し 1」スタイルが適用されます。
複数セルやシートに共通ルールを適用したい場合に有効です。
# カスタムスタイル作成
custom_style = workbook.Styles.Add("CustomStyle")
custom_style.Font.FontName = "游ゴシック"
custom_style.Font.Size = 12
custom_style.Font.Color = Color.get_DarkGreen()
custom_style.Borders[BordersLineType.EdgeTop].LineStyle = LineStyleType.MediumDashDot
# 適用
cell = sheet.Range[4, 2]
cell.Text = "カスタムスタイル適用"
cell.Style = custom_style
大規模データでも効率的にスタイル管理が可能です。
結合セル、組み込みスタイル、カスタムスタイルの例:

Excel データをグラフで見やすく整える方法については、Python で Excel ワークシートにグラフを追加する方法をご参照ください。
基礎と応用を見たところで、Excel 書式設定を可能にする 主要クラス・プロパティ・メソッド を整理します。これを理解すれば、柔軟で保守しやすいスクリプトを書けます。
| クラス / プロパティ / メソッド | 説明 |
|---|---|
| Workbook / Worksheet | Excel ファイルとシートを表す |
| Workbook.LoadFromFile() / SaveToFile() | Excel ファイルの読み込みと保存 |
| Workbook.Styles.Add() | 再利用可能なカスタムスタイルの作成 |
| CellRange | 1つ以上のセルを表し、書式設定を適用 |
| CellRange.Style | フォント、配置、罫線、背景色、折り返しなどの書式情報 |
| CellRange.Merge() | 複数セルを結合 |
| CellRange.BuiltInStyle | 組み込みスタイルを適用 |
| CellRange.BorderAround() / BorderInside() | 範囲外側または内側に罫線を適用 |
| CellRange.ColumnWidth / RowHeight | 列幅や行高を調整 |
| CellRange.NumberFormat | 数値や日付、通貨の表示形式を設定 |
これらを組み合わせることで、フォント、罫線、配置、色、数値形式などを効率よく管理できます。詳細は Spire.XLS for Python API リファレンス をご覧ください。
基礎と応用を学んだら、実際のケースに適用してみましょう。以下は 年間売上レポート を Python で生成する例です。地域ごとのデータを整理し、書式設定を組み合わせることで見やすくプロフェッショナルなレポートを作成します。
from spire.xls import *
workbook = Workbook()
sheet = workbook.Worksheets[0]
sheet.Name = "売上レポート"
# タイトル
title = sheet.Range[1, 1, 1, 7]
title.Merge()
title.Text = "2024 年年間売上レポート"
title.Style.Font.IsBold = True
title.Style.Font.Size = 16
title.Style.HorizontalAlignment = HorizontalAlignType.Center
title.Style.Color = Color.get_LightGray()
title.RowHeight = 30
# データ
data = [
["製品", "地域", "Q1", "Q2", "Q3", "Q4", "合計"],
["ノートPC", "北部", 1200, 1500, 1300, 1600, 5600],
["ノートPC", "南部", 1000, 1200, 1100, 1300, 4600],
["タブレット", "北部", 800, 950, 1000, 1200, 3950],
["タブレット", "南部", 700, 850, 900, 1000, 3450],
["スマートフォン", "北部", 2000, 2200, 2100, 2500, 8800],
["スマートフォン", "南部", 1800, 1900, 2000, 2200, 7900],
["アクセサリー", "全地域", 600, 750, 720, 900, 2970],
["", "", "", "", "", "総計", 39370]
]
for r in range(len(data)):
for c in range(len(data[r])):
sheet.Range[r+2, c+1].Text = str(data[r][c])
# ヘッダー書式
header = sheet.Range[2, 1, 2, 7]
header.Style.Font.IsBold = True
header.Style.Color = Color.get_LightBlue()
header.Style.HorizontalAlignment = HorizontalAlignType.Center
header.Style.Borders[BordersLineType.EdgeBottom].LineStyle = LineStyleType.Thin
# 数値列を通貨に設定
for row in range(3, 11):
for col in range(3, 8):
cell = sheet.Range[row, col]
if cell.Text.isdigit():
cell.NumberValue = float(cell.Text)
cell.NumberFormat = "¥#,##0"
# 総計を強調
grand_total = sheet.Range[10, 7]
grand_total.Style.Color = Color.get_LightYellow()
grand_total.Style.Font.IsBold = True
# 1行目と2列目までを固定
sheet.FreezePanes(3, 2)
# 自動整列しやすいように適切なフォントを設定
sheet.AllocatedRange.Style.Font.FontName = "Yu Gothic UI"
# 列幅を自動調整
sheet.AllocatedRange.AutoFitColumns()
workbook.SaveToFile("output/年間売上レポート.xlsx", ExcelVersion.Version2016)
このスクリプトではタイトル結合、ヘッダーの罫線や色、通貨形式、総計の強調、ウィンドウ枠の固定、自動列幅調整など複数の書式を組み合わせています。自動化により読みやすく一貫したレポートを作成できます。
最終的な出力例:

Python で Excel を書式設定することは、レポート作成を自動化し、データを見やすく提示する実践的な方法です。基本的なスタイルに加え、カスタムスタイルや列調整などの応用を組み合わせることで、洗練されたスプレッドシートを作成できます。
財務報告、研究データ、ビジネスダッシュボードなど、どのような場面でも Python による Excel 書式設定 は時間を節約しつつ品質を高めます。適切なスタイルやプロパティを使い分ければ、データだけでなくその伝え方もプロフェッショナルに仕上がります。
一時ライセンスを申請 して Spire.XLS for Python の全機能を試すか、Free Spire.XLS for Python を利用してすぐに始めることもできます。
はい。Python にはフォント、色、罫線、配置、条件付き書式などを Excel ファイルにプログラムで適用できるライブラリがあります。
Excel の書式設定には Spire.XLS for Python などのライブラリを使用できます。コードを通じてフォントの変更、配置の設定、列幅の調整、セルの結合、カスタムスタイルや組み込みスタイルの適用が可能です。
はい。Python は書式設定だけでなく、Excel ファイルの作成、読み込み、編集、保存も行えるため、動的なレポート作成やデータ自動化に役立ちます。
複数のブックやシートで書式ルールを統一するカスタムスタイルや再利用可能な関数を定義することです。これにより一貫性が保たれ、作業時間を短縮できます。
セルの結合とは、隣接する複数のセルを1つの大きなセルにまとめる操作です。結合されたセルは元のセルの内容やプロパティを引き継ぎます。この機能は、見出し行を作成したり、広い領域にデータを表示したい場合に非常に便利です。 一方、セルの結合解除は、結合されたセルを元の複数セルに戻す操作です。解除後のセルは独立した状態となり、それぞれ異なる内容を入力することができます。 このようなセルの結合・解除は、スプレッドシートで表のレイアウトや構造を柔軟に調整し、データの可読性を向上させるためによく使用されます。 本記事では、Spire.XLS for Python を使用して、PythonでExcelファイル内のセルを結合または結合解除する方法をご紹介します。
この操作には、Spire.XLS for Python と plum-dispatch v1.7.4 が必要です。これらは、Spire.XLS for Python の公式ウェブサイトから手動でダウンロードするか、以下の pip コマンドでインストールできます。
pip install Spire.XLS
Spire.XLS for Python を使用すると、特定の行または列のセルを簡単に結合することができます。以下はその手順です。
from spire.xls import Workbook, HorizontalAlignType, VerticalAlignType
inputFile = "Sample.xlsx"
outputFile = "output/行と列の結合.xlsx"
# Workbook クラスのオブジェクトを作成します
workbook = Workbook()
# サンプルの Excel ファイルをディスクから読み込みます
workbook.LoadFromFile(inputFile)
# このファイルの最初のワークシートを取得します
sheet = workbook.Worksheets
# Excel の最初の列を結合します
# sheet.Columns.Merge()
# Excel の最初の行を結合します
sheet.Rows.Merge()
# 結合されたセルのテキストを中央揃えにする
sheet.Rows.HorizontalAlignment = HorizontalAlignType.Center
sheet.Rows.VerticalAlignment = VerticalAlignType.Center
# 結果ファイルを保存します
workbook.SaveToFile(outputFile)
workbook.Dispose()

特定の列や行だけでなく、任意のセル範囲を結合することも可能です。以下の手順で行います。
from spire.xls import Workbook, HorizontalAlignType, VerticalAlignType
inputFile = "Sample.xlsx"
outputFile = "output/セル範囲の結合.xlsx"
# Workbook クラスのオブジェクトを作成します
workbook = Workbook()
# サンプルの Excel ファイルをディスクから読み込みます
workbook.LoadFromFile(inputFile)
# このファイルの最初のワークシートを取得します
sheet = workbook.Worksheets
# Excel の指定したセル範囲を結合します
sheet.Range["B2:C3"].Merge()
# 結合されたセルを揃える
sheet.Range["B2:C3"].HorizontalAlignment = HorizontalAlignType.Center
sheet.Range["B2:C3"].VerticalAlignment = VerticalAlignType.Center
# 結果ファイルを保存します
workbook.SaveToFile(outputFile)
workbook.Dispose()

Spire.XLS for Python を使えば、結合されたセルをいつでも元に戻すことが可能です。以下は特定の行または列のセルの結合を解除する手順です。
from spire.xls import Workbook
inputFile = "output/行と列の結合.xlsx"
outputFile = "output/行と列の結合解除.xlsx"
# Workbook クラスのオブジェクトを作成します
workbook = Workbook()
# サンプルファイルをディスクから読み込みます
workbook.LoadFromFile(inputFile)
# このファイルの最初のワークシートを取得します
sheet = workbook.Worksheets
# Excel の最初の列の結合を解除します
# sheet.Columns.UnMerge()
# Excel の最初の行の結合を解除します
sheet.Rows.UnMerge()
# ファイルに保存します
workbook.SaveToFile(outputFile)
workbook.Dispose()

特定のセル範囲の結合も以下の手順で簡単に解除できます。
from spire.xls import Workbook
inputFile = "output/セル範囲の結合.xlsx"
outputFile = "output/セル範囲の結合解除.xlsx"
# Workbook クラスのオブジェクトを作成します
workbook = Workbook()
# サンプルファイルをディスクから読み込みます
workbook.LoadFromFile(inputFile)
# このファイルの最初のワークシートを取得します
sheet = workbook.Worksheets
# Excel の指定したセル範囲の結合を解除します
sheet.Range["B2:C4"].UnMerge()
# ファイルに保存します
workbook.SaveToFile(outputFile)
workbook.Dispose()

結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。