前端View(@ViewBag为查询条件):

<span id="exprobtn" class="btn_blue" style="dispaly:block;float:left;margin-left:5px;"><a href='/RunSum/Excel?date_Start=@ViewBag.dateStart&date_End=@ViewBag.dateEnd' target='_blank' style="color:white">导出</a></span>

后台Controller:

        //导出excel
public FileResult Excel()
{
//获取list数据
string date_Start = string.Empty;
string date_End = string.Empty;
string strlist = string.Empty; date_Start = Request["date_Start"] ?? "";
date_End = Request["date_End"] ?? "";

//调用WebService获取数据
DTWebService.WebService ws = new DTWebService.WebService(); try
{
strlist = ws.GetMJData(date_Start, date_End);
}
catch (Exception ex)
{
WriteLog(ex.ToString());
}
//将WebService获取的数据反序列成 泛型List<T>
List<Xdbmjcs> list = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Xdbmjcs>>(strlist); //创建Excel文件的对象
NPOI.HSSF.UserModel.HSSFWorkbook book = new NPOI.HSSF.UserModel.HSSFWorkbook();
//添加一个sheet
NPOI.SS.UserModel.ISheet sheet1 = book.CreateSheet("消毒包灭菌次数统计"); //给sheet1添加第一行的头部标题
NPOI.SS.UserModel.IRow row1 = sheet1.CreateRow();
row1.CreateCell().SetCellValue("序号");
row1.CreateCell().SetCellValue("消毒包编码");
row1.CreateCell().SetCellValue("消毒包名称");
row1.CreateCell().SetCellValue("消毒次数");
row1.CreateCell().SetCellValue("每次消毒费用");
row1.CreateCell().SetCellValue("金额"); //设置小数位
            IDataFormat dataformat = book.CreateDataFormat();
            ICellStyle style0 = book.CreateCellStyle();
            style0.DataFormat = dataformat.GetFormat("0.00");
//将数据逐步写入sheet1各个行
for (int i = ; i < list.Count; i++)
{
NPOI.SS.UserModel.IRow rowtemp = sheet1.CreateRow(i + );
rowtemp.CreateCell().SetCellValue(list[i].FRowNo);
rowtemp.CreateCell().SetCellValue(list[i].FXdbbm);
rowtemp.CreateCell().SetCellValue(list[i].FXdbmc);
rowtemp.CreateCell().SetCellValue(list[i].FXdcs);
rowtemp.CreateCell().SetCellValue((double)list[i].FMcxdfy);
 rowtemp.GetCell(4).CellStyle = style0;
rowtemp.CreateCell().SetCellValue((double)list[i].FMoney);
 rowtemp.GetCell(5).CellStyle = style0;
} //列宽自适应,只对英文和数字有效
for (int i = ; i <= list.Count; i++)
{
sheet1.AutoSizeColumn(i);
} // 写入到客户端
System.IO.MemoryStream ms = new System.IO.MemoryStream();
book.Write(ms);
ms.Seek(, SeekOrigin.Begin);
//根据浏览器设置是直接默认下载到指定路径还是询问选址
return File(ms, "application/vnd.ms-excel", "消毒包灭菌次数统计.xls");
}

MVC 实现表格数据导出Excel(NPOI方式)的更多相关文章

  1. 将页面中表格数据导出excel格式的文件(vue)

    近期由于项目需要,需要将页面中的表格数据导出excel格式的文件,折腾了许久,在网上各种百度,虽然资料不少,但是大都不全,踩了许多坑,总算是皇天不负有心人,最后圆满解决了. 1.安装相关依赖(npm安 ...

  2. ASP.Net MVC中数据库数据导出Excel,供HTTP下载(转)

    转自http://www.cnblogs.com/hipo/archive/2012/03/13/2394019.html 一.关于下载 一般对下载权限有没有限制,或安全性要求不高的情况下,基于web ...

  3. ASP.Net MVC中数据库数据导出Excel,供HTTP下载

    本文来自:http://www.cnblogs.com/hipo/archive/2012/03/13/2394019.html 一.关于下载 一般对下载权限有没有限制,或安全性要求不高的情况下,基于 ...

  4. Vue+element UI实现表格数据导出Excel组件

    介绍 这是一个可以将页面中的表格数据导出为Excel文件的功能组件,该组件一般与表格一起使用,将表格数据传给组件,然后通过点击组件按钮可将表格中的数据导出成Excel文件. 使用方法 由于封装该组件内 ...

  5. 前端 vue表格数据导出Excel 文件实现

    实现思路 使用json2csv将后台json数据转化为csv格式数据 采用创建Blob(二进制大对象)的方式来存放缓存数据: 生成下载链接: 创建一个a标签,设置href和download属性 触发a ...

  6. 前端表格数据导出excel

    使用tableExport.js导出bootstrap-table表格成excel并且支持中文 1. 下载tableExport.js https://github.com/hhurz/tableEx ...

  7. Vue2.0---将页面中表格数据导出excel

    这不是教程,是随笔. 项目中将后台返回的数据v-for到表格中,然后需要将这个表格导出为EXCEL 只说怎么做. 一.需要安装三个依赖: npm install -S file-saver xlsx ...

  8. 百度地图里面搜索到的公司商家电话导出表格?怎样将把百度地图里面搜索到的公司 电话 地址 等数据导出excel里?

    好多人在问:如何将百度地图里面搜索到的公司商家电话导出表格?怎样将把百度地图里面搜索到的公司 电话 地址 等数据导出excel里? 现在,很多人都在网络上找商家,联系业务. 百度地图里有很多的商家联系 ...

  9. 导出网页表格数据为Excel文件的前端解决方案

    在工作中,我们有时会遇到这样的需求,比如:要把页面的表格数据导出为Excel文件.在此记录下自己用的解决方法.代码如下: function tableToExcel(data){ //要导出的数据,t ...

随机推荐

  1. Encode and Decode Strings -- LeetCode

    Design an algorithm to encode a list of strings to a string. The encoded string is then sent over th ...

  2. [BZOJ2527]Meteors

    整体二分挺好玩的...学一发 这个询问显然是可以二分的,但每次都二分就会T爆,所以我们有了“整体”二分 每次处理一些询问,要求这些询问的答案一定在$[l,r]$中 先把$l$到$mid$的操作实施,那 ...

  3. 【置换群】Codeforces Round #393 (Div. 1) A. Pavel and barbecue

    就是先看排列p,必须满足其是一个环,才满足题意.就处理出有几个环,然后把它们合起来,答案就是多少. 然后再看序列b,自己稍微画一画就会发现,如果有偶数个1肯定是不行哒,否则,它就会再置换一圈回到它自己 ...

  4. 【分块】bzoj2453 维护队列

    http://www.cnblogs.com/autsky-jadek/p/4020296.html 同bzoj2120. #include<cstdio> #include<cma ...

  5. python3开发进阶-Django框架的详解

    一.MVC框架和MTV框架 MVC,全名是Model View Controller,是软件工程中的一种软件架构模式,把软件系统分为三个基本部分: 模型(Model).视图(View)和控制器(Con ...

  6. Problem J: 零起点学算法34——3n+1问题

    #include<stdio.h> int main() { ; int n; scanf("%d",&n); ) { ==) n=n*+; else n/=; ...

  7. 【MySQL笔记】数据操纵语言DML

    1.数据插入   INSERT INTO table_name (列1, 列2,...) VALUES(值1, 值2,....),(第二条),(第三条)...   注: 1)如果表中的每一列均有数据插 ...

  8. 【转载】Mini2440启动配置文件说明

    对于mini2440,虽然root_qtopia这个文件系统的GUI是基于Qtopia的,但其初始化启动过程却是由大部分由busybox完成,Qtopia(qpe)只是在启动的最后阶段被开启. 由于默 ...

  9. Linux之ps查找进程用kill终止命令

    http://www.cnblogs.com/peida/archive/2012/12/20/2825837.html http://blog.csdn.net/andy572633/article ...

  10. vs 代理登入

    https://msdn.microsoft.com/zh-cn/vstudio/dn771556.aspx