EPPlusを使ったExcel Hello World

  • 20
    Like
  • 0
    Comment
More than 1 year has passed since last update.

EPPlusはOpen XMLの仕様を元にExcelのデータ操作を行う為の.NET Framework向けのオープンソースライブラリです。Open XMLの仕様を元にXMLデータを直接操作するのでExcelのインストールやライセンスは必要ありませんし、サーバーサイドで使用した場合の種々の問題もありません。ただし、Open XMLの仕様に依存するので、2007以降の.xlsx形式のファイルのみ扱え、それ以前の.xlsのファイルは扱えません。

また、ライブラリはNuGetを使ってプロジェクトに追加できます。

以下にExcelファイルを作り、Helloというワークシートを追加、A1セルにHello Worldを書き込んで保存するサンプルを載せます。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Drawing;

using OfficeOpenXml;
using OfficeOpenXml.Style;

namespace EPplusSample1
{
    /// <summary>
    /// EPPlusを使ったExcel操作のサンプル。
    /// </summary>
    class Program
    {
        /// <summary>
        /// エントリーポイント
        /// </summary>
        /// <param name="args"></param>
        static void Main(string[] args)
        {
            var newFile = new FileInfo(@"sample1.xlsx");

            using (var package = new ExcelPackage(newFile))
            {
                ExcelWorksheet worksheet = null;

                // Excelファイルが既に存在するなら、該当ワークシートが存在するか確認する。
                if (newFile.Exists)
                {
                    worksheet = package.Workbook.Worksheets.Where(s => s.Name == "Hello").FirstOrDefault();                    
                }                  

                // ワークシートが存在しなければ、ワークシートを追加する
                if (worksheet == null)
                {
                    worksheet = package.Workbook.Worksheets.Add("Hello");
                }

                // セルに文字列を挿入する。
                worksheet.Cells[1, 1].Value = "こんにちは、世界。";

                //フォントの色を設定。
                worksheet.Cells[1, 1].Style.Font.Color.SetColor(Color.Red);

                //Excelのファイルをセーブする。
                package.Save();
            }

        }
    }
}

詳しい使い方はCodePlexのサイトからZIPパッケージをダウンロードし、その中のSampleフォルダの各サンプルを見るとよくわかると思います。