セルの書式を設定する方法を説明する。

 

表示形式を設定する

 

セルの表示形式は、セルの Style.Numberformat.Format プロパティに設定する。

 

たとえば、A1セルの表示形式を日付にするには次のように書く。

 

sheet.Cells["A1"].Style.Numberformat.Format = "yyyy\"年\"m\"月\"d\"日\";@";

 

表示形式の設定例を以下に挙げる。

 

表示形式           : 設定値 ※かぎかっこ内の値を設定すること
標準               : 「General」
数値               : 「0_);[Red]\(0\)」
通貨               : 「"\"#,##0_);[Red]\("\"#,##0\)」
会計               : 「_ "\"* #,##0_ ;_ "\"* \-#,##0_ ;_ "\"* "-"_ ;_ @_ 」
日付(短い日付形式) : 「yyyy/m/d」
日付(長い日付形式) : 「[$-x-sysdate]dddd, mmmm dd, yyyy」
時刻               : 「[$-x-systime]h:mm:ss AM/PM」
パーセンテージ     : 「0%」
分数               : 「# ?/?」
指数               : 「0.E+00」
文字列             : 「@」
郵便番号           : 「[<=999]000;[<=9999]000-00;000-0000」
電話番号(東京)   : 「[<=99999999]####-####;(00) ####-####」
全角(12345)   : 「[DBNum3][$-411]0」

 

Format には日本語を設定しないほうがよい。
もし日本語を設定すると、修復が必要なブックになることがある(必ずしもなるわけではない)。
修復が必要なブックになると、そのブックを開くときに「一部の内容に問題が見つかりました。可能な限り内容を回復しますか?」と表示される。

 

以下のコードは、表示形式を「標準」にするため、Format に「G/標準」を設定している。
しかしこれは誤りで、正しくは「General」を設定しなければならない。

 

// 誤り
sheet.Cells["A1"].Style.Numberformat.Format = "G/標準";

// 正しい
sheet.Cells["A1"].Style.Numberformat.Format = "General";

 

ちなみにこのケースでは修復は必要とならない。
が、表示形式は「標準」ではなく、「ユーザー定義」で種類が「g/“標”“準”」となっており、正しく設定されていないことがわかる。

 

配置を設定する

 

以下に配置設定のサンプルを示す。

 

//
// 文字の配置
//
// 横位置
sheet.Cells["A1"].Style.HorizontalAlignment = ExcelHorizontalAlignment.Center;
// 縦位置
sheet.Cells["A2"].Style.VerticalAlignment = ExcelVerticalAlignment.Center;
// インデント
sheet.Cells["A3"].Style.HorizontalAlignment = ExcelHorizontalAlignment.Left;
sheet.Cells["A3"].Style.Indent = 3;

//
// 文字の制御
//
// 折り返して全体を表示する
sheet.Cells["A4"].Style.WrapText = true;
// 縮小して全体を表示する
sheet.Cells["A5"].Style.ShrinkToFit = true;
// セルを結合する
sheet.Cells["A6:C7"].Merge = true;

//
// 右から左
//
// 文字の方向
sheet.Cells["A8"].Style.ReadingOrder = ExcelReadingOrder.LeftToRight;

//
// 方向
//
sheet.Cells["A9"].Style.TextRotation = 90;

 

横位置

 

HorizontalAlignment プロパティに ExcelHorizontalAlignment 列挙体を設定する。

 

ExcelHorizontalAlignment 列挙体には以下のメンバーが含まれる。

 

  • General : 標準
  • Left : 左詰め (インデント)
  • Center : 中央揃え
  • Right : 右詰め (インデント)
  • Fill : 繰り返し
  • Justify : 両端揃え
  • CenterContinuous : 選択範囲内で中央
  • Distributed : 均等割り付け (インデント)

 

縦位置

 

VerticalAlignment プロパティに ExcelVerticalAlignment 列挙体を設定する。

 

ExcelVerticalAlignment 列挙体には以下のメンバーが含まれる。

 

  • Top : 上詰め
  • Center : 中央揃え
  • Bottom : 下詰め
  • Justify : 両端揃え
  • Distributed : 均等割り付け

 

インデント

 

Indent プロパティに設定する。

 

横位置がインデント無効な設定の場合は無視される。
たとえば、横位置が標準(General)のときに設定しても無視される。

 

折り返して全体を表示する

 

WrapText プロパティに設定する。
true なら折り返す。false なら折り返さない。

 

縮小して全体を表示する

 

ShrinkToFit プロパティに設定する。
true なら縮小する。false なら縮小しない。

 

セルを結合する

 

セルの Merge プロパティに設定する。
true なら結合する。false なら結合しない。

 

文字の方向

 

ReadingOrder プロパティに ExcelReadingOrder 列挙体を設定する。

 

ExcelReadingOrder 列挙体には以下のメンバーが含まれる。

 

  • ContextDependent : 最初の文字に依存
  • LeftToRight : 左から右
  • RightToLeft : 右から左

 

方向

 

TextRotation プロパティに角度を設定する。
設定できる値の範囲は0~180。

 

指定した値がそのまま設定されるわけではないため注意する。
たとえば、設定値が 0 の場合は Excel では 0、90 の場合は 90、180 の場合は -90 になった。

 

フォントを設定する

 

以下にフォント設定のサンプルを示す。

 

var cell = sheet.Cells["A1"];

//
// フォント名、スタイル、サイズ
//
cell.Style.Font.Name = "メイリオ";
cell.Style.Font.Italic = true;
cell.Style.Font.Bold = true;
cell.Style.Font.Size = 14;

//
// 下線
//
cell.Style.Font.UnderLine = true;

// 下線(種類指定)
cell.Style.Font.UnderLineType = ExcelUnderLineType.Double;

//
// 色
//
// RGBA指定
cell.Style.Font.Color.SetColor(0, 255, 0, 0);

// Colorオブジェクト指定
cell.Style.Font.Color.SetColor(System.Drawing.Color.Aquamarine);

//
// 文字飾り
//
// 取り消し線
cell.Style.Font.Strike = true;
// 上付き、下付き
cell.Style.Font.VerticalAlign = ExcelVerticalAlignmentFont.Superscript;

 

フォント名

 

Font.Name にフォント名を設定する。

 

スタイル

 

斜体にするには Font.Italic を true に設定する。
太字にするには Font.Bold を true に設定する。

 

サイズ

 

Font.Size にフォントサイズを設定する。

 

下線

 

下線を引くには Font.UnderLine を true にする。

 

または Font.UnderLineType に ExcelUnderLineType 列挙体を設定する。

 

ExcelUnderLineType 列挙体は以下のメンバーを持つ。

 

  • None : なし
  • Single : 下線
  • Double : 二重下線
  • SingleAccounting : 下線 (会計)
  • DoubleAccounting : 二重下線 (会計)

 

 

文字色を設定するには Font.Color.SetColor メソッドを使う。
SetColor メソッドには RGBA を指定してもよいし、Color オブジェクトを指定してもよい。

 

文字飾り

 

取り消し線を引くには Font.Strike に true を設定する。

 

上付き・下付きを設定するには Font.VerticalAlign に ExcelVerticalAlignmentFont 列挙体を設定する。

 

ExcelVerticalAlignmentFont 列挙体は以下のメンバーを持つ。

 

  • None : なし
  • Baseline : ベースライン(None と同様)
  • Subscript : 下付き
  • Superscript : 上付き

 

罫線を設定する

 

以下にセルに罫線を引くサンプルを示す。

 

var cell = sheet.Cells["C3"];

// セルの周りに罫線を引く
cell.Style.Border.Top.Style = ExcelBorderStyle.Thin;
cell.Style.Border.Bottom.Style = ExcelBorderStyle.Thin;
cell.Style.Border.Left.Style = ExcelBorderStyle.Thin;
cell.Style.Border.Right.Style = ExcelBorderStyle.Thin;

// 対角線(左下から右上)も引く
cell.Style.Border.Diagonal.Style = ExcelBorderStyle.Thin;
cell.Style.Border.DiagonalUp = true;

 

罫線は Border に設定する。

 

罫線を引く箇所

 

Border には、以下のように上下左右と対角線を表すプロパティがそれぞれある。
罫線を引きたい箇所のプロパティを設定する。

 

  • Border.Top : 上
  • Border.Bottom : 下
  • Border.Left : 左
  • Border.Right : 右
  • Border.Diagonal : 対角線

 

線のスタイル

 

線のスタイルは Style に ExcelBorderStyle 列挙体を設定する。

 

ExcelBorderStyle 列挙体は以下のメンバーを持つ。

 

  • None : なし
  • Hair : 極細線
  • Dotted : 点線
  • DashDotDot : 二点鎖線
  • DashDot : 一点鎖線
  • Dashed : 破線
  • Thin : 実線
  • MediumDashDotDot : 二点鎖線(中太線)
  • 該当なし : 斜破線(中太線)
  • MediumDashDot : 一点鎖線(中太線)
  • MediumDashed : 破線(中太線)
  • Medium : 中太線
  • Thick : 太線
  • Double : 二重線

 

線の色

 

線の色は Color.SetColor メソッドを使って設定する。
SetColor メソッドには RGBA を指定してもよいし、Color オブジェクトを指定してもよい。

 

// 上罫線を赤にする
cell.Style.Border.Top.Color.SetColor(System.Drawing.Color.Red);

// 下罫線を青にする
cell.Style.Border.Bottom.Color.SetColor(0, 0, 0, 255);

 

対角線の向き

 

左下から右上に向かう対角線を引くには、DiagonalUp に true を設定する。
左上から右下に向かう対角線を引くには、DiagonalDown に true を設定する。

 

塗りつぶしを設定する

 

以下に塗りつぶし設定のサンプルを示す。

 

// 背景色
sheet.Cells["A1"].Style.Fill.PatternType = ExcelFillStyle.Solid;
sheet.Cells["A1"].Style.Fill.BackgroundColor.SetColor(System.Drawing.Color.Yellow);

 

パターンの種類

 

パターンの種類は Fill.PatternType に ExcelFillStyle 列挙体を設定する。

 

ExcelFillStyle 列挙体は以下のメンバーを持つ。

 

  • None : 未設定
  • Solid : 塗りつぶし
  • DarkGray : 75% 灰色
  • MediumGray : 50% 灰色
  • LightGray : 25% 灰色
  • Gray125 : 12.5% 灰色
  • Gray0625 : 6.25% 灰色
  • DarkVertical : 縦 縞
  • DarkHorizontal : 横 縞
  • DarkDown : 右下がり斜線 縞
  • DarkUp : 左下がり斜線 縞
  • DarkGrid : 左下がり斜線 格子
  • DarkTrellis : 極太線 左下がり斜線 格子
  • LightVertical : 実線 縦 縞
  • LightHorizontal : 実線 横 縞
  • LightDown : 実線 右下がり斜線 縞
  • LightUp : 実線 左下がり斜線 縞
  • LightGrid : 実線 横 格子
  • LightTrellis : 実線 左下がり斜線 格子

 

背景色やパターンの色を設定する場合、パターンの種類は必須である。
None のままだと例外が発生する。

 

System.ArgumentException: 'Can't set color when patterntype is not set.'

 

背景色

 

背景色は Fill.BackgroundColor.SetColor メソッドを使って設定する。
SetColor メソッドには RGBA を指定してもよいし、Color オブジェクトを指定してもよい。

 

パターンの色

 

パターンの色は Fill.PatternColor.SetColor メソッドを使って設定する。
SetColor メソッドには RGBA を指定してもよいし、Color オブジェクトを指定してもよい。

 

塗りつぶし効果

 

塗りつぶし効果は Fill.Gradient を設定する。
(普段使わないので詳しいことは不明)

 

保護を設定する

 

以下にセルの保護設定のサンプルを示す。

 

// ロックの設定
sheet.Cells["A1"].Style.Locked = true;

// 表示しないの設定
sheet.Cells["B1"].Style.Hidden = true;

 

ロック

 

Locked に true を設定すると、ロックになる。
false を設定するとロックではなくなる(=Excel からセルの書式設定を見たとき、ロックのチェックが外れた状態になる)。

 

表示しない

 

Hidden に true を設定すると、表示しないになる。
false を設定すると表示しないではなくなる(=Excel からセルの書式設定を見たとき、表示しないのチェックが外れた状態になる)。