关于jsp页面转换成excel格式下载遇到问题及解决
2013-07-16 10:30
543 查看
jsp页面转成excel格式的实现思路:
1.使用poi包:poi-bin-3.9-20121203
下载连接地址:http://www.apache.org/dyn/closer.cgi/poi/release/bin/poi-bin-3.9-20121203.tar.gz
import org.apache.poi.hssf.usermodel.*;
这个包可以帮助实现下载excel模版的设计,简单易用,功能也非常强大。
2.将创建的excel文档转换成需要输出的流:可以是文件流放在硬盘中,也可以是输出流输出到浏览器供下载。 ◆ 文件流:FileOutputStream
◆ 输出流 :response.getOutputStream()
◆ tip:
*response.reset();清除首部的空白行
* getResponse的getWriter()方法连续两次输出流到页面的时候,第二次的流会包括第一次的流,
* 所以可以使用response.reset或者resetBuffer的方法。
* resetBuffer方法与reset方法的区别是,头和状态码没有清除。
如果发现这样设置后浏览器端并没有弹出【文件另存为】选择路径窗口,请检查下前面代码是否出现:
1.response.setContentType("text/html;charset=UTF-8");//设置编码格式
2.PrintWriter out = response.getWriter();导致无法确定输出流
3、excel文件名为中文时乱码或者出现未知文件类型错误时,考虑用URLEncoder对文件名进行转码
![](http://images.cnitblog.com/blog/511854/201309/02101811-c5683a14448c4722a7ffe10afa4d335f.jpg)
1.使用poi包:poi-bin-3.9-20121203
下载连接地址:http://www.apache.org/dyn/closer.cgi/poi/release/bin/poi-bin-3.9-20121203.tar.gz
import org.apache.poi.hssf.usermodel.*;
这个包可以帮助实现下载excel模版的设计,简单易用,功能也非常强大。
HSSFWorkbook workBook = new HSSFWorkbook();//是操作Excel2003的版本,扩展名是xls HSSFSheet sheet = workBook.createSheet();//创建工作簿 HSSFRow row1 = sheet.createRow(1);//创建一行 HSSFCell cell0 = row1.createCell(0);//创建单元格 cell0.setCellValue("对账单ID:");//给单元格赋值
2.将创建的excel文档转换成需要输出的流:可以是文件流放在硬盘中,也可以是输出流输出到浏览器供下载。 ◆ 文件流:FileOutputStream
FileOutputStream fos = new FileOutputStream("F://workbook.xls"); workBook.write(fos); fos.close();
◆ 输出流 :response.getOutputStream()
response.reset(); response.setContentType("application/vnd.ms-excel;charset=gbk"); response.setHeader("Content-Disposition", "attachment;filename=account.xls"); OutputStream out = response.getOutputStream(); workBook.write(out); out.close();
◆ tip:
*response.reset();清除首部的空白行
* getResponse的getWriter()方法连续两次输出流到页面的时候,第二次的流会包括第一次的流,
* 所以可以使用response.reset或者resetBuffer的方法。
* resetBuffer方法与reset方法的区别是,头和状态码没有清除。
如果发现这样设置后浏览器端并没有弹出【文件另存为】选择路径窗口,请检查下前面代码是否出现:
1.response.setContentType("text/html;charset=UTF-8");//设置编码格式
2.PrintWriter out = response.getWriter();导致无法确定输出流
3、excel文件名为中文时乱码或者出现未知文件类型错误时,考虑用URLEncoder对文件名进行转码
![](http://images.cnitblog.com/blog/511854/201309/02101811-c5683a14448c4722a7ffe10afa4d335f.jpg)
String name = java.net.URLEncoder.encode(fileName, "utf-8"); response.setContentType("application/vnd.ms-excel;charset=utf-8"); response.setHeader("Content-Disposition", "attachment;filename="+name.toString()+".xls"); OutputStream out = response.getOutputStream(); workBook.write(out); out.close();
相关文章推荐
- #关于apache POI 对Excel的下载 遇到的几个问题总结
- 关于jsp页面post传值汉字乱码的问题解决办法
- 关于解决jsp页面无法正常解析EL表达式的问题
- Java Web中使用JSPSmartUpload控件实现文件的上传和下载(解决了中文乱码问题)(JSP页面采用GBK编码)
- 关于jsp页面链接在不同浏览器中出错的问题解决
- jsp页面java+js实现文件下载(并附带解决下载文件名乱码问题-火狐浏览器正常访问)
- 关于编程中需要上传下载修改EXCEL时会遇到的问题
- jsp 关于导出excel 自动转换 科学计数法 显示的问题
- JSP页面UTF-8格式中文字符串乱码问题解决方法
- eclipse下更改jsp页面默认的编码格式,解决中文乱码问题
- 解决jsp页面之间或者servlet向jsp页面通过重定向传值时遇到中文的问题
- 关于经过servlet跳转后jsp页面的样式消失问题的解决办法
- 关于linux下myeclipse打开jsp页面遇到的问题
- 关于jsp页面中中文乱码问题的解决方法
- Java Web中使用JSPSmartUpload控件实现文件的上传和下载(解决了中文乱码问题)(JSP页面采用GBK编码)
- 关于jsp页面显示的时间格式和Oracle数据库中的格式不一样的问题
- 遇到的问题:myelipse下,用tomcat浏览jsp文件时,出现迅雷自动弹出下载该jsp页面
- asp.net 生成 excel导出保存时, 解决迅雷下载aspx页面问题
- 关于Jsp页面乱码问题解决使用过滤器和包装类处理
- SSM项目 JSP页面中超链接含中文文件名,无法下载的问题解决