サーバー側でExcelを作ってみる(EPPlusで)

0.前置き

サーバー側でExcelのブックを作るって需要はそれなりにあると思います。
ちょっと調べ物をしたのでその結果をまとめようと思います。
良いなって思ったライブラリーのサンプルも作ってみました。

1.ライブラリーの紹介

Excelをサーバーサイドで作ることができるライブラリーには以下のようなものがあります。ネットでざっと調べてみました。

名称 現行Ver. OpenXML対応 利用難易度 開発活発度
NPOI 1.2.4 × 活発
OpenXML SDK 2.0 不明
ExcelPackage 1.0.0.1 活発でない
EPPlus 3.0.0.2 活発
ExcelCreater 2012 製品

備考

  • NPOIはver.1.3からOpenXML対応するらしいです。
  • ExcelCreaterはアドバンストソフトウェアの製品です。

CodePlexでも似たような話題があがっていて、こちらはたくさんのライブラリーが列挙されています。
CodePlex: Create Excel (.XLS and .XLSX) file from C#

今回はこの中で、開発が一番活発そうなEPPlusを選択してサンプルを作ってみようと思います。

2.インストール

Nugetでインストールできます。CodePlexからはサンプルアプリケーションが一緒に入っているソースコードをダウンロードすることができます。

3.実際に使ってみる

3-1.こんなファイルを作ってみます

表やフィルターや簡単な計算式やグラフを含んでいます。

3-2.コードの抜粋

サンプルコード全体はgithubに載せますが、一部抜粋して解説します。

Excelファイルの作成からシートの追加
一番のおおもとがExcelPackageというオブジェクトになります。

using (var package = new ExcelPackage(newFile))
 {
    var ws = package.Workbook.Worksheets.Add("4月の家計簿");
    ....
}

セルにデータを追加
セルの特定方法はExcelでよくある”A2″とかのアドレス指定のほかにも、何行・何列という指定方法もできます。

 //データの部分
ws.Cells["A2"].Value = "水道光熱費";
ws.Cells["B2"].Value = "電気";
ws.Cells["C2"].Value = 3000;
ws.Cells["D2"].Value = new DateTime(2012, 4, 1);

セルに計算式の追加
Formulaプロパティに式を書きます。

//合計金額を表示
ws.Cells["A9"].Value = "合計";
ws.Cells["B9"].Formula = "SUM(C2:C7)";

棒グラフの作成
グラフは列挙型で用意されているため、それを選択します。今回は積み上げ棒グラフ(?)です。

var chart = (ws.Drawings.AddChart("4月のお金", eChartType.BarStacked) as ExcelBarChart);
chart.Title.Text = "4月のお金";
chart.SetPosition(0, 400);
chart.SetSize(300, 300);
chart.Series.Add("C2:C7", "D2:D7");

4.サンプルを書いてみての補足

使いやすいです、これは。
ソースコードに付属しているサンプルコードも充実しているので習得も容易です。
はまりそう。

5.サンプルコード

サンプルコードはgithubにホスティングしてあります。
EPPlusのサンプル
コード本体

6.最後に

帳票系の知識がないなーとおもって、Excel帳票的な視点から触ってみました。
他にもPDFで帳票を作るツールとか追っかけてみたいです。

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。