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. 【JavaScript】JavaScript模块化编程 - CommonJS, AMD 和 RequireJS之间的关系

    通行的Javascript模块规范共有两种:CommonJS和AMD 先说说CommonJS   CommonJS - 大家是不是觉得JavaScript仅仅是一个客户端的编译语言,其实JavaScr ...

  2. 强大的ASP.NET控件---验证控件

        学习完了牛腩之后,在进行ASP.NET的学习的时候,对全部学的知识.都有一种似曾相识的感觉,"哦,这个,在牛腩新闻公布系统中用过".仅仅只是那时候.用的也是迷迷糊糊的,就说 ...

  3. 设计模式 ( 十八 ) 策略模式Strategy(对象行为型)

    设计模式 ( 十八 ) 策略模式Strategy(对象行为型) 1.概述 在软件开发中也经常遇到类似的情况,实现某一个功能有多种算法或者策略,我们能够依据环境或者条件的不同选择不同的算法或者策略来完毕 ...

  4. [原创]SQL SERVER 2008R2 技术总结专题目录索引

    前言:      在工作中使用了SQL SERVER 2008R2已经很长一段时间了,工作中自己也有个蛮好的习惯:总是喜欢将碰到的一些问题.技术方案等记录下来,现在越积越多,最近也比较轻松了,准备整理 ...

  5. 如何为Linux安装Go语言

    导读 Go 语言又称为 golang, 是由 Google 最初开发的一种开源编程语言,其在设计时就遵循了简单.安全和速度的 3 大原则.Go 语言具有多种调试.测试.分析和代码审查工具,如今 Go ...

  6. mysql 历史记录查询

    SHOW SLAVE STATUS insert into jy510_admin set userid='123123' mysqlbinlog d:xampp\mysql\data\mysql-b ...

  7. PHP Fuzzing行动——源码审计

    目录: Section 1: 20种PHP源码快速审计方式  Section 2: PHP源码审计自动化( PHP Fuzzer )  风险级别: ■ Low ■ Medium ■ High   在开 ...

  8. V8::Arguments中This和Holder的区别

    ## v8::Arguments namespace v8 { class Arguments { public:  inline int Length() const;  inline Local& ...

  9. IOS 应用 退出的一个小方法

    AppDelegate * app=(AppDelegate *)[[UIApplication sharedApplication]delegate]; UIWindow *window = app ...

  10. 【阿里云产品公测】高大上的搜索服务OpenSearch,你值得拥有!

    [阿里云产品公测]高大上的搜索服务OpenSearch,你值得拥有! 作者:阿里云用户trcher ​ 一.前言: 在OpenSearch没出来之前,就一直想给网站做个搜索功能,虽然网站本身自带搜索功 ...