SpringMVC 下载XLS文档的设置
页面设置参考上文。SpringMVC 下载文本文档的设置
此文是关于xls文档下载的,这个文档使用Apache的POI生成,需要的jar包可以从下面地址下载:
http://pan.baidu.com/s/1i3IJttF
下面是controller代码,比上一篇文本的少很多:
@RequestMapping("/downloadAnnotatorListXls")
public ModelAndView downloadAnnotatorListXls(HttpServletRequest request,HttpServletResponse response){
String fileName="annotatorList.xls";
response.reset();// 不加这一句的话会出现下载错误
response.setHeader("Content-disposition", "attachment;filename=" + fileName); // 设定输出文件头
response.setContentType("application/vnd.ms-excel"); // 定义输出类型
try {
HSSFWorkbook xls=service.getAnnotatorListInXls();
OutputStream ouputStream = response.getOutputStream();
xls.write(ouputStream);
ouputStream.flush();
ouputStream.close();
} catch (Exception e) {
e.printStackTrace();
logger.error(e);
request.setAttribute("error", e.getClass());
request.setAttribute("reason", e.getMessage());
StackTraceElement[] arr=e.getStackTrace();
request.setAttribute("stackTraceElements", arr);
return new ModelAndView("pages/error/index.jsp");
}
return null;
}
具体xls生成请参考:
public HSSFWorkbook getAnnotatorListInXls() throws Exception{
StringBuilder sb=new StringBuilder();
sb.append(" select");
sb.append(" t1.id,");
sb.append(" t1.ownerId,");
sb.append(" t1.ownerName,");
sb.append(" t1.annotatorId,");
sb.append(" t1.name,");
sb.append(" t1.fullName,");
sb.append(" t1.language,");
sb.append(" format(t1.planHour,2) as planHour");
sb.append(" from");
sb.append(" ownership t1 ");
sb.append(" order by");
sb.append(" id");
String sql=sb.toString();
List<?> ls=this.getJdbcTemplate().query(sql, new NameValueRowMapper());
HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sheet = wb.createSheet("sheet1");
// 表头颜色
HSSFCellStyle blueStyle = wb.createCellStyle();
blueStyle.setBorderTop(HSSFCellStyle.BORDER_THICK);
blueStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN);
blueStyle.setFillForegroundColor(HSSFColor.SKY_BLUE.index);
blueStyle.setFillPattern(CellStyle.SOLID_FOREGROUND);
// 表头部分"ID,OwnerId,OwnerName,AnnotatorId,Name,FullName,Language,PlanHour\r\n"
HSSFRow row = sheet.createRow(0);//建立新行
HSSFCell cell =row.createCell((short)0);
cell.setCellValue("ID");
cell.setCellStyle(blueStyle);
cell =row.createCell((short)1);
cell.setCellValue("OwnerId");
cell.setCellStyle(blueStyle);
cell =row.createCell((short)2);
cell.setCellValue("OwnerName");
cell.setCellStyle(blueStyle);
cell =row.createCell((short)3);
cell.setCellValue("AnnotatorId");
cell.setCellStyle(blueStyle);
cell =row.createCell((short)4);
cell.setCellValue("Name");
cell.setCellStyle(blueStyle);
cell =row.createCell((short)5);
cell.setCellValue("FullName");
cell.setCellStyle(blueStyle);
cell =row.createCell((short)6);
cell.setCellValue("Language");
cell.setCellStyle(blueStyle);
cell =row.createCell((short)7);
cell.setCellValue("PlanHour");
cell.setCellStyle(blueStyle);
short rowNum=1;
short columnNum=0;
for(Object obj:ls){
row = sheet.createRow(rowNum);//建立新行
columnNum=0;
List<NameValue> lsTemp=(List<NameValue>)obj;
for(NameValue nv:lsTemp){
cell =row.createCell(columnNum);
cell.setCellValue(nv.getValue());
columnNum++;
}
rowNum++;
}
return wb;
}
SpringMVC 下载XLS文档的设置的更多相关文章
- springmvc下载一个文档下载接口里的文档
A提供了一个文件下载的接口,在调用的时候可以直接在前端用a标签来调用 <a href="http://" target="_blank">下载< ...
- IIS下不能下载文件的docx文档,XLSX文档的设置方法(转)
IIS下不能下载文件的docx文档,XLSX文档的设置方法 Office 2007的的界面风格默认格式中都是.DOCX,XLSX,PPTX等等后缀,连结中包含此类文件时,界面风格默认什么打不开的其实只 ...
- Java导出freemarker实现下载word文档格式功能
首先呢,先说一下制作freemarker模板步骤, 1. 在WPS上写出所要的下载的word格式当做模板 2. 把模板内不固定的内容(例:从数据库读取的信息)写成123或者好代替的文字标注 3. 把固 ...
- 配置允许匿名用户登录访问vsftpd服务,进行文档的上传下载、文档的新建删除等操作
centos7环境下 临时关闭防火墙 #systemctl stop firewalld 临时关闭selinux #setenforce 0 安装ftp服务 #yum install vsftpd - ...
- NPOI(2.1.3)向excel中插入图片,xls文档图片插入成功,xlsx文档图片插入失败
众所周知,NPOI对xls和xlsx两个版本的excel文档的操作并没有一个统一的支持, 程序若想兼容这两个版本的操作,必须根据excel版本分别去调用HSSF和XSSF这两套操作库, 之前一直不明白 ...
- 手动下载 Xcode 文档
下载Xcode文档的方法有两个: 1. 自动下载:到在Xcode的Preserences中Downloads页面的Documentation,点击对应文档的下载. 2. 手动下载:到这个页面:http ...
- 安利一个免费下载VIP文档神器
今天安利给大伙一个非非非常好用的可以免费下载VIP文档的下载神器------冰点文库下载器,用过的人都说好.操作简单,小巧轻便,完全免费.支持百度.豆丁.畅享.mbalib.hp009.max.boo ...
- C#(MVC) Word 替换,填充表格,导出并下载PDF文档
近期做一个关于C# 操作 Word 模板 文档的功能模块,查阅资料,最终完美完成任务,记录下来,以便后面还会用到.
- 前端调用后台接口下载word文档的两种方法
1传统的ajax虽然能提交到后台,但是返回的数据被解析成json,html,text等字符串,无法响应浏览器下载.就算使用bob模拟下载,数据量大时也不方便 废话不多说:上代码(此处是Layui监听提 ...
随机推荐
- java算法(一) 直接选择排序
一.基本概念 首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置(注:要把最大最小的元素和起始的元素交换), 然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾.以 ...
- d3.js path路径
转自:http://www.d3js.cn/?p=68 svg的path标签被称为”可以组成任何形状的形状” SVG Path可以绘制任何形状的图形,包括矩形,圆形,椭圆,折线,多边形,直线,曲线等. ...
- Android 的保活的两种解决方案
原文链接:http://blog.csdn.net/pan861190079/article/details/72773549 详细的阐述了 Android 的保活的两种解决方案 —— 由panhao ...
- 【Tomcat】如何注册Tomcat到Window Service服务
对于Web项目来说,经常用的服务器就是Tomcat.但是麻烦的事是,每次都得启动一下Tomcat服务.但是,如果把Tomcat的服务注册为Windows Service服务,就可以设置为开机自动启动, ...
- 我和阿里云RDS的故事
于阿里云的RDS性能无法满足我们公司系统的要求,数据库偶尔出现莫名的查询慢(索引等做了全面优化)经过好多次投诉,情况还是没有改善.由于是类金融的系统,对这种情况是不能接受的.相信系统数据有5G以上有人 ...
- bootstrapValidator 版本差异问题导致的submitHandler失效问题
我用过的两个版本: v0.5.2-dev,0.4.5 这里针对于提交方法进行说明一下,如下代码: <script> $(function () { $("#addUserForm ...
- 51nod 1432 独木舟【贪心】
1432 独木舟 基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题 收藏 关注 n个人,已知每个人体重.独木舟承重固定,每只独木舟最多坐两个人,可以坐一个人或者两 ...
- python 字符串最长公共前缀
编写一个函数来查找字符串数组中的最长公共前缀. 如果不存在公共前缀,返回空字符串 "". 示例 1: 输入: ["flower","flow&qu ...
- python查询mangodb
from bson.objectid import ObjectId import pymongo #查询代码 #连接本机mongodb conn=pymongo.Connection() #指定 ...
- CSS 标准发布流程
随着 CSS 3 的广泛应用,很多新的 CSS 属性层出不穷,有很多陌生的 CSS 属性出现,所以经常需要去学习新的 CSS 属性.新的属性往往介绍文章不多,所以有时候就需要去看看官方文档,此时会发现 ...