[C#] EPPlusでExcelの基本操作

[C#] EPPlusでExcelの基本操作

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

epplus-install

サンプル

適当にファイルの読み書きをするコードを書いて試しました。

// 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);
        }
    }
}

まとめ

何かと便利なライブラリでした。

C#カテゴリの最新記事