C#でExcelのセルとワークシートの背景を設定する方法（.NET）

Excelドキュメントの設計やビジュアル調整において、セルやワークシートの背景を設定することは、視覚的な訴求力を高め、データの構造や論理性を際立たせる上で非常に有効です。**プログラムで背景色・パターン・グラデーションの設定や、ワークシート全体に背景画像を適用することで、スタイルの統一や企業テンプレートの自動化**が可能になります。

本記事では、**.NET環境でC#を用いてExcelセルとワークシートの背景を設定する方法**を、サンプルコード付きで詳しく解説します。

## 対応内容

- C#でExcelセルの背景を設定（単色 / パターン / グラデーション）
  - 単色背景の設定
  - パターン背景の設定
  - グラデーション背景の設定
- C#でExcelワークシートに背景画像を設定

使用ライブラリは、無料で利用可能な [Free Spire.XLS for .NET](https://jp.e-iceblue.com/introduce/free-spire-xls-for-net.html) です。NuGetから簡単にインストールできます。`Install-Package FreeSpire.XLS`

---

## C#でExcelセルの背景色を設定する

Spire.XLSライブラリの `CellRange.Style` プロパティを使えば、セルまたはセル範囲に対して背景色やパターン、グラデーションを自由に設定できます。

### 1. 単色背景を設定する

`CellRange.Style.Color` と `CellRange.Style.FillPattern` を使って、セルの背景を単色に設定できます。

**コード例：**

```csharp
using Spire.Xls;
using System.Drawing;

Workbook workbook = new Workbook();
Worksheet sheet = workbook.Worksheets[0];

CellRange cell = sheet.Range["B2"];
cell.Text = "単色背景";
cell.RowHeight = 30f;
cell.ColumnWidth = 20f;

cell.Style.FillPattern = ExcelPatternType.Solid;
cell.Style.Color = Color.LightGreen;

workbook.SaveToFile("output/CellSolidColor.xlsx", ExcelVersion.Version2016);
workbook.Dispose();
```

**出力結果：**
![C#でExcelセルに単色背景を設定](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/278784/3ae76963-0a5b-4f9d-b330-9e97daf9084d.png)

---

### 2. パターン背景を設定する

Spire.XLSでは、点線・グレースケール・レンガ模様など、さまざまな内蔵パターンを利用できます。
`FillPattern`、`Color`（背景色）、`PatternColor`（パターン色）を組み合わせて設定します。

**コード例：**

```csharp
using Spire.Xls;
using System.Drawing;

Workbook workbook = new Workbook();
Worksheet sheet = workbook.Worksheets[0];

CellRange cell = sheet.Range["B2"];
cell.Text = "パターン背景";
cell.RowHeight = 30f;
cell.ColumnWidth = 20f;

cell.Style.FillPattern = ExcelPatternType.Angle;
cell.Style.Color = Color.LightGray;      // 背景色
cell.Style.PatternColor = Color.Beige;   // パターン色

workbook.SaveToFile("output/CellPattern.xlsx", ExcelVersion.Version2016);
workbook.Dispose();
```

**出力結果：**
![C#でExcelセルにパターン背景を設定](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/278784/bb4358a6-ffa6-4d97-aa67-b58ad7c06910.png)

---

### 3. グラデーション背景を設定する

グラデーション背景は、`FillPattern`を`Gradient`に設定し、さらに `Interior.Gradient.ForeColor` と `BackColor` を指定します。

**コード例：**

```csharp
using Spire.Xls;
using System.Drawing;

Workbook workbook = new Workbook();
Worksheet sheet = workbook.Worksheets[0];

CellRange cell = sheet.Range["B2"];
cell.Text = "グラデーション背景";
cell.RowHeight = 30f;
cell.ColumnWidth = 20f;

cell.Style.FillPattern = ExcelPatternType.Gradient;
cell.Style.Interior.Gradient.BackColor = Color.Pink;
cell.Style.Interior.Gradient.ForeColor = Color.Beige;

workbook.SaveToFile("output/GradientFillColor.xlsx", ExcelVersion.Version2016);
workbook.Dispose();
```

**出力結果：**
![C#でExcelセルにグラデーション背景を設定](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/278784/686716cc-bb47-44dc-b487-eb37f626ebf5.png)

---

## C#でExcelワークシートに背景画像を設定する

セル単位の設定に加えて、ワークシート全体に背景画像を挿入することもできます。
これは、**透かし文字やロゴマークの挿入**など、ブランディングや視覚強調に最適です。

**手順概要：**

1. `Workbook` オブジェクトを作成し、ワークシートを読み込む
2. `Worksheet.PageSetup.BackgoundImage` を使って背景画像を設定
3. Excelファイルを保存

**コード例：**

```csharp
using Spire.Xls;
using System.Drawing;

Workbook workbook = new Workbook();
workbook.LoadFromFile("Sample.xlsx");
Worksheet sheet = workbook.Worksheets[0];

Bitmap image = new Bitmap(Image.FromFile("BackgroundImage1.jpg"));
sheet.PageSetup.BackgoundImage = image;

workbook.SaveToFile("output/SheetBackgroundImage.xlsx");
workbook.Dispose();
```

**出力結果：**
![C#でExcelワークシートに背景画像を設定](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/278784/a443a95a-3297-4d7e-bf3e-e8ae44633f6a.png)

---

## まとめ

**Free Spire.XLS for .NET**を活用することで、C#開発者は以下のようなExcelの背景デザインを簡単に実装できます：

* **単色背景**：データの強調表示に最適
* **パターン背景**：表の装飾や分類に便利
* **グラデーション背景**：プロフェッショナルな印象を演出
* **ワークシート背景画像**：ロゴや透かしの挿入に活用可能

これらの機能は、**帳票の自動生成**、**企業テンプレートの統一化**、**ドキュメントの視覚的な質の向上**などに幅広く応用できます。

▶ 詳しい使い方は公式ドキュメントをご覧ください：
[Spire.XLS for .NET チュートリアルセンター](https://jp.e-iceblue.com/tutorials/net/spire-xls-net/xls-net-program-guide-content.html)