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);
アカウントを作成 して、もっと沢山の記事を読みませんか?
この記事にコメントをしてみませんか?