EPPlusとは
EPPlusはOpen Office Xml形式(xlsx)を使用してExcel 2007/2010ファイルを読み書きする.NETライブラリです。GNUライブラリ一般公衆利用許諾(LGPL)に基づいてライセンスされています。
COM(Microsoft.Office.Interop.Excel)を使う必要はありません。旧形式(xls)ファイルは扱えませんので注意が必要です。
似たようなライブラリに
ClosedXML というのもありますが、EPPlus を利用する機会があったので紹介します。ClosedXMLは以下のページで基本をまとめています。
[C#][VB] Excelを扱うオープンソースライブラリ(ClosedXML)
公式サイト
最新のソースはGitHubで管理されていますが、ドキュメントとかはCodePlexにあるようです。
導入
EPPlus は Nuget からインストールします。以下のコマンドを実行するかGUIからインストールしてください。
PM> Install-Package EPPlus
サンプル
適当にファイルの読み書きをするコードを書いて試しました。
// using OfficeOpenXml;
static void Write()
{
// 出力ファイル
var xlsxFile = File.Create("sample.xlsx");
// Excelファイルの作成
using (var package = new ExcelPackage(xlsxFile))
{
// ワークシートを1枚追加
ExcelWorksheet worksheet = package.Workbook.Worksheets.Add("サンプルシート");
// "A1"の形式, R1C1形式, 範囲指定等で値を設定できる
worksheet.Cells["A1"].Value = 1;
worksheet.Cells[2, 1].Value = 2;
worksheet.SelectedRange[3, 1, 3, 2].Value = 3;
// SUM関数を設定(Valueには入れない)
worksheet.Cells[4, 1].Formula = "SUM(A1:A3)";
// 保存
package.Save();
}
}
static void Read()
{
// Excelファイルを開く
var xlsxFile = File.OpenRead("sample.xlsx");
using (var package = new ExcelPackage(xlsxFile))
{
// シート名で参照
ExcelWorksheet worksheet = package.Workbook.Worksheets["サンプルシート"];
// A1 - A4 を列挙(1, 2, 3, 6)
for (int i = 1; i <= 4; i++)
{
Console.WriteLine(worksheet.Cells[i, 1].Text);
}
}
}
まとめ
何かと便利なライブラリでした。
コメントを書く