【C#エクセル操作】ClosedXML – 行・列のコピー、挿入、削除
当ページのリンクには広告が含まれています。
ClosedXMLを用いて 行・列のコピー、挿入、削除 する方法を解説します
クリックしてジャンプ
準備(usingの記述)
ClosedXMLを使うために書かなければいけない おまじない があります。
using ClosedXML.Excel; // ClosedXMLを使うためのおまじない
using ClosedXML.Excel.Drawings; // ClosedXMLを使うためのおまじない
おまじない を書く場所は プログラムの頭です。
※ NuGet による ClosedXMLライブラリ が追加してあることが前提です。
ライブラリの追加については こちら の記事を参考にしてください。
【C#エクセル】ClosedXML インストール方法
C#プログラミングでエクセルを開かずに操作するためのライブラリ 「ClosedXML」について 簡単な説明と、インストール方法 を解説します ※ 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();