版权保护声明:本文未经许可,禁止任何形式转载,违者必究。
1.创建解决方案
打开Visual Stuido(本示例为2015的版本),创建一个新的MVC项目解决方案并命名为:EPPlusDemo
2.安装EPPlus包
打开nuget.org网站,搜索EPPlus,得到EPPlus的安装命令如下:
EPPlus Nuget.org包安装命令
3.创建示例实体及演示数据
3.1 在解决方案[EPPlusDemo]中的Models的文件夹下创建一个名为Person的实体类,实体的属性代码如下:
using System;
namespace EPPlusDemo.Model
{
public class Person
{
/// <summary>
/// 名字
/// </summary>
public string Name { get; set; }
/// <summary>
/// 出生日期
/// </summary>
public DateTime Birthday { get; set; }
/// <summary>
/// 薪资
/// </summary>
public decimal Salary { get; set; }
/// <summary>
/// 职位
/// </summary>
public string Title { get; set; }
}
}
Person实体类中包含了一个人的名字,出生日期,薪资和职位4个属性,本文后面的操作将基于这些完成。 3.2 创建一个名为Data的文件夹,在这个文件夹下分别创建一个IDataProvider接口和一个LocalDataProvider类,其中IDataProvider为本示例数据的提供接口类,LocalDataProvider继承至IDataProvider,由于是示例,所以LocalDataProvider只实现了硬编码的数据源。两个文件的代码如下:
IDataProvider.cs:
using System.Collections.Generic;
using EPPlusDemo.Models;
namespace EPPlusDemo.Data
{
public interface IDataProvider
{
IEnumerable<Person> Init();
}
}
LocalDataProvider.cs
using System;
using System.Collections.Generic;
using EPPlusDemo.Models;
namespace EPPlusDemo.Data
{
public class LocalDataProvider : IDataProvider
{
public IEnumerable<Person> Init()
{
var lst = new List<Person>
{
new Person {Name="张三",Birthday=new DateTime(1980,1,1),Salary=15000.50m,Title="项目主管" },
new Person {Name="李四",Birthday=new DateTime(1985,2,24),Salary=12000,Title="项目经理" },
new Person {Name="王五",Birthday=new DateTime(1988,11,10),Salary=12000,Title="工程师" },
new Person {Name="小牛",Birthday=new DateTime(1990,10,26),Salary=12000,Title="技术员" }
};
return lst;
}
}
}
3.3 创建HomeController控制器,并在该控制器中创建两个Action,分别为Index和Export。在操作Export中我们来实现填充Excel数据并下载的功能,整个HomeController控制器的具体代码如下:
using System;
using System.IO;
using System.Web.Mvc;
using EPPlusDemo.Data;
using EPPlusDemo.Services;
namespace EPPlusDemo.Controllers
{
public class HomeController : Controller
{
// GET: Home
public ActionResult Index()
{
return View();
}
public ActionResult Export()
{
var service = new ExportService();
var dataProvider = new LocalDataProvider();
var stream= service.ExportPersionRecords(dataProvider);
var memoryStream = stream as MemoryStream;
Response.ContentType = "application/vnd.ms-excel";
Response.AddHeader("content-disposition", string.Format("attachment;filename={0}-{1}.xlsx", "员工信息一览表", DateTime.Now.ToString("yyyyMMddHHmmssfff")));
Response.BinaryWrite(memoryStream.ToArray());
Response.End();
return View("index");
}
}
}
到此,我们的程序部分就全部完成了。按下F5运行WEB应用程序,打开示例下载地址:http://localhost:18620/home/export, 你将得到下载EXCEL的保存提示窗口,如下:
点击 "OK",将EXCEL文件保存到本地,打开保存的EXCEL文件,你将看到我们的示例数据已在EXCEL中了。
版权保护声明:本文未经许可,禁止任何形式转载,违者必究。
发表评论
登录用户才能发表评论, 请 登 录 或者 注册