使用MVC controller输出excel的例子,自不待言,例子满天飞。

由于本项目使用的是Asp.net MVC API,因此在本项目使用API,实现了文件下载功能。代码的原理很简单,基本上是老外的代码。只是修改了一部分,以使其代码能正常工作(原代码输出的excel是空的)。以下是核心代码:

  1. HSSFWorkbook workbook = new HSSFWorkbook();
  2. ISheet sheet = workbook.CreateSheet("sheet1");
  3.  
  4. IRow row = sheet.CreateRow(0);
  5. row.CreateCell(0).SetCellValue("教师姓名");
  6. row.CreateCell(1).SetCellValue("学校");
  7. row.CreateCell(2).SetCellValue("年级平均分");
  8. row.CreateCell(3).SetCellValue("年级最高分");
  9. row.CreateCell(4).SetCellValue("年级最低分");
  10. row.CreateCell(5).SetCellValue("全市所处名次");
  11.  
  12. sheet.SetColumnWidth(1, 5000);
  13. sheet.SetColumnWidth(2, 5000);
  14. sheet.SetColumnWidth(3, 5000);
  15. sheet.SetColumnWidth(4, 5000);
  16. sheet.SetColumnWidth(5, 5000);
  17.  
  18. for (var i = 0; i < list.Count; i++)
  19. {
  20. IRow row1 = sheet.CreateRow(i + 1);
  21. row1.CreateCell(0).SetCellValue(list[i].XM);
  22. row1.CreateCell(1).SetCellValue(list[i].XXMC);
  23. row1.CreateCell(2).SetCellValue(list[i].AVGScore.ToFloat());
  24. row1.CreateCell(3).SetCellValue(list[i].MaxScore.ToFloat());
  25. row1.CreateCell(4).SetCellValue(list[i].MinScore.ToFloat());
  26. row1.CreateCell(5).SetCellValue(list[i].OrderNumber);
  27. }
  28. System.IO.MemoryStream ms = new System.IO.MemoryStream();
  29.  
  30. workbook.Write(ms);
  31. ms.Position = 0;
  32.  
  33. var response = new HttpResponseMessage(HttpStatusCode.OK);
  34. response.Content = new StreamContent(ms);
  35.  
  36. response.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");
  37. var fileName = "教学排名_" + (Courselist == null || courseID == null ? "全部" : Courselist.Name) + ".xls";
  38. response.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment")
  39. {
  40. FileName = System.Web.HttpUtility.UrlEncode(fileName)
  41. };
  42. return response;

  

使用web API和NPOI导出Excel的更多相关文章

  1. NPOI导出Excel (C#) 踩坑 之--The maximum column width for an individual cell is 255 charaters

    /******************************************************************* * 版权所有: * 类 名 称:ExcelHelper * 作 ...

  2. .NET NPOI导出Excel详解

    NPOI,顾名思义,就是POI的.NET版本.那POI又是什么呢?POI是一套用Java写成的库,能够帮助开发者在没有安装微软Office的情况下读写Office的文件. 支持的文件格式包括xls, ...

  3. NPOI导出Excel示例

    摘要:使用开源程序NPOI导出Excel示例.NPOI首页地址:http://npoi.codeplex.com/,NPOI示例博客:http://tonyqus.sinaapp.com/. 示例编写 ...

  4. NPOI导出excel(带图片)

    近期项目中用到Excel导出功能,之前都是用普通的office组件导出的方法,今天尝试用下NPOI,故作此文以备日后查阅. 1.NPOI官网http://npoi.codeplex.com/,下载最新 ...

  5. NPOI导出Excel及使用问题

    NPOI导出Excel及使用问题 因为最近公司质管部门提出了一个统计报表的需求:要求导出一个2016及2017年度深圳区域的所有供应商的费用成本计算--一个22列的Excel表,其中还包括多列的合并单 ...

  6. Npoi导出excel整理(附源码)

    前些日子做了一个简单的winform程序,需要导出的功能,刚开始省事直接使用微软的组件,但是导出之后发现效率极其低下,绝对像web那样使用npoi组件,因此简单的进行了整理,包括直接根据DataTab ...

  7. Asp.Net 使用Npoi导出Excel

    引言 使用Npoi导出Excel 服务器可以不装任何office组件,昨天在做一个导出时用到Npoi导出Excel,而且所导Excel也符合规范,打开时不会有任何文件损坏之类的提示.但是在做导入时还是 ...

  8. NPOI导出EXCEL 打印设置分页及打印标题

    在用NPOI导出EXCEL的时候设置分页,在网上有查到用sheet1.SetRowBreak(i)方法,但一直都没有起到作用.经过研究是要设置  sheet1.FitToPage = false; 而 ...

  9. NPOI导出Excel(含有超过65335的处理情况)

    NPOI导出Excel的网上有很多,正好自己遇到就学习并总结了一下: 首先说明几点: 1.Excel2003及一下:后缀xls,单个sheet最大行数为65335 Excel2007 单个sheet ...

随机推荐

  1. JavaScript知识总结--对象的相关概念

    一.定义 无序属性的集合. 说白了就是一个容器,可以容纳[基本值.对象或者函数],这些东西都叫做属性.每个属性都有一个名字,每个名字都映射一个值(可以是基本类型的值,也可以是引用类型的值).从以上描述 ...

  2. CSS——操作css文件

    //动态 css文件内容. 修改鼠标经过时行.单元格的背景颜色 function header_rowOrcell_over(divGrid) { var gridopts = divGrid.dat ...

  3. webpy简单使用

    #!/usr/bin/env python import web import pymysql.cursors # Connect to the database connection = pymys ...

  4. SpringMVC配置过程中出现的问题!

    <c:set var="ctx" value="${pageContext.request.contextPath}" />不起作用,原因是web. ...

  5. Yum -y update 报错

    问题描述: 操作系统:CentOS 6.5 今天服务器上执行 yum -y update 命令时,提示: Running rpm_check_debug ERROR with rpm_check_de ...

  6. ssm框架整合之Spring4+SpringMVC+Mybaties3之配置文件如何配置及内容解释--可直接拷贝使用--不定时更改之2017/4/29

    经测试,需注意以下几点: 1,controller的自动扫描不能放在applicationContext.xml中,要放在spring-mvc.xml中.同样是<context:componen ...

  7. iOS学习之WebView的使用

    1.使用UIWebView加载网页 运行XCode 4.3,新建一个Single View Application,命名为WebViewDemo. 2.加载WebView 在ViewControlle ...

  8. Mybatis 针对ORACLE和MYSQL的批量插入与多参数批量删除

    今天利用Mybatis的<for each>标签做oracle的批量插入数据时,发现和MySQL数据库有区别.在此记录下,以防之后再踩坑. 一.批量插入: 1.controller: /* ...

  9. Gouraud Shading

    [Gouraud Shading] Gouraud Shading (高洛德着色/高氏着色) 这种着色的效果要好得多,也是在游戏中使用最广泛的一种着色方式.它可对3D模型各顶点的颜色进行平滑.融合处理 ...

  10. poolmanager1.path-o-logical 很好的prefab preload工具

    http://docs.poolmanager1.path-o-logical.com/ 提高性能的不错选择