【ClosedXML】 行の操作
今回は行操作について説明します。
先ずは目的の行を取得する方法について説明します。
次に、行の削除について説明します。
セルA1の関数が"=A2"に変更されているのが確認できます。
最後に、行の挿入について説明します。
行を挿入した場合も、削除した場合と同様にセル参照の編集が行われます。
コードでは"=A3"を指定していたのに、作成されたシートでは"=A5"となっています。
行等の削除・挿入を行う際はセル参照が変更される点に注意してください。
// ワークシートの1行目の最初のセルに値を入力 var row1 = sheet.Row(1); row1.FirstCell().Value = "1行目最初のセル"; // ワークシートの3~5行目の列 var rows = sheet.Rows(3, 5); var rows2 = sheet.Rows("3:5"); // Excelでの列指定と同じ方法でも取得できる foreach (var r in rows) { r.FirstCell().Value = "列3:5"; } // 連続していない行を取得する var rows3 = sheet.Rows("7:8, 10:12"); foreach (var r in rows3) { r.FirstCell().Value = "不連続な列の取得"; } // 使用されている列を取得 var usedRows = sheet.RowsUsed(); foreach (var r in usedRows) { r.Style.Fill.BackgroundColor = XLColor.Red; }1行だけ取得する場合はRowメソッドを使用します。 引数には取得したい行番号(1から開始)を指定します。 複数の行を取得したい場合はRowsメソッドを使用します。 引数には取得範囲の最初と最後の行番号を指定するか、行範囲を文字列で指定します。 行範囲の文字列指定ではExcelで行範囲を指定する時と同じ書式で範囲を指定します。 文字列で指定する場合は不連続な行をまとめて取得することもできます。 その場合は行範囲をカンマ区切りで入力します。 今までに使用した(された)行を全て取得する場合はRowsUsedメソッドを使用します。 このサンプルコードを実行すると以下の様になります。

sheet.Cell("A1").FormulaA1 = "A3"; // A3の値を参照 sheet.Cell("A3").SetValue(100) .Style.Fill.SetBackgroundColor(XLColor.Blue); // 行3を削除 sheet.Row(3).Delete();行を削除するには削除したい行でDeleteメソッドを使用するだけです。 注意点は行を削除すると関数のセル参照が変更される点です。 このサンプルコードではセルA1に"=A3"という関数を指定しています。 その後、行3を削除することでセルA1に指定していた関数のセル参照が変更されます。 このサンプルコードを実行すると以下の様になります。

sheet.Cell("A3").Value = 100; sheet.Cell("A1").FormulaA1 = "A3"; // 行2の上に行を挿入 var row1 = sheet.Row(2).InsertRowsAbove(1); row1.Style.Fill.BackgroundColor = XLColor.Red; // 行2の下に行を挿入 var row2 = sheet.Row(2).InsertRowsBelow(1); row2.Style.Fill.BackgroundColor = XLColor.Blue;行の挿入は、挿入したい位置(行)でInsertRowsAboveメソッドまたはInsertRowsBelowメソッドを使用します。 これらのメソッドの引数には挿入する行の数を指定します。 InsertRowsAboveメソッドを使用した場合は、指定した行(サンプルだと行2)の上に行を挿入します。 InsertRowsBelowメソッドを使用した場合は、指定した行(サンプルだと行2)の下に行を挿入します。 このサンプルコードを実行すると以下の様になります。

スポンサーサイト