你的位置:首页 > 软件开发 > ASP.net > MVC导出数据到EXCEL新方法:将视图或分部视图转换为HTML后再直接返回FileResult

MVC导出数据到EXCEL新方法:将视图或分部视图转换为HTML后再直接返回FileResult

发布时间:2015-09-29 14:00:04
导出EXCEL方法总结MVC导出数据到EXCEL的方法有很多种,常见的是:1.采用EXCEL COM组件来动态生成XLS文件并保存到服务器上,然后转到该文件存放路径即可;优点:可设置丰富的EXCEL格式,缺点:需要依赖EXCEL组件,且EXCEL进程在服务器中无法及时关闭,以及服 ...

导出EXCEL方法总结

MVC导出数据到EXCEL的方法有很多种,常见的是:

1.采用EXCEL COM组件来动态生成XLS文件并保存到服务器上,然后转到该文件存放路径即可;

优点:可设置丰富的EXCEL格式,缺点:需要依赖EXCEL组件,且EXCEL进程在服务器中无法及时关闭,以及服务器上会存留大量的不必要的XLS文件;

2.设置输出头为:application/ms-excel,再输出拼接的HTML TABLE数据;

优点:无需组件,可设置一些简单的格式,缺点:拼接HTML TABLE过程较复杂,不够直观;

3.借助第三方组件(如:NPOI)

优点及缺点均依赖于第三方组件的易用性上面,在此不作说明;

大家也可以看我之前发表的一篇博文:我写的一个ExcelHelper通用类,可用于读取或生成数据

实现在MVC下新的导出EXCEL方法

这里给大家分享一个在MVC下的新方法:将视图或分部视图转换为HTML后再直接返回FileResult即可轻松实现导出EXCEL功能,下面直接上代码。

首先看一下分部视图(IndexDataList)的内容:

@model IEnumerable<CCPS.Models.Data.CustomerCommentInfo>@using PagedList.Mvc;<table>  <thead>    <tr>      <th>意见ID</th>      <th>组 织</th>      <th>车牌</th>      <th>车型</th>      <th>皇家版</th>      <th>客户</th>      <th>客户电话</th>      <th>责任部门</th>      <th>责任班组</th>      <th>业务顾问</th>      <th>意见类型</th>      <th>状态</th>      <th>录入员</th>      <th>录入时间</th>    </tr>  </thead>  <tbody id="list-table-body">    @foreach (var item in Model)    {      get='_blank'>string className = "";      if (item.Status == "已审核未处理")      {        className = "uncl_yellow";        if (item.AuditDatetime != null && DateTime.Now > ((DateTime)item.AuditDatetime).AddHours(24))        {          className = "uncl_red";        }      }      <tr data-adt="@item.AuditDatetime">        <td><a href="http://oa.pfcn.com/flow/fl_ui_main.aspx?ID=@item.Id&flow_id=147" target="_blank">@item.Id</a></td>        <td>@item.OrgName</td>        <td>@item.PlateNo</td>        <td>@item.Model</td>        <td>@item.IsRoyalVer</td>        <td>@item.CustomerName</td>        <td>@item.CustomerPhoneNo</td>        <td>@item.RelevantDept</td>        <td>@item.RelevantGroup</td>        <td>@item.Consultant</td>        <td>@item.Type</td>        <td>@item.Status</td>        <td>@item.CreateBy</td>        <td>@string.Format("{0:g}", item.CreateDatetime)</td>      </tr>    }  </tbody></table>@if(true!=ViewBag.NoPaging){ <div >  @Html.PagedListPager(Model as PagedList.IPagedList<CCPS.Models.Data.CustomerCommentInfo>, page => string.Format("javascript:turnPage({0});", page), PagedListRenderOptions.ClassicPlusFirstAndLast)</div>}

原标题:MVC导出数据到EXCEL新方法:将视图或分部视图转换为HTML后再直接返回FileResult

关键词:HTML

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。