【C#エクセル操作】ClosedXML – 行・列のコピー、挿入、削除

当ページのリンクには広告が含まれています。

スポンサーリンク

ClosedXMLを用いて 行・列のコピー、挿入、削除 する方法を解説します

クリックしてジャンプ

準備(usingの記述)

ClosedXMLを使うために書かなければいけない おまじない があります。

using ClosedXML.Excel; // ClosedXMLを使うためのおまじない
using ClosedXML.Excel.Drawings; // ClosedXMLを使うためのおまじない

おまじない を書く場所は プログラムの頭です。

※ NuGet による ClosedXMLライブラリ が追加してあることが前提です。

ライブラリの追加については こちら の記事を参考にしてください。

ClosedXMLライブラリ を追加してない状態で おまじないを書いたらエラーになります。

行のコピー

指定されたワークシートの5行目を10行目にコピーします

CopyToメソッドはセルの値だけでなく、書式やスタイルもコピーします

既にコピー先の行にデータが存在する場合は、上書きされます

コピー元とコピー先が同じ行の場合は何も変わりません

using (var wb = new XLWorkbook()) { 

 // コピーしたい行番号を指定
 int sourceRowNumber = 5; // 例:5行目をコピーする
 // コピー先の行番号を指定
 int targetRowNumber = 10; // 例:10行目にコピーする

 // 行をコピーする
 var sourceRow = wb.Worksheet("sheet1").Row(sourceRowNumber);
 var targetRow = wb.Worksheet("sheet1").Row(targetRowNumber);

 // 行全体をコピー
 sourceRow.CopyTo(targetRow);

 // 名前を付けて保存
 wb.SaveAs(@"C:\新しいフォルダー\エクセルブック_保存.xlsx"); 
}

行の挿入

下に行を挿入する

Row(1):1行目の

InsertRowsBelow(2):下に2行挿入

// 行の挿入(下に)
wb.Worksheet("sheet1").Row(1).InsertRowsBelow(2);

上に行を挿入する

Row(1):1行目の

InsertRowsAbove(2):上に2行挿入

// 行の挿入(上に)
wb.Worksheet("sheet1").Row(1).InsertRowsAbove(2);

行を削除

Row(10):10行目を

Delete():削除

// 行の削除
wb.Worksheet("sheet1").Row(10).Delete(); 

列のコピー

指定されたワークシートの3列目を6列目にコピーします

CopyToメソッドを使用して、セルの内容、書式、スタイルを含めてコピーします

既にコピー先の列にデータが存在する場合は、上書きされます

コピー元とコピー先が同じ行の場合は何も変わりません

using (var wb = new XLWorkbook()) { 

 // コピーしたい列の番号を指定
 int sourceColumnNumber = 3; // 例:3列目("C"列)をコピーする
 // コピー先の列の番号を指定
 int targetColumnNumber = 6; // 例:6列目("F"列)にコピーする

 // 列をコピーする
 var sourceColumn = wb.Worksheet("sheet1").Column(sourceColumnNumber);
 var targetColumn = wb.Worksheet("sheet1").Column(targetColumnNumber);

 // 列全体をコピー
 sourceColumn.CopyTo(targetColumn);

 // 名前を付けて保存
 wb.SaveAs(@"C:\新しいフォルダー\エクセルブック_保存.xlsx"); 
}

列の挿入

前に列を挿入

Column(1) :1列目の

InsertColumnsBefore(2):前(左)に2列挿入

// 列の挿入(前に)
wb.Worksheet("sheet1").Column(1).InsertColumnsBefore(2);

後ろに列を挿入

Column(1) :1列目の

InsertColumnsAfter(2):後(右)に2列挿入

// 列の挿入(後に)
wb.Worksheet("sheet1").Column(1).InsertColumnsAfter(2);

列を削除

Column(10) :10列目を

Delete():削除

// 列の削除
wb.Worksheet("sheet1").Column(10).Delete();

スポンサーリンク

クリックしてジャンプ