WorksheetRangeStyle オブジェクトを作成して使用し、スタイル項目をセルまたは範囲に渡します。ワークシートの SetRangeStyles メソッドを呼び出してスタイルオブジェクトを適用します。ReoGridは PlainStyleFlag という列挙型を使用して、どのスタイルを適用するかを決定します。
名前空間
using unvell.ReoGrid;
スタイルの設定
セルまたは範囲のスタイルを設定する方法はいくつかあります。
- ワークシートメソッドの呼び出し
- セルまたは範囲インスタンスの使用
- アクションの使用
ワークシートメソッドの呼び出し
sheet.SetRangeStyles("B1:E5", new WorksheetRangeStyle
{
Flag = PlainStyleFlag.FillColor,
BackColor = Color.SkyBlue,
});
SetRangeStylesのオーバーロード
| シグネチャ | 説明 |
|---|---|
SetRangeStyles(string addressOrName, WorksheetRangeStyle style) | アドレスまたは名前付き範囲でスタイルを設定 |
SetRangeStyles(int row, int col, int rows, int cols, WorksheetRangeStyle style) | 行/列/サイズでスタイルを設定 |
SetRangeStyles(RangePosition range, WorksheetRangeStyle style) | 範囲位置でスタイルを設定 |
セルまたは範囲インスタンスの使用
// Cell
var cell = sheet.Cells["B3"];
cell.Style.BackColor = Color.SkyBlue;
// Range
var range = sheet.Ranges["B1:C3"];
range.Style.BackColor = Color.LightYellow;
アクションの使用
元に戻す、やり直し、繰り返し操作を有効にするために、アクションを使用してスタイルを設定します。
sheet.DoAction(new SetRangeStyleAction("B1:E5", new WorksheetRangeStyle
{
Flag = PlainStyleFlag.FillColor,
BackColor = Color.SkyBlue,
}));
スタイルの取得
ワークシートメソッドの呼び出し
// Get style from a single cell
WorksheetRangeStyle style = sheet.GetCellStyle("B3");
WorksheetRangeStyle style = sheet.GetCellStyle(new CellPosition("B3"));
WorksheetRangeStyle style = sheet.GetCellStyle(2, 1);
セルまたは範囲インスタンスの使用
// Cell
var backColor = sheet.Cells["B3"].Style.BackColor;
// Range
var backColor = sheet.Ranges["B1:C3"].Style.BackColor;
WorksheetRangeStyle
WorksheetRangeStyle クラスは適用するスタイルプロパティを保持します。Flag プロパティはどのスタイル項目が含まれるかを決定します。
プロパティ
| プロパティ | PlainStyleFlag値 | 型 | 説明 |
|---|---|---|---|
Flag | — | PlainStyleFlag | このオブジェクトに含まれるスタイルを決定 |
BackColor | BackColor | SolidColor | 背景色 |
FillPatternColor | FillPatternColor | SolidColor | 背景パターン色(WinFormsのみ) |
FillPatternStyle | FillPatternStyle | HatchStyles | 背景パターンスタイル(WinFormsのみ) |
TextColor | TextColor | SolidColor | テキスト色(デフォルト: Black) |
FontName | FontName | string | フォント名 |
FontSize | FontSize | float | フォントサイズ(デフォルト: 10) |
Bold | FontStyleBold | bool | 太字フォント |
Italic | FontStyleItalic | bool | 斜体フォント |
Strikethrough | FontStyleStrikethrough | bool | 取り消し線 |
Underline | FontStyleUnderline | bool | 下線 |
HAlign | HorizontalAlign | ReoGridHorAlign | 水平配置 |
VAlign | VerticalAlign | ReoGridVerAlign | 垂直配置 |
TextWrapMode | TextWrap | TextWrapMode | テキスト折り返しモード |
Indent | Indent | ushort | テキストインデント(0〜65535) |
Padding | Padding | PaddingValue | セルパディング |
RotationAngle | RotationAngle | float | テキスト回転角度(-90°〜90°) |
メソッド
| メソッド | 説明 |
|---|---|
WorksheetRangeStyle() | 空のスタイルセットを作成 |
WorksheetRangeStyle(WorksheetRangeStyle source) | コピーコンストラクター |
Clone(WorksheetRangeStyle source) | 静的: スタイルオブジェクトをクローン |
CopyFrom(WorksheetRangeStyle source) | 別のオブジェクトからスタイルをコピー |
HasStyle(PlainStyleFlag flag) | 指定されたすべてのフラグが存在するか確認 |
HasAny(PlainStyleFlag flag) | 指定されたフラグのいずれかが存在するか確認 |
注意: 常に
Flagプロパティを設定してください。これはどのスタイル項目が適用されるかを決定します。対応するフラグが設定されていないスタイルプロパティは無視されます。
PlainStyleFlag
PlainStyleFlag 列挙型(long、フラグ)は、適用または削除するスタイル項目を指定します。
個別フラグ
| 値 | 16進 | 説明 |
|---|---|---|
None | 0x0 | スタイルなし |
FontName | 0x1 | フォント名 |
FontSize | 0x2 | フォントサイズ |
FontStyleBold | 0x4 | 太字 |
FontStyleItalic | 0x8 | 斜体 |
FontStyleStrikethrough | 0x10 | 取り消し線 |
FontStyleUnderline | 0x20 | 下線 |
TextColor | 0x40 | テキスト色 |
BackColor | 0x80 | 背景色 |
HorizontalAlign | 0x2000 | 水平配置 |
VerticalAlign | 0x4000 | 垂直配置 |
FillPatternColor | 0x80000 | 背景パターン色 |
FillPatternStyle | 0x100000 | 背景パターンスタイル |
TextWrap | 0x200000 | テキスト折り返しモード |
Indent | 0x400000 | インデント |
Padding | 0x800000 | パディング |
RotationAngle | 0x1000000 | テキスト回転角度 |
複合フラグ
| 値 | 組み合わせ |
|---|---|
FontStyleAll | FontStyleBold | FontStyleItalic | FontStyleStrikethrough | FontStyleUnderline |
FontAll | FontName | FontSize | FontStyleAll |
AlignAll | HorizontalAlign | VerticalAlign |
FillPattern | FillPatternColor | FillPatternStyle |
BackAll | BackColor | FillPattern |
LayoutAll | TextWrap | Padding | RotationAngle |
All | FontAll | TextColor | BackAll | AlignAll | LayoutAll |
配置の列挙型
ReoGridHorAlign
| 値 | 説明 |
|---|---|
General | 自動配置(数値は右、テキストは左) |
Left | 左揃え |
Center | 中央揃え |
Right | 右揃え |
ReoGridVerAlign
| 値 | 説明 |
|---|---|
General | デフォルト配置 |
Top | 上揃え |
Middle | 中央揃え |
Bottom | 下揃え |
TextWrapMode
| 値 | 説明 |
|---|---|
NoWrap | 折り返しなし(デフォルト) |
WordBreak | 通常の単語区切り |
BreakAll | 任意の文字で改行 |
背景色
範囲B1:E5の背景色を設定します。
sheet.SetRangeStyles("B1:E5", new WorksheetRangeStyle
{
Flag = PlainStyleFlag.FillColor,
BackColor = Color.SkyBlue,
});

背景パターン色
グリッド全体の背景パターン色を設定します(WinFormsのみ)。
sheet.SetRangeStyles(RangePosition.EntireRange,
new WorksheetRangeStyle
{
Flag = PlainStyleFlag.FillPattern | PlainStyleFlag.FillColor,
BackColor = Color.LightYellow,
FillPatternColor = Color.SkyBlue,
FillPatternStyle = System.Drawing.Drawing2D.HatchStyle.DiagonalBrick,
});

テキスト色
sheet.SetRangeStyles("B2:B2", new WorksheetRangeStyle
{
Flag = PlainStyleFlag.TextColor,
TextColor = Color.Red,
});

テキスト配置
テキスト配置は水平方向と垂直方向の両方で指定できます。

セルの水平テキスト配置を Center に設定します。
sheet.SetRangeStyles("A1:C3", new WorksheetRangeStyle
{
Flag = PlainStyleFlag.HorizontalAlign,
HAlign = ReoGridHorAlign.Center,
});

テキスト折り返し
テキスト折り返しモードを WordBreak に設定します(デフォルトは NoWrap)。
sheet[1, 1] = "How many beers can you drink?";
sheet.SetRangeStyles("B2:B2", new WorksheetRangeStyle
{
Flag = PlainStyleFlag.TextWrap,
TextWrapMode = TextWrapMode.WordBreak,
});

テキスト回転
RotationAngle プロパティを設定してセル内のテキストを回転します(-90°〜90°)。
var cell = sheet.Cells["A1"];
cell.Data = "Hello World";
cell.Style.RotationAngle = 90;

フォント
フォント名とサイズを変更します。
sheet.SetRangeStyles("B2:B2", new WorksheetRangeStyle
{
Flag = PlainStyleFlag.FontSize | PlainStyleFlag.FontName,
FontName = "Arial",
FontSize = 20,
});

フォントスタイルを変更します。
// Using SetRangeStyles
sheet.SetRangeStyles("B2", new WorksheetRangeStyle
{
Flag = PlainStyleFlag.FontStyleBold,
Bold = true,
});
sheet.SetRangeStyles("C2", new WorksheetRangeStyle
{
Flag = PlainStyleFlag.FontStyleItalic,
Italic = true,
});
// Using cell instances
sheet.Cells["B3"].Style.Underline = true;
sheet.Cells["C3"].Style.Strikethrough = true;

複数スタイルの一括設定
ビット演算ORで複数の PlainStyleFlag 値を組み合わせて、1回の呼び出しで複数のスタイルを設定します。
sheet.SetRangeStyles("A1:D4", new WorksheetRangeStyle
{
Flag = PlainStyleFlag.FillColor | PlainStyleFlag.TextColor
| PlainStyleFlag.FontStyleBold | PlainStyleFlag.HorizontalAlign,
BackColor = Color.LightYellow,
TextColor = Color.DarkBlue,
Bold = true,
HAlign = ReoGridHorAlign.Center,
});
スタイルの削除
単一セルの場合でも、常に範囲からスタイルを削除します。
ワークシートメソッドの使用
PlainStyleFlag を指定して、どのスタイルを削除するかを決定します。
sheet.RemoveRangeStyles(new RangePosition(2, 2, 3, 3), PlainStyleFlag.BackAll);
RemoveRangeStylesのオーバーロード
| シグネチャ | 説明 |
|---|---|
RemoveRangeStyles(string addressOrName, PlainStyleFlag flags) | アドレスまたは名前付き範囲で削除 |
RemoveRangeStyles(RangePosition range, PlainStyleFlag flags) | 範囲位置で削除 |
アクションの使用
sheet.DoAction(new RemoveRangeStyleAction(new RangePosition(2, 2, 3, 3), PlainStyleFlag.BackAll));
ルートスタイル
ワークシートの RootStyle プロパティは、すべてのセルのデフォルトスタイルを定義します。
sheet.RootStyle.FontName = "Consolas";
sheet.RootStyle.FontSize = 12;
交互行スタイル
読みやすさを向上させるために交互行の色を適用します。
sheet.AlternateNormalRowColor = SolidColor.White;
sheet.AlternateAccentRowColor = new SolidColor(240, 240, 250);
sheet.AlternateRowRange = new RangePosition("A1:F100");
sheet.AlternateRowStyleMode = AlternateRowStyleMode.ByVisibleRow;
AlternateRowStyleMode
| 値 | 説明 |
|---|---|
None | 交互行スタイルなし |
ByVisibleRow | 表示行で交互(非表示行をスキップ) |
ByPhysicalRow | 物理行インデックスで交互 |
イベント
| イベント | EventArgs | 説明 |
|---|---|---|
RangeStyleChanged | RangeEventArgs | 範囲のスタイルが変更されたときに発生 |
ReferenceCellStyle
ReferenceCellStyle クラスは cell.Style によって返されます。このオブジェクトのプロパティを設定すると、正しいフラグでスタイルがセルに自動的に適用されます。
| プロパティ | 型 | 説明 |
|---|---|---|
BackColor | SolidColor | 背景色 |
TextColor | SolidColor | テキスト色 |
FontName | string | フォント名 |
FontSize | float | フォントサイズ |
Bold | bool | 太字 |
Italic | bool | 斜体 |
Strikethrough | bool | 取り消し線 |
Underline | bool | 下線 |
HAlign | ReoGridHorAlign | 水平配置 |
VAlign | ReoGridVerAlign | 垂直配置 |
TextWrap | TextWrapMode | テキスト折り返しモード |
Indent | ushort | テキストインデント |
Padding | PaddingValue | セルパディング |
RotationAngle | float | テキスト回転角度 |
ReferenceRangeStyle
ReferenceRangeStyle クラスは range.Style によって返されます。プロパティを設定すると、スタイルが範囲全体に適用されます。
| プロパティ | 型 | 説明 |
|---|---|---|
BackColor | SolidColor | 背景色 |
TextColor | SolidColor | テキスト色 |
FontName | string | フォント名 |
FontSize | float | フォントサイズ |
Bold | bool | 太字 |
Italic | bool | 斜体 |
Underline | bool | 下線 |
Strikethrough | bool | 取り消し線 |
HorizontalAlign | ReoGridHorAlign | 水平配置 |
VerticalAlign | ReoGridVerAlign | 垂直配置 |
TextWrap | TextWrapMode | テキスト折り返しモード |
Padding | PaddingValue | セルパディング |
Indent | ushort | テキストインデント |