Python で Excel セルに複数のフォントスタイルを適用する

データ処理およびレポート生成のシナリオにおいて、Excel ファイルの書式設定は重要な要素となります。適切なフォント書式は、表の可読性を向上させるだけでなく、重要なデータを強調する役割も果たします。この記事では、無料の Python ライブラリ「[Free Spire.XLS for Python](https://www.e-iceblue.com/Introduce/free-xls-for-python.html)」を使用して、Excel セルにフォントスタイル、色、サイズ、特殊効果など様々なフォント形式を柔軟に適用する方法を詳細に解説します。
* [無料の Python Excel ライブラリ](#無料の-python-excel-ライブラリ-導入とインストール方法)
* [例 1: Python で異なるセルに異なるフォントを適用する方法](#例-1-python-で異なるセルに異なるフォントを適用する方法)
* [例 2: Python で 1 つのセル内に複数のフォントを適用する方法]()

## 無料の Python Excel ライブラリ (導入とインストール方法)
Free Spire.XLS for Python は、個人開発者、学生、および小規模プロジェクト（[ページ制限あり](https://www.e-iceblue.com/Introduce/free-xls-for-python.html)）向けに設計された無料の Excel 操作ライブラリです。このライブラリは基本的な Excel 操作と書式設定をサポートしています：
* 🖌️ 同一セル内に異なるフォント、色、フォントサイズを適用する
* 📊 Microsoft Excel のインストールを不要にする
* 🚀 数式、グラフ、ピボットテーブルなどの高度な機能に対する充実した API サポート

Free Spire.XLS for Python をインストールするには、以下のコマンドを直接実行します：
```
pip install Spire.Xls.Free
```


## 例 1: Python で異なるセルに異なるフォントを適用する方法
**`CellRange.Style.Font`** プロパティを使用すると、開発者は指定したセル内のデータのフォントを設定できます。具体的には、フォント名、フォント色、テキストサイズ、およびテキストスタイル（太字、斜体、下線など）を設定できます。

Python コード：
```python
from spire.xls import *
from spire.xls.common import *
 
# Excel ワークブックを作成する
workbook = Workbook()
 
# 最初のワークシートを取得する
sheet = workbook.Worksheets[0]
 
# フォント名を設定する
sheet.Range["A1"].Value = "フォント名： MS Gothic"
sheet.Range["A1"].Style.Font.FontName = "MS Gothic"
 
# フォントサイズを設定する
sheet.Range["A3"].Value = "フォントサイズ： 15"
sheet.Range["A3"].Style.Font.Size = 15
 
# フォント色を設定する
sheet.Range["A5"].Value = "フォント色：赤"
sheet.Range["A5"].Style.Font.Color = Color.get_Red()
 
# フォントを太字にする
sheet.Range["C1"].Value = "フォントスタイル：太字"
sheet.Range["C1"].Style.Font.IsBold = True;
 
# フォントを斜体に設定する
sheet.Range["C2"].Value = "フォントスタイル：斜体"
sheet.Range["C2"].Style.Font.IsItalic = True
 
# 下線を追加する
sheet.Range["C4"].Value = "フォントスタイル：下線"
sheet.Range["C4"].Style.Font.Underline = FontUnderlineType.Single
 
# 打ち消し線を追加する
sheet.Range["C5"].Value = "フォントスタイル：打ち消し線"
sheet.Range["C5"].Style.Font.IsStrikethrough = True
 
# 列幅を設定する
sheet.Columns[0].ColumnWidth = 30
sheet.Columns[2].ColumnWidth = 25
 
# Excel ファイルを保存する
workbook.SaveToFile("ExcelFont.xlsx", ExcelVersion.Version2016)
workbook.Dispose()
```

生成ドキュメント：
![CellFont.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2811193/301eadf1-ed2b-4b61-a78f-2a409c2dd81a.png)


## 例 2: Python で 1 つのセル内に複数のフォントを適用する方法
1. 環境準備： Spire.XLS ライブラリのコアモジュールと共通コンポーネントをインポートする
1. ワークブック作成： Excel ドキュメントを初期化し、最初のワークシートを取得する
1. フォントスタイルの定義：
    * **フォント 1**：MS ゴシック、青色、13pt、太字
    * **フォント 2**：メイリオ、赤色、16pt、太字斜体
1. リッチテキストコンテンツの設定：
    * セル A1 に希望のテキストを入力する
    * **`SetFont()`** メソッドを使用して、テキストの異なる部分に異なるフォントを適用する
1. ファイルの保存： `SaveToFile()` メソッドを使用して結果ファイルを保存する

Python コード：
```python
from spire.xls import *
from spire.xls.common import *
 
# Excel ワークブックを作成する
workbook = Workbook()
 
# 最初のワークシートを取得する
sheet = workbook.Worksheets[0]
 
# フォント 1 を作成する
font1 = workbook.CreateFont()
font1.FontName = "MS Gothic"
font1.KnownColor = ExcelColors.Blue
font1.IsBold = True
font1.Size = 13
 
# フォント 2 を作成する
font2 = workbook.CreateFont()
font2.KnownColor = ExcelColors.Red
font2.IsBold = True
font2.IsItalic = True
font2.FontName = "Meriyo"
font2.Size = 16
 
# 指定したセルから RichText オブジェクトを取得する
richText = sheet.Range["A1"].RichText
 
# RichText オブジェクトのテキストを設定する
richText.Text = "同一セル，異なるフォント書式"
 
# 指定した文字範囲にフォント 1 を適用する
richText.SetFont(0, 4, font1)
 
# 指定した文字範囲にフォント 2 を適用する
richText.SetFont(5, 13, font2)
 
# 列幅を設定する
sheet.Columns[0].ColumnWidth = 45
 
# Excel ファイルに保存する
workbook.SaveToFile("DifferentFonts.xlsx", ExcelVersion.Version2016)
workbook.Dispose()
```

生成ドキュメント：
![CellMultiFont.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2811193/0b0886b5-afdb-4e00-9426-1167bca51820.png)

* * *
この記事の段階的なチュートリアルとコード例を通じて、セルフォントの微細制御を素早く習得できます。これにより、レポートの美化やデータ注釈などの基本的なニーズを満たすことが可能になります。