ClosedXMLで背景色・枠線を設定|Fill.BackgroundColor/Border(Top/Outside)【C#】
当ページのリンクには広告が含まれています。
ClosedXMLを用いて セルの背景色、枠線を設定 する方法を解説します
クリックしてジャンプ
準備(usingの記述)
ClosedXMLを使うために書かなければいけない おまじない があります。
using ClosedXML.Excel; // ClosedXMLを使うためのおまじない
using ClosedXML.Excel.Drawings; // ClosedXMLを使うためのおまじないおまじない を書く場所は プログラムの頭です。
※ NuGet による ClosedXMLライブラリ が追加してあることが前提です。
ライブラリの追加については こちら の記事を参考にしてください。
Excel関数・VBA大全


【C#エクセル】ClosedXML インストール方法
C#プログラミングでエクセルを開かずに操作するためのライブラリ 「ClosedXML」について 簡単な説明と、インストール方法 を解説します ※ ClosedXMLのアップデートなどによ…
ClosedXMLライブラリ を追加してない状態で おまじないを書いたらエラーになります。

セルの背景色
C5セルを塗りつぶし(色:XLColor.Aqua)
// C5セルを塗りつぶし(R1C1形式でセル指定)
wb.Worksheet("sheet1").Cell(5, 3).Style.Fill.BackgroundColor = XLColor.Aqua;C5セルを塗りつぶし(色:XLColor.Aqua)
// C5セルを塗りつぶし(A1形式でセル指定)
wb.Worksheet("sheet1").Cell("C5").Style.Fill.BackgroundColor = XLColor.Aqua;E1~E100セルを塗りつぶし(色:XLColor.LightGreen)
//E1~E100セルを塗りつぶし(R1C1形式でセル指定)
wb.Worksheet("sheet1").Range(1, 5, 100, 5).Style.Fill.BackgroundColor = XLColor.LightGreen;カラー設定 一覧表
色をいくつかピックアップしてサンプル表を作成しました
スクロールできます
| 色の名称 | XLColorプリセット | Colorオブジェクト | カラーコード |
|---|---|---|---|
| ブラック | XLColor.Black | XLColor.FromColor(Color.FromArgb(0, 0, 0)) | XLColor.FromHtml("#000000") |
| ホワイト | XLColor.White | XLColor.FromColor(Color.FromArgb(255, 255, 255)) | XLColor.FromHtml("#FFFFFF") |
| レッド | XLColor.Red | XLColor.FromColor(Color.FromArgb(255, 0, 0)) | XLColor.FromHtml("#FF0000") |
| ブルー | XLColor.Blue | XLColor.FromColor(Color.FromArgb(0, 0, 255)) | XLColor.FromHtml("#0000FF") |
| グリーン | XLColor.Green | XLColor.FromColor(Color.FromArgb(0, 128, 0)) | XLColor.FromHtml("#008000") |
| イエロー | XLColor.Yellow | XLColor.FromColor(Color.FromArgb(255, 255, 0)) | XLColor.FromHtml("#FFFF00") |
| オレンジ | XLColor.Orange | XLColor.FromColor(Color.FromArgb(255, 165, 0)) | XLColor.FromHtml("#FFA500") |
| ピンク | XLColor.Pink | XLColor.FromColor(Color.FromArgb(255, 192, 203)) | XLColor.FromHtml("#FFC0CB") |
| ダークブルー | XLColor.DarkBlue | XLColor.FromColor(Color.FromArgb(0, 0, 139)) | XLColor.FromHtml("#00008B") |
| ライトブルー | XLColor.LightBlue | XLColor.FromColor(Color.FromArgb(173, 216, 230)) | XLColor.FromHtml("#ADD8E6") |
| グレー | XLColor.Gray | XLColor.FromColor(Color.FromArgb(128, 128, 128)) | XLColor.FromHtml("#808080") |
| ゴールド | XLColor.Gold | XLColor.FromColor(Color.FromArgb(255, 215, 0)) | XLColor.FromHtml("#FFD700") |
| パープル | XLColor.Purple | XLColor.FromColor(Color.FromArgb(128, 0, 128)) | XLColor.FromHtml("#800080") |
| トマト | XLColor.Tomato | XLColor.FromColor(Color.FromArgb(255, 99, 71)) | XLColor.FromHtml("#FF6347") |
| チョコレート | XLColor.Chocolate | XLColor.FromColor(Color.FromArgb(210, 105, 30)) | XLColor.FromHtml("#D2691E") |
XLColorクラスで直接アクセスできるプリセットの色、System.Drawing.Color オブジェクトから作成する方法、そしてHTMLカラーコードから作成する方法の3つの異なる設定手法を提供しています。
セルの枠線
C5セルの上の枠線を細い線で黒に設定(R1C1形式でセル指定)
// C5セルの上の枠線を細い線で黒に設定(R1C1形式でセル指定)
wb.Worksheet("sheet1").Cell(5, 3).Style.Border.TopBorder = XLBorderStyleValues.Thin; // 枠線のスタイルを設定
wb.Worksheet("sheet1").Cell(5, 3).Style.Border.TopBorderColor = XLColor.Black; // 枠線の色を設定C5セルの下の枠線を細い線で黒に設定(R1C1形式でセル指定)
// C5セルの下の枠線を細い線で黒に設定(R1C1形式でセル指定)
wb.Worksheet("sheet1").Cell(5, 3).Style.Border.BottomBorder = XLBorderStyleValues.Thin;
wb.Worksheet("sheet1").Cell(5, 3).Style.Border.BottomBorderColor = XLColor.Black;C5セルの左の枠線を細い線で黒に設定(R1C1形式でセル指定)
// C5セルの左の枠線を細い線で黒に設定(R1C1形式でセル指定)
wb.Worksheet("sheet1").Cell(5, 3).Style.Border.LeftBorder = XLBorderStyleValues.Thin;
wb.Worksheet("sheet1").Cell(5, 3).Style.Border.LeftBorderColor = XLColor.Black;C5セルの右の枠線を細い線で黒に設定(R1C1形式でセル指定)
// C5セルの右の枠線を細い線で黒に設定(R1C1形式でセル指定)
wb.Worksheet("sheet1").Cell(5, 3).Style.Border.RightBorder = XLBorderStyleValues.Thin;
wb.Worksheet("sheet1").Cell(5, 3).Style.Border.RightBorderColor = XLColor.Black;C5セルの枠線をすべて細い線で黒に設定(A1形式でセル指定)
// C5セルの枠線をすべて細い線で黒に設定(A1形式でセル指定)
wb.Worksheet("sheet1").Cell("C5").Style.Border.SetOutsideBorder(XLBorderStyleValues.Thin).SetOutsideBorderColor(XLColor.Black);E1~E100セル範囲の外側の枠線を細い線で黒に設定(R1C1形式で範囲指定)
// E1~E100セル範囲の外側の枠線を細い線で黒に設定(R1C1形式で範囲指定)
wb.Worksheet("sheet1").Range(1, 5, 100, 5).Style.Border.OutsideBorder = XLBorderStyleValues.Thin; // 範囲全体の外側の枠線のスタイルを設定
wb.Worksheet("sheet1").Range(1, 5, 100, 5).Style.Border.OutsideBorderColor = XLColor.Black; // 範囲全体の外側の枠線の色を設定セルの枠線パラメータ一覧表
スクロールできます
| スタイルの名称 | XLBorderStyleValuesのパラメータ | 説明 |
|---|---|---|
| 無し | None | 枠線なし |
| 細い実線 | Thin | 細い実線 |
| 中くらいの実線 | Medium | 中くらいの太さの実線 |
| 太い実線 | Thick | 太い実線 |
| 点線 | Dotted | 点線 |
| 細い点線 | Hair | 非常に細い点線 |
| 点線(太い) | Dashed | 太い点線 |
| 二重線 | Double | 二重線 |
| 細い点線(2種) | DashDot | 1点鎖線(細い点と線が交互に来る) |
| 中点線(2種) | MediumDashDot | 1点鎖線(中くらいの点と線が交互) |
枠線の位置とプロパティの対応表(サンプルコード付き)
スクロールできます
| 位置 | プロパティ | 説明 | サンプルコード |
|---|---|---|---|
| 上 | TopBorder | 上側の枠線を設定する | wb.Worksheet("sheet1").Cell("C5").Style.Border.TopBorder = XLBorderStyleValues.Thin; |
| 下 | BottomBorder | 下側の枠線を設定する | wb.Worksheet("sheet1").Cell("C5").Style.Border.BottomBorder = XLBorderStyleValues.Thin; |
| 左 | LeftBorder | 左側の枠線を設定する | wb.Worksheet("sheet1").Cell("C5").Style.Border.LeftBorder = XLBorderStyleValues.Thin; |
| 右 | RightBorder | 右側の枠線を設定する | wb.Worksheet("sheet1").Cell("C5").Style.Border.RightBorder = XLBorderStyleValues.Thin; |
| 外側全体 | OutsideBorder | 範囲の外側の枠線を一括で設定する | wb.Worksheet("sheet1").Range(1, 5, 100, 5).Style.Border.OutsideBorder = XLBorderStyleValues.Thin; |
| 内側水平 | InsideBorder | 範囲の内側の水平枠線を一括で設定する | wb.Worksheet("sheet1").Range(1, 5, 100, 5).Style.Border.InsideBorder = XLBorderStyleValues.Thin; |
| 内側垂直 | InsideBorder | 範囲の内側の垂直枠線を一括で設定する | wb.Worksheet("sheet1").Range(1, 5, 100, 5).Style.Border.InsideBorder = XLBorderStyleValues.Thin; |
| 内側全体 | InsideBorder | 範囲の内側の枠線を一括で設定する | wb.Worksheet("sheet1").Range(1, 5, 100, 5).Style.Border.InsideBorder = XLBorderStyleValues.Thin; |
| 対角線 | DiagonalBorder | 対角線の枠線を設定する | wb.Worksheet("sheet1").Cell("C5").Style.Border.DiagonalBorder = XLBorderStyleValues.Thin; |
| 対角線(逆) | DiagonalBorder | 逆方向の対角線の枠線を設定する | wb.Worksheet("sheet1").Cell("C5").Style.Border.DiagonalBorder = XLBorderStyleValues.Thin; |