■ 環境設定
http://blogs.yahoo.co.jp/dk521123/35596847.htmlで行ったNuGetでインストールする [1] Visual Studio で [ツール]-[NuGetパッケージ マネージャー]-[パッケージ マネージャー コンソール]を選択 [2] コマンド「Install-Package EPPlus」入力するhttps://www.nuget.org/packages/EPPlus/
■ サンプル
コントローラ
ExcelUsingEpPlusController.vbImports System.IO Imports System.Web.Mvc Namespace Controllers Public Class ExcelUsingEpPlusController Inherits Controller Function Index() As ActionResult Return View() End Function <HttpPost> <ValidateAntiForgeryToken()> Function Download() As ActionResult Using excel = New OfficeOpenXml.ExcelPackage() Using workSheet = excel.Workbook.Worksheets.Add("WorksheetName") ' データの入力(Valueはobject型。数値にしておかないとグラフ表示されない) workSheet.Cells(1, 2).Value = "シェア" workSheet.Cells(2, 1).Value = "Tokyo" workSheet.Cells(2, 2).Value = 50.0 workSheet.Cells(3, 1).Value = "Osaka" workSheet.Cells(3, 2).Value = 25.25 workSheet.Cells(4, 1).Value = "Kanagawa" workSheet.Cells(4, 2).Value = 10.75 workSheet.Cells(5, 1).Value = "Others" workSheet.Cells(5, 2).Value = (100 - 50.0 - 25.25 - 10.75) ' グラフ Using chart = workSheet.Drawings.AddChart("Pie Chat", OfficeOpenXml.Drawing.Chart.eChartType.Pie) chart.SetPosition(10, 0, 0, 0) chart.SetSize(400, 400) chart.Series.Add("B2:B5", "A2:A5") End Using ' 出力 Using memoryStream = New MemoryStream() excel.SaveAs(memoryStream) Return File(memoryStream.ToArray(), "application/msexcel", "Demo2.xlsx") End Using End Using End Using End Function End Class End Namespace
ビュー
Index.vbhtml@Code ViewData("Title") = "Index" End Code <h2>Index</h2> @Using (Html.BeginForm("Download", "ExcelUsingEpPlus", FormMethod.Post)) @Html.AntiForgeryToken() @<input type="submit" value="Download" /> End Using
参考文献
http://tech.sanwasystem.com/entry/2015/10/28/011019http://devlights.hatenablog.com/entry/2015/04/02/062545
http://sh-yoshida.hatenablog.com/entry/2014/11/29/112316