MVC 实现表格数据导出Excel(NPOI方式)
前端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方式)的更多相关文章
- 将页面中表格数据导出excel格式的文件(vue)
近期由于项目需要,需要将页面中的表格数据导出excel格式的文件,折腾了许久,在网上各种百度,虽然资料不少,但是大都不全,踩了许多坑,总算是皇天不负有心人,最后圆满解决了. 1.安装相关依赖(npm安 ...
- ASP.Net MVC中数据库数据导出Excel,供HTTP下载(转)
转自http://www.cnblogs.com/hipo/archive/2012/03/13/2394019.html 一.关于下载 一般对下载权限有没有限制,或安全性要求不高的情况下,基于web ...
- ASP.Net MVC中数据库数据导出Excel,供HTTP下载
本文来自:http://www.cnblogs.com/hipo/archive/2012/03/13/2394019.html 一.关于下载 一般对下载权限有没有限制,或安全性要求不高的情况下,基于 ...
- Vue+element UI实现表格数据导出Excel组件
介绍 这是一个可以将页面中的表格数据导出为Excel文件的功能组件,该组件一般与表格一起使用,将表格数据传给组件,然后通过点击组件按钮可将表格中的数据导出成Excel文件. 使用方法 由于封装该组件内 ...
- 前端 vue表格数据导出Excel 文件实现
实现思路 使用json2csv将后台json数据转化为csv格式数据 采用创建Blob(二进制大对象)的方式来存放缓存数据: 生成下载链接: 创建一个a标签,设置href和download属性 触发a ...
- 前端表格数据导出excel
使用tableExport.js导出bootstrap-table表格成excel并且支持中文 1. 下载tableExport.js https://github.com/hhurz/tableEx ...
- Vue2.0---将页面中表格数据导出excel
这不是教程,是随笔. 项目中将后台返回的数据v-for到表格中,然后需要将这个表格导出为EXCEL 只说怎么做. 一.需要安装三个依赖: npm install -S file-saver xlsx ...
- 百度地图里面搜索到的公司商家电话导出表格?怎样将把百度地图里面搜索到的公司 电话 地址 等数据导出excel里?
好多人在问:如何将百度地图里面搜索到的公司商家电话导出表格?怎样将把百度地图里面搜索到的公司 电话 地址 等数据导出excel里? 现在,很多人都在网络上找商家,联系业务. 百度地图里有很多的商家联系 ...
- 导出网页表格数据为Excel文件的前端解决方案
在工作中,我们有时会遇到这样的需求,比如:要把页面的表格数据导出为Excel文件.在此记录下自己用的解决方法.代码如下: function tableToExcel(data){ //要导出的数据,t ...
随机推荐
- 位运算和enum中的位运算
1.位逻辑非运算 ~ 位逻辑非运算是单目的,只有一个运算对象.位逻辑非运算按位对运算对象的值进行非运算,即:如果某一位等于0,就将其转变为1:如果某一位等于1,就将其转变为0. 比如,对二进制的100 ...
- 对mysql数据库表的相关操作
虫师博客(Python使用MySQL数据库(新)): https://www.cnblogs.com/fnng/p/3565912.html 1.更改表的结构,增加一个字段放置新增的属性 alter ...
- 【后缀数组】poj2406 Power Strings
连续重复子串(pku2406)给定一个字符串 L,已知这个字符串是由某个字符串 S 重复 R 次而得到的,求 R 的最大值.算法分析:做法比较简单,穷举字符串 S 的长度 k,然后判断是否满足.判断的 ...
- 1.1(Spring学习笔记)Spring基础(BeanFactory、ApplicationContext 、依赖注入)
1.准备工作 下载Spring:http://repo.spring.io/libs-release-local/org/springframework/spring/ 选择需要下载的版本 ...
- 3.2常用类(java学习笔记)String与StringBuffer
一.String String又称不可变字符序列. 我们看JDK源码中用于字符存储的数组有final修饰,final修饰变量就代表变量不能改变. 我们可以看API文档中对String的描述. Stri ...
- Problem E: 零起点学算法25——判断是否直角三角形
#include<stdio.h> int main() { int a,b,c; while(scanf("%d %d %d",&a,&b,& ...
- Mysql 按条件排序查询一条记录 top 1 对应Mysql的LIMIT 关键字
项目中需要每次查询一个表中的最新的一条记录,表结构里面有日期字段.只需要显示一条记录. Mysql帮助文档里面的解释 3.6.2. 拥有某个列的最大值的行 任务:找出最贵物品的编号.销售商和价格. 这 ...
- 分布式架构高可用架构篇_activemq高可用集群(zookeeper+leveldb)安装、配置、高可用测试
原文:http://www.iteye.com/topic/1145651 从 ActiveMQ 5.9 开始,ActiveMQ 的集群实现方式取消了传统的Master-Slave 方式,增加了基于Z ...
- python字符串转日期
需要两步 为了从字符串中提取时间,并进行比较,因此有了这个问题,如何将字符串转换成datetime类型 1.字符串与time类型的转换 >>> import time>> ...
- 通过http协议发送json格式请求并解析
本人初入门径.代码略显粗糙,欢迎指点改正! 最近在做公司的项目的时候,需要和其他公司进行业务上的对接,对方直接扔过来一个协议用来开发,最近稍微看了一下,写了一个通过协议获取数据的方法 对方的协议内容部 ...