罫線はワークシートAPIを直接呼び出すか、アクションを実行することでプログラム的に設定できます。
罫線スタイル
以下の罫線スタイルが現在のバージョンのReoGridでサポートされています。

罫線スタイルは BorderLineStyle 列挙型として定義されています。
罫線の位置
罫線は範囲に対して設定する必要があります。範囲にセルが1つしか含まれない場合でも同様です。罫線の位置を指定するには、BorderPositions 列挙型とそのビット結合値を使用します。

罫線の設定
ワークシート内の特定の範囲に罫線を適用するには、SetRangeBorders メソッドを使用します。
var sheet = reoGridControl.CurrentWorksheet;
// Applying borders to the outside of a specified range with a custom style
sheet.SetRangeBorders("B3:D7", BorderPositions.Outside,
new RangeBorderStyle
{
Color = SolidColor.Magenta,
Style = BorderLineStyle.BoldSolid,
});

アクションによる罫線の設定
アクションを使用して範囲内に罫線を適用すると、操作を元に戻すことができます。
reoGridControl.DoAction(reoGridControl.CurrentWorksheet,
new SetRangeBorderAction(new RangePosition(2, 1, 5, 3),
BorderPositions.All,
new RangeBorderStyle {
Color = SolidColor.Red,
Style = BorderLineStyle.Dashed
})
);

罫線情報の取得
ワークシート内の特定の範囲に適用された罫線の詳細を取得するには、GetRangeBorders メソッドを使用します。
// Retrieving border information for a specified range
RangeBorderInfoSet borderInfoSet = sheet.GetRangeBorders("A1:D5");
GetRangeBorders メソッドは指定された範囲内の罫線を分析し、RangeBorderInfoSet を返します。このセットには範囲全体で一貫して適用されている罫線スタイルのインスタンスが含まれます。
範囲内でスタイルが異なる罫線を特定するには、RangeBorderInfoSet の NonUniformPos プロパティを確認します。このプロパティは、罫線スタイルが主要なスタイルと異なる位置を示します。
罫線の反復処理
指定された範囲内のすべての罫線を列挙するには、ワークシートの IterateBorders メソッドを使用します。
メソッド定義
IterateBorders(RowOrColumn direction, RangePosition range, Func<int, int, int, RangeBorderStyle, bool> iterator);
パラメーター
direction- 反復モードを指定します:RowOrColumn.Rowはすべての水平罫線を反復処理します。RowOrColumn.Columnはすべての垂直罫線を反復処理します。RowOrColumn.Bothは行と列の両方を含むすべての罫線を反復処理します。
range: 罫線が反復処理される対象範囲。iterator: ワークシートから取得したすべての罫線を検査するためのコールバック関数。この関数は以下の引数を受け取ります:intRow: 罫線が位置する行番号。intColumn: 罫線が位置する列番号。intSpan: この開始位置から同じスタイルを共有する連続した罫線の数。RangeBorderStyle- 罫線の色とスタイルの詳細を含みます。bool戻り値:trueを返すと反復処理を続行し、falseを返すと終了します。
このメソッドにより、特定の範囲内の罫線プロパティの詳細な検査と操作が可能になり、反復処理中に遭遇した罫線の特性に基づいてカスタムロジックを適用できます。
例えば、すべての水平罫線を反復処理し、セルの位置に罫線がある場合は赤い背景でマークします。
// Setting horizontal borders within a specified range
worksheet.Ranges["C3:F10"].BorderInsideHorizontal = RangeBorderStyle.BlackSolid;
// Iterating over horizontal borders in the entire worksheet range
worksheet.IterateBorders(RowOrColumn.Row, RangePosition.EntireRange, (r, c, span, border) =>
{
// Applying a red background to cells that have borders
worksheet.Cells[r, c].Style.BackColor = Color.LightCoral;
return true; // Continue iterating
});

すべての垂直罫線を反復処理します。
// set borders
worksheet.Ranges["C3:F10"].BorderInsideVertical = RangeBorderStyle.BlackSolid;
// iterate borders
worksheet.IterateBorders(RowOrColumn.Column, RangePosition.EntireRange, (r, c, span, border) =>
{
worksheet.Cells[r, c].Style.BackColor = Color.LightCoral;
return true;
});

行と列の両方の罫線を含むすべての罫線を反復処理します。
// set borders
worksheet.Ranges["C3:F10"].BorderOutside = RangeBorderStyle.BlackBoldSolid;
worksheet.Ranges["C3:F10"].BorderInsideHorizontal = RangeBorderStyle.BlackSolid;
worksheet.Ranges["C3:F10"].BorderInsideVertical = RangeBorderStyle.BlackDotted;
// iterate borders
worksheet.IterateBorders(RowOrColumn.Both, RangePosition.EntireRange, (r, c, span, border) =>
{
worksheet.Cells[r, c].Style.BackColor = Color.LightCoral;
return true;
});

罫線の削除
ワークシートから罫線を削除するには、RemoveRangeBorders メソッドを使用します。
// Removing all borders from a specified range within the worksheet
sheet.RemoveRangeBorders(new RangePosition(2, 1, 5, 1), BorderPositions.All);
または、罫線スタイルを RangeBorderStyle.Empty に設定しても罫線を削除できます。
// Setting the border style to 'Empty' for a specified range to remove borders
sheet.SetRangeBorders(new RangePosition(2, 1, 5, 3), BorderPositions.All, RangeBorderStyle.Empty);
アクションによる罫線の削除
操作を元に戻す機能付きで罫線を削除するには、DoAction メソッドを次のように使用します。
reoGridControl.DoAction(reoGridControl.CurrentWorksheet,
new RemoveRangeBorderAction(new RangePosition(2, 1, 5, 1), ReoGridBorderPos.All));
このアクションは Undo メソッドを呼び出して取り消すことができます。
// Undoing the border removal operation
reoGridControl.Undo();