使用web API和NPOI导出Excel
使用MVC controller输出excel的例子,自不待言,例子满天飞。
由于本项目使用的是Asp.net MVC API,因此在本项目使用API,实现了文件下载功能。代码的原理很简单,基本上是老外的代码。只是修改了一部分,以使其代码能正常工作(原代码输出的excel是空的)。以下是核心代码:
HSSFWorkbook workbook = new HSSFWorkbook();
ISheet sheet = workbook.CreateSheet("sheet1"); IRow row = sheet.CreateRow(0);
row.CreateCell(0).SetCellValue("教师姓名");
row.CreateCell(1).SetCellValue("学校");
row.CreateCell(2).SetCellValue("年级平均分");
row.CreateCell(3).SetCellValue("年级最高分");
row.CreateCell(4).SetCellValue("年级最低分");
row.CreateCell(5).SetCellValue("全市所处名次"); sheet.SetColumnWidth(1, 5000);
sheet.SetColumnWidth(2, 5000);
sheet.SetColumnWidth(3, 5000);
sheet.SetColumnWidth(4, 5000);
sheet.SetColumnWidth(5, 5000); for (var i = 0; i < list.Count; i++)
{
IRow row1 = sheet.CreateRow(i + 1);
row1.CreateCell(0).SetCellValue(list[i].XM);
row1.CreateCell(1).SetCellValue(list[i].XXMC);
row1.CreateCell(2).SetCellValue(list[i].AVGScore.ToFloat());
row1.CreateCell(3).SetCellValue(list[i].MaxScore.ToFloat());
row1.CreateCell(4).SetCellValue(list[i].MinScore.ToFloat());
row1.CreateCell(5).SetCellValue(list[i].OrderNumber);
}
System.IO.MemoryStream ms = new System.IO.MemoryStream(); workbook.Write(ms);
ms.Position = 0; var response = new HttpResponseMessage(HttpStatusCode.OK);
response.Content = new StreamContent(ms); response.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");
var fileName = "教学排名_" + (Courselist == null || courseID == null ? "全部" : Courselist.Name) + ".xls";
response.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment")
{
FileName = System.Web.HttpUtility.UrlEncode(fileName)
};
return response;
使用web API和NPOI导出Excel的更多相关文章
- NPOI导出Excel (C#) 踩坑 之--The maximum column width for an individual cell is 255 charaters
/******************************************************************* * 版权所有: * 类 名 称:ExcelHelper * 作 ...
- .NET NPOI导出Excel详解
NPOI,顾名思义,就是POI的.NET版本.那POI又是什么呢?POI是一套用Java写成的库,能够帮助开发者在没有安装微软Office的情况下读写Office的文件. 支持的文件格式包括xls, ...
- NPOI导出Excel示例
摘要:使用开源程序NPOI导出Excel示例.NPOI首页地址:http://npoi.codeplex.com/,NPOI示例博客:http://tonyqus.sinaapp.com/. 示例编写 ...
- NPOI导出excel(带图片)
近期项目中用到Excel导出功能,之前都是用普通的office组件导出的方法,今天尝试用下NPOI,故作此文以备日后查阅. 1.NPOI官网http://npoi.codeplex.com/,下载最新 ...
- NPOI导出Excel及使用问题
NPOI导出Excel及使用问题 因为最近公司质管部门提出了一个统计报表的需求:要求导出一个2016及2017年度深圳区域的所有供应商的费用成本计算--一个22列的Excel表,其中还包括多列的合并单 ...
- Npoi导出excel整理(附源码)
前些日子做了一个简单的winform程序,需要导出的功能,刚开始省事直接使用微软的组件,但是导出之后发现效率极其低下,绝对像web那样使用npoi组件,因此简单的进行了整理,包括直接根据DataTab ...
- Asp.Net 使用Npoi导出Excel
引言 使用Npoi导出Excel 服务器可以不装任何office组件,昨天在做一个导出时用到Npoi导出Excel,而且所导Excel也符合规范,打开时不会有任何文件损坏之类的提示.但是在做导入时还是 ...
- NPOI导出EXCEL 打印设置分页及打印标题
在用NPOI导出EXCEL的时候设置分页,在网上有查到用sheet1.SetRowBreak(i)方法,但一直都没有起到作用.经过研究是要设置 sheet1.FitToPage = false; 而 ...
- NPOI导出Excel(含有超过65335的处理情况)
NPOI导出Excel的网上有很多,正好自己遇到就学习并总结了一下: 首先说明几点: 1.Excel2003及一下:后缀xls,单个sheet最大行数为65335 Excel2007 单个sheet ...
随机推荐
- ztree--插件实现增删改查demo(完整版)
ztree--插件实现增删改查demo(完整版) var setting = { async: { enable: true, ...
- 腾讯安全反病毒实验室解读“Wannacry”勒索软件
背景 针对昨日英国医院被攻击,随后肆虐中国高校的 WannaCry 勒索事件,腾讯安全反病毒实验室第一时间给出了深度权威的分析.此次勒索事件与以往相比最大的亮点在于,勒索病毒结合了蠕虫的方式进行传播, ...
- leetcode380
class RandomizedSet { public: /** Initialize your data structure here. */ RandomizedSet() { } /** In ...
- Git(四):Git远程操作详解
转: http://www.ruanyifeng.com/blog/2014/06/git_remote.html Git是目前最流行的版本管理系统,学会Git几乎成了开发者的必备技能. Git有很多 ...
- React文档总结
元素渲染 更新元素渲染 计时器例子 function tick(){ const element = ( <div> <h1>Hello, World!</h1> ...
- mySQL中插入多条记录
用一条INSERT向SQL中插入多条记录 2008-12-22 10:07:01| 分类: 记事本_编程技术|举报|字号 订阅 Sql 语法: 插入多行记录 Insert Into Tabl ...
- Creating Procedural Textures
[Creating Procedural Textures] 由程序主生贴图,然后设置给Material.首先定义需要的数据: 在Start方法中完成初始化,注意设置的是_MainTex. 实现Gen ...
- SpringBoot整合ActiveMQ快速入门
Spring Boot 具有如下特性: 为基于 Spring 的开发提供更快的入门体验 开箱即用,没有代码生成,也无需 XML 配置.同时也可以修改默认值来满足特定的需求. 提供了一些大型项目中常见的 ...
- 用map函数来完成Python并行任务的简单示例
众所周知,Python的并行处理能力很不理想.我认为如果不考虑线程和GIL的标准参数(它们大多是合法的),其原因不是因为技术不到位,而是我们的使用方法不恰当.大多数关于Python线程和多进程的教材虽 ...
- controller,service,repository,component注解的使用对比
项目中的controller层使用@controller注解 @Controller 用于标记在一个类上,使用它标记的类就是一个SpringMVC Controller 对象.分发处理器将会扫描使用了 ...