aaarticlea/png;base64,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" alt="" width="315" height="43" />

第一步:为项目安装Epplus Nuget包。

Install-Package EPPlus 

第二步:在data项目中新建Repository,命名为ExcelWriter.cs.

将以下代码粘入,修改项目引用名字。

using System;
using OfficeOpenXml;
using System.Collections.Generic;
using System.ComponentModel;
using System.IO;
using System.Linq; namespace ****.Data.Repositories
{
public class ExcelWriter<TEntity> where TEntity :class
{
public void WriteToFileStream(IEnumerable<TEntity> list, out MemoryStream memoryStream)
{
var pack = new ExcelPackage();
var ws = pack.Workbook.Worksheets.Add("预约时间表"); var col = ;
var row = ;
foreach (var propertyInfo in typeof(TEntity).GetProperties())
{
var displayName = propertyInfo.Name;
ws.Cells[row, col].Value = displayName;
col++;
} row++; foreach (var coachBatchPayoutExcelModel in list)
{ for (var i = ; i < col; i++)
{
var colName = ws.Cells[, i].Value.ToString();
ws.Cells[row, i].Value = coachBatchPayoutExcelModel.GetType().GetProperty(colName).GetValue(coachBatchPayoutExcelModel, null);
}
row++;
} foreach (var propertyInfo in typeof(TEntity).GetProperties())
{
var attribute = propertyInfo.GetCustomAttributes(typeof(DisplayNameAttribute), true).Cast<DisplayNameAttribute>().SingleOrDefault();
if (attribute != null)
{
ws.Cells.First(item => item.GetValue<string>() == propertyInfo.Name).Value = attribute.DisplayName;
}
}
ws.Column().Style.Numberformat.Format = "yyyy年MM月dd日";
ws.Column().Width = ;
ws.Column().Width = ;
ws.Column().Width = ;
ws.Column().Width = ;
ws.Column().Width = ;
ws.Column().Width = ;
memoryStream = new MemoryStream(pack.GetAsByteArray());
}
}
}

以上为一泛型,如何使用请参考以下使用样例。

  #region 下载数据

            Mapper.CreateMap<OnlineBookingInfo, ExcelModel>();
var excels = Mapper.Map<List<OnlineBookingInfo>, List<ExcelModel>>(onlineBookingInfos); MemoryStream memoryStream;
var excelWriter = new ExcelWriter<ExcelModel>();
excelWriter.WriteToFileStream(excels, out memoryStream);
return File(memoryStream, "application/vnd.ms-excel", "郑州科技馆预约参观名单" + DateTime.Now.Date.ToString("yyyy_MM_dd") + ".xls");
#endregion

先将需要导出的数据使用mapper,映射到新的实体类型(只需要导出的实体,此处的可以为新建)

excel的title为新建实体的dispalyname的名字。

使用的时候先

MemoryStream memoryStream;

var excelWriter = new ExcelWriter<ExcelModel>();

然后

excelWriter.WriteToFileStream(excels, out memoryStream);

最后输出

return File(memoryStream, "application/vnd.ms-excel", "郑州科技馆预约参观名单" + DateTime.Now.Date.ToString("yyyy_MM_dd") + ".xls");

 

利用 NUget包 EPPlus 实现数据导出到Excel(适用于MVC)的更多相关文章

  1. 利用 NUget包 EPPlus 实现数据导出到Excel(适用于DTcms)

    首先安装EPPlus 包

  2. Java利用Apache POI将数据库数据导出为excel

    将数据库中的数据导出为excel文件,供其他人查看 public class POITest { public static void main(String[] args) { POITest te ...

  3. 在VB中利用Nuget包使用SQLite数据库和Linq to SQLite

    上午解决了在C#中利用Nuget包使用SQLite数据库和Linq to SQLite,但是最后生成的是C#的cs类文件,对于我这熟悉VB而对C#白痴的来说怎么能行呢? 于是下午接着研究,既然生成的是 ...

  4. 用node.js写一个简单爬虫,并将数据导出为 excel 文件

    引子 最近折腾node,最开始像无头苍蝇一样到处找资料,然而多数没什么卵用,都在瞎比比.在一阵瞎搞后,我来分享一下初步学习node的三个过程: 1 撸一遍NODE入门,对其有个基本的了解: 2 撸一遍 ...

  5. asp.net将数据导出到excel

    本次应用datatable导出,若用gridview(假设gridview设为了分页显示)会出现只导出当前页的情况. protected void btnPrn_Click(object sender ...

  6. 大批量数据导出到Excel的实现

    在平时的项目中,将数据导出到Excel的需求是很常见的,在此对一些常见的方法做以总结,并提供一种大数据量导出的实现. OLEDB   使用OLEDB可以很方便导出Excel,思路很简单,处理时将Exc ...

  7. struts2结合poi-3.7实现数据导出为excel

    我们在处理数据的时候,有可能要将数据导出到excel文件中,那么java中是怎么实现的呢?apache开发的poi就可以帮我们实现啦,它也是开源的代码,导入相应的jar包,就可以轻松实现,下面让我们来 ...

  8. 使用POI把查询到的数据表数据导出到Excel中,一个表一个sheet.最详细!!!

    一.需求 我们会遇到开发任务: 经理:小王,你来做一下把数据库里的数据导出到Excel中,一个表是一个sheet,不要一个表一个Excel. 小王:好的,经理.(内心一脸懵逼) 二.前期准备 首先我们 ...

  9. 学习笔记 DataGridView数据导出为Excel

    DataGridView数据导出为Excel   怎样把WinForm下的“DGV”里的绑定数据库后的数据导出到Excel中. 比如:在窗体里有个一“DGV”,DataGridView1,绑定了数据源 ...

随机推荐

  1. GLSL-几何着色器详解跟实例(GS:Geometry Shader)[转]

    [OpenGL4.0]GLSL-几何着色器详解和实例(GS:Geometry Shader) 一.什么是几何着色器(GS:Geometry Shader) Input Assembler(IA)从顶点 ...

  2. HDOJ 1914 The Stable Marriage Problem

    rt 稳定婚姻匹配问题 The Stable Marriage Problem Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 6553 ...

  3. angularJs项目实战!02:前端的页面分解与组装

    自从上一篇文章到现在已经有将近一个月的时间,我将精力放在了前端页面分解与组装,和angularjs如何与jquery.bootstrap.D3等一系列其他类库结合使用的经验总结上.由于公司新招了一些员 ...

  4. mysql 线程级别的缓冲区

    线程栈信息使用内存(thread_stack) 主要用来存放每一个线程自身的标识信息,如线程id,线程运行时基本信息等等,我们可以通过 thread_stack 参数来设置为每一个线程栈分配多大的内存 ...

  5. MHA 安装过程 原创

    root@monitor yum.repos.d]# cat CentOS-Base.repo [base]name=CentOS-$releasever - Basefailovermethod=p ...

  6. 性能监视器(SSAS)

    使用性能监视器,您可以通过性能计数器监视 Microsoft SQL Server Analysis Services (SSAS) 实例的性能. 性能监视器是用于跟踪资源使用情况的 Microsof ...

  7. 如何在Windows Server 2003中配置FTP站点服务

    前面写过一篇文章<怎样给你的网站注册一个好域名?> ,讲到“玉米”,笔者有很深的情节,也希望与大家交流“米事”,可以站内私信我或者直接回复文章. 有了好域名只是做网站的开始.我们还要买主机 ...

  8. spark1.2.0编译

    spark 有三种编译方式:SBT.MAVEN.make-distribution.sh.SBT.MAVEN两种方式打出来的包比较大,不适合部署使用.因此我们通常使用第三种方式打包. ./make-d ...

  9. Python练习题 024:求位数及逆序打印

    [Python练习题 024] 给一个不多于5位的正整数,要求:一.求它是几位数,二.逆序打印出各位数字. ---------------------------------------------- ...

  10. 1.6.9 UIMA Integration

    1. UIMA 集成 你可以使用solr集成Apache的非结构化信息管理架构(UIMA).UIMA可以让你定义自己的分析引擎通道,逐步添加元数据到文档的标注. 关于Solr UIMA的更多信息,参考 ...