メイン画像

EPPlus - ワークシート、セルの扱い

EPPlus - ワークシート、セルの扱い


ワークシートの取得

シートのインデックスまたはシート名を指定して取得する。

インデックス指定

1 以上のインデックスを指定する。
0 または存在しないインデックスを指定した場合、例外が発生する。
System.IndexOutOfRangeException: Worksheet position out of range.

var sheet = package.Workbook.Worksheets[1];

シート名指定

シート名を指定する。
シート名に該当するシートが存在しなかった場合、 null が返る。
(例外は発生しない)

var sheet = package.Workbook.Worksheets["Sheet1"];

ワークシートの追加

ExcelWorksheets.Add メソッドでシートを追加できる。
引数にはシート名を指定する。

var sheet = package.Workbook.Worksheets.Add("sheet1");

すでに存在するシート名を指定した場合、例外が発生する。
System.InvalidOperationException: A worksheet with this name already exists in the workbook : sheet1

ワークシートの削除

ExcelWorksheets.Delete メソッドでシートを削除できる。
引数には、 ExcelWorksheet オブジェクト、インデックス、シート名のいずれかを指定する。

// ExcelWorksheet オブジェクトを指定
package.Workbook.Worksheets.Delete(sheet);

// インデックスを指定
package.Workbook.Worksheets.Delete(1);

// シート名を指定
package.Workbook.Worksheets.Delete("sheet1");

セルの値を設定

セルに値を設定するには、次のいずれかの方法を使う。

  • ExcelWorksheet.SetValue メソッドを使う
  • ExcelWorksheet.Cells プロパティを使う

ExcelWorksheet.SetValue メソッドを使う

セルのアドレス、または行と列の位置を指定して値を設定できる。

// アドレス指定
ExcelWorksheet.SetValue(address, value)

// 行列指定
ExcelWorksheet.SetValue(row, column, value)

address はセルのアドレス(A1 とか B2 とか)
row は行の位置(1 ~)
column は列の位置(1 ~)
value は設定する値

なお、 SetValue メソッドでは数式は設定できない。
(値として数式が設定されるだけで計算されない)

var sheet = package.Workbook.Worksheets.Add("sheet1");

// アドレス指定
sheet.SetValue("A1", "あいうえお");

// 行列指定
sheet.SetValue(2, 1, 1000);

// 数式は設定できない
sheet.SetValue("A3", "=NOW()");

ExcelWorksheet.Cells プロパティを使う

セルのアドレス、または行と列の位置を指定して値、数式を設定できる。

ExcelWorksheet オブジェクトの Cells プロパティからセルを取得する。
そのセルのプロパティに値を設定する。
セルのプロパティには以下の種類がある。

値を設定するときは Value プロパティ、数式を設定するときは Formula プロパティを使う。
Value プロパティに数式を設定した場合、SetValue メソッドで数式を設定したときと同じ結果になるので注意する。

var sheet = package.Workbook.Worksheets.Add("sheet1");

// アドレス指定
sheet.Cells["B1"].Value = DateTime.Now;

// 行列指定
sheet.Cells[2, 2].Value = 2000;

// 数式を設定
sheet.Cells["B3"].Formula = "=NOW()";

// 値として設定されるだけで計算されない
sheet.Cells["B4"].Value = "=NOW()";

セルの値を取得

セルの値を取得するには、 ExcelWorksheet.GetValue メソッドを使う。

// object で返される
ExcelWorksheet.GetValue(row, column)

// 指定したデータ型で返される
ExcelWorksheet.GetValue(row, column)

row は行の位置(1 ~)
column は列の位置(1 ~)
T はデータ型

var sheet = package.Workbook.Worksheets.Add("sheet1");

// object 型
var a1Value = sheet.GetValue(1, 1);

// 指定した型(この場合は DateTime)
var b1Value = sheet.GetValue(1, 2);

アカウントを作成 して、もっと沢山の記事を読みませんか?


この記事が気に入ったら ことりと さんを応援しませんか?
メッセージを添えてチップを送ることができます。


この記事にコメントをしてみませんか?


酒とアクアリウムが最近の楽しみ。

おすすめの記事