aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAvoAAABpCAIAAADEEBBGAAAJdElEQVR4nO3cy2ob5wLA8TxKnqTrrrPy/jxBn8DrHCKSRQJdadFNMMbgjaCmZ2FSI6luTI9bK5TD0cK3qoKAEB4hD3iULuSLLiNpdLe//H50U2U0l09C398zIz37AgAQtGfr3gEAgOWSOwBA4OQOABA4uQMABE7uAACBkzsAQODkDgAQOLkDAARO7gAAgZM7AEDg5A4AEDi5AwAETu4AAIFbZO50Op1Op5MkSZIkNwAAc+t2Rbcx1pw73cq5ubmJ47jdbrdarSiKrgAA5hBFUavVarfbcRx302e26FlA7nQ6nZubm8+fP//2228fP37cBwCYW7lcPj4+/uuvv+r1eqPRiKKoGz0zFM+8udNtndPT04ODg3UPCwAQoD///LNardZqtWazeX19PUPxzJs7SZJ8/vxZ6wAAy/P7779XKpWLi4tmsxnHcZIkq8ud7qmdP/74Y92DAACE7OjoaH9/v1Kp1Gq1KIqmPcEzb+7EcVwul+/35sWLF88BAOb27bff3gfGwcHBzs5OsVisVquNRiOO49XlTpIk7Xa7N77WPTIAQDh6GyOfz+/t7Z2cnNTr9Xa7PdX1rHlzp9VqyR0AYBl6G+Pdu3e7u7tHR0eXl5etVmt1uXNzcxNFkdwBAJahtzHevHmzvb1dLpfPz8+7t++sLneurq7kDgCwDL2Nkcvltra2SqXS6enp1dWV3AEAQjCQO+/fvy8Wi3IHAAhHb2O8evVK7gAAoZE7AEDg5A4AEDi5AwAETu4AAIGTOwBA4OQOABA4uQMABE7uAACBkzsAQODkDgAQOLkDAARO7gAAgZM7AEDg5A79NvKHZwMKmzMt9ChtFp7Qzq5Nd5R6HeY31r1TAHOQO/STO8gdIDiB5E7K9DvwEX23xMBEN+LhRRieMlZQBguezTOtbr5tTn7pFuqp5k76MA0cS6axnHbAu8vLHeBpCzp3eieD+yX6Zrr0RxdD7mSSaR5fnK8wd2ZZaGjLcgd42oLKnf6P5NvcuP0M38gfnh0eHvZ/qG8Wzs4OC4XDuwc3C0uZCEdNsT2P97ZR6i4MTVKpB5thFhtYcvw0trLcGffS9S43aW6eNE4pO5u2scybG3jdNgtpQ9o35DOOU6boyDSWWQd8wpbTXvX0w5/8ogAsXcC50//gRv7w7DCfL/R+RG8Wzs4O85v53txZxqfxhNzJD/25Pbj99JhJmbNTDc5049aTcc+nX2ikyS/dqMMbepVGnLfo27OBnU2fy+faXP+Caaua5e01c+4MPZhpocn/lDl3Jr95AZbvK8udjc2e3unWzsbGQ+487/twXvoloYdt3e/57RSa9rf34PM3NlLmpvHpsZE/TJn7xxzo48mdvgXGjFLKqvIjc2fU2Ygsmxu66+u+fgbLoveJt49MP1hPNnemePMCLE+wuXM3+dw9dps7zx9657Z2nvfnTtdio2dC7qRdbJquSiZvasbF15I7gy9dpifd7sXEEycPO9tdR6bdTtncmNNCA+2a9taa/vxOljNX2cZy2gFfSO44mwOsWVC5M242uMud+4/ku9pJzZ3Btc53dSvDvTvjH+w9vAXcbJN98flyJ9PVnskvXYrhKTjrgfddQMw6TqPqKr0Begt7lKln/ylyZ8JS0w74vBezsr95AZYn3NxJOVvffWgjf3jWvWu55//HTD8P6571L9S5cyftENN3ZvKsP9VP5qwnd9InxfG/BTNd7mSYfcdvblwDLDF3Ml3MmjCWmQc8w6FmvFU5643fAEsTVO6M+9R+yJ3Bc/dP4OzOiL1KWWjss4dvHHmUF7NGbWHsBZkpz+5sjrvIkmFz2XNnQSc0Zr93Z6aFJi8/Ve4MrEzxACv3NebOwNLrvndn2ty53+f0m2xHPztlMnoSuZNyC8wi7t0Zvtl4+s2lvnb3y2XcpUyeQu5kPF4/5AOswVeZOynPXeM3sybmzmZhxD0ao3/hJG3Xh580+Xv3jyJ3RvxyTPpkmzKg+dGZkjaQ021u8Dt1fWsbdQ/wRr4w7WT/6HJn4J026kzoNG9egOWRO725s9Df3Rn9Uzh3H/9T5M641UzaapZ7Scaubd0Xs8b9qFDKt7zHLJGys4PZknlzw1u7/V2ntC89jd2n7MOUaZdWkzvDw5Ry+FO+eQGWRu4M5M7iPoYXljvPUya7cbs5uOERQXD78N3Sjzh3nvcfU3dLo86cjDn6ETubcvYm6+Z6luv72t/onZ91qB5f7vTv0/1vO4w8DzTf8QPMJ5DcgUdgip/yAWCV5A7MZOgGHD+oB/BoyR2YSfrlJXfgAjxGcgdmNBg8UgfgsZI7AEDg5A4AEDi5AwAETu4AAIGTOwBA4OQOABA4uQMABE7uAACBkzsAQODkDgAQOLkDAARO7gAAgZM7AEDg5A4AEDi5AwAETu4AAIGTOwBA4OQOABA4uQMABE7uAACB622MXC63ztwpl8v3u/LNN9+se2QAgBC8ePHiPjAODg5yudzW1lapVFpD7kRRdHx8vA8AsDS//PLLmzdvtre3y+Xy+fl5FEWry50kSVqt1tnZ2boHAQAIWaFQePfu3e7u7tHR0eXlZavVSpJkdbnTbrfr9fqnT5/WPQ4AQJg+fPjw8uXLfD6/t7d3cnJSr9fb7fbqcqfT6cRx3Gg0qtXqp0+ffv3113UPCAAQiJ9//rlUKv30008vX778/vvvd3Z2isVitVptNBpxHHc6ndXlTvf2nVqtVqlU9vf3d3Z28vn827dvX79+ncvlXgEAzCSXy71+/frt27f5fH5nZ2d/f79Sqfz999/dG3dWlztfvnxJkiSO42azeXFxUalUisXijz/+uLu7u729vbW19R4AYCZbW1vb29u7u7t7e3vFYrFSqVxcXDSbzTiOp7qStYDc6Z7gub6+bjabtVqtWq2enJx8/PixXC6XSqUiAMBMSqVSuVw+Ojo6OTmpVqu1Wq3ZbF5fX097amcBuXNfPHEcR1HUaDTq9frl5eX5+fkpAMAczs/PLy8v6/V6o9GIoiiO4xlaZzG50y2eJEm60dNut1utVhRFVwAAc4iiqNVqtdvtbugkSTJD6ywsd+6jp9s93fQBAJhTtyu6jTFzoiwydwAAHiG5AwAETu4AAIGTOwBA4OQOABA4uQMABE7uAACBkzsAQODkDgAQOLkDAARO7gAAgZM7AEDgFpA7hR/+8+y7/v/+/f//zb9eAIBFWODZndq/vjsuLG51D/57/OyH2jJWDAB8Df4BEoO8xWC+fH4AAAAASUVORK5CYII=" 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. 数据库的应用——直接从内存中读取osg节点 (转)

    数据库的应用——直接从内存中读取osg节点 目的:要从数据库中读取节点数据到osg. 一开始的方法是这样的,每当我要添加一个数据库中的节点数据时,首先把它读取到内存中,然后写入一个文件,最后再次从文件 ...

  2. 微信公共服务平台开发(.Net 的实现)9-------处理二维码

    今天我们来共同学习一下微信公共服务平台中一个重要内容---二维码扫描.众所周知二维码目前应用范围很广,在这里不再叙述背景了,但是值得一提的是目前大家手机上面应用的二维码扫描工具是支持的都是QR码和PD ...

  3. TP复习12

    四.特殊标签 1.比较标签 eq或者 equal 等于 neq 或者notequal 不等于 gt 大于 egt 大于等于 lt 小于 elt 小于等于 heq 恒等于 nheq 不恒等于 2.范围标 ...

  4. Linux - wc统计文件行数、单词数或字节数

    一 wc简单介绍 wc命令用来打印文件的文本行数.单词数.字节数等(print the number of newlines, words, and bytes in files).在Windows的 ...

  5. .net 调用C++类库

    事实上这一直是个非常无解的问题.最好的办法是将C++类库写成COM. 可是有时候往往不能这个做.那就仅仅有两种办法:转成C函数形式或者Manage C++封装. 下文就介绍了这两种方法. 原帖:htt ...

  6. 从命令行运行django数据库操作

    从命令行运行django数据库操作,报错: django.core.exceptions.ImproperlyConfigured: Requested setting DEFAULT_INDEX_T ...

  7. Windows下编译openssl

    依赖工具: 1.VS 2.perl 编译方法: release: :\> 切换到openssl目录 :\> perl Configure VC-WIN32 no-asm --prefix= ...

  8. careercup-高等难度 18.9

    18.9 随机生成一些数字并传入某个方法.编写一个程序,每当收到新字符数字时,找出并记录中位数. 类似:设计一个数据结构,包括两个函数,插入数据和获得中位数 解法: 一种解法是使用两个优先级堆:一个大 ...

  9. LeetCode18 4Sum

    题意: Given an array S of n integers, are there elements a, b, c, and d in S such that a + b + c + d = ...

  10. 看完《Don't make me think》的总结

    寒假在公司实习,然后公司人数比较少,作为一个前端实习生,分工下,就去负责了项目的业务逻辑的梳理以及页面的设计,为了让页面设计的好看,交互性好,便于用户使用,我就快速看了这本薄薄的却很有用的书.书的整体 ...