利用Poi导出Excel
2016-04-26 13:52
387 查看
在实际的项目开发中,经常会遇到将Web页面中的数据,如:表格、后台数据等导出为Excel的功能操作。那么就可以使用Poi来操作Excel。可以通过代码控制Excel的显示内容、样式等。因为Poi操作样式的一系列的方法,基本都是针对单元格来说,所以,若Excel中单元格的样式有很大的区别,那么用Poi显然是十分不合适,要写一大堆重复的样式代码。有一个变通法:就是可以把Excel的样式先做好,相当于一个模板,那么操作Excel时,就可以只填充数据啦。
poi导出Excel的基础实现:
后台代码:
前台的代码:
注意:前台是不能用ajax请求的。Ajax没法支持下载,它只能用于文档或数据的处理。需提供一个窗口进行下载。下面这样是不可以的。
poi导出Excel的基础实现:
后台代码:
// 第一步,创建一个webbook,对应一个Excel文件 HSSFWorkbook wb = new HSSFWorkbook(); // 第二步,在webbook中添加一个sheet,对应Excel文件中的sheet HSSFSheet sheet = wb.createSheet("好朋友"); // 第三步,在sheet中添加表头第0行,注意老版本poi对Excel的行数列数有限制 HSSFRow row = sheet.createRow(0); // 第四步,创建单元格,并设置值表头 设置表头居中 HSSFCellStyle style = wb.createCellStyle(); style.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 创建一个居中格式 HSSFCell cell = row.createCell(0); cell.setCellValue("盖伦"); cell.setCellStyle(style); cell = row.createCell(1); cell.setCellValue("剑圣"); cell.setCellStyle(style); cell = row.createCell(2); cell.setCellValue("锤石"); cell.setCellStyle(style); cell = row.createCell(3); cell.setCellValue("寒冰"); cell.setCellStyle(style); cell = row.createCell(4); cell.setCellValue("狮子狗"); cell.setCellStyle(style); cell = row.createCell(5); cell.setCellValue("瑞文"); cell.setCellStyle(style); cell = row.createCell(6); cell.setCellValue("EZ"); cell.setCellStyle(style); cell = row.createCell(7); cell.setCellValue("德莱文"); cell.setCellStyle(style); cell = row.createCell(8); cell.setCellValue("人马"); cell.setCellStyle(style); cell = row.createCell(9); cell.setCellValue("石头人"); cell.setCellStyle(style); cell = row.createCell(10); cell.setCellValue("兰博"); cell.setCellStyle(style); //上面创建了一行10列 response.setContentType("text/html;charset=UTF-8"); response.reset(); response.setContentType("application/octet-stream; charset=utf-8"); response.setHeader("Content-Disposition", "attachment; filename=" + new String(("我的朋友们.xls").getBytes("utf-8"), "ISO-8859-1")); //文件名编码 stream = response.getOutputStream(); wb.write(stream); //写入reponse中
前台的代码:
window.location.href = "${root.contextPath!}/export/exportedata //后台方法的路径。这里是Springmvc.
注意:前台是不能用ajax请求的。Ajax没法支持下载,它只能用于文档或数据的处理。需提供一个窗口进行下载。下面这样是不可以的。
$.ajax({ url : '${root.contextPath!}/export/exportedata, type : 'post', async : false, success : function(data) { }, error : function() { } });
相关文章推荐
- java-WEB中的监听器Lisener
- GUI - Web前端开发框架
- Extjs4.0 最新最全视频教程
- 使用Python生成Excel格式的图片
- MyEclipse Web Project转Eclipse Dynamic Web Project
- axis备忘
- Excel 曝出 Power Query 安全漏洞,1.2 亿用户易受远程 DDE 攻击
- VBA将excel数据表生成JSON文件
- excel vba 限制工作表的滚动区域代码
- excel vba 高亮显示当前行代码
- Erlang实现的一个Web服务器代码实例
- 防止网页脚本病毒执行的方法-from web
- 自学成才的秘密:115个 web Develop 资源
- 使用批处理修改web打印设置笔记 适用于IE
- Apache Web让JSP“动”起来
- web下载的ActiveX控件自动更新
- 推荐六款WEB上传组件性能测试与比较第1/10页
- 关于三种主流WEB架构的思考
- SQL 导入导出Excel数据的语句
- 使用 Iisext.vbs 列出 Web 服务扩展文件的方法