有幸看到piliskys的文章,正好解决导出的问题,在此谢过! 原文地址http://www.blogjava.net/piliskys/archive/2005/11/23/21095.aspx jsp导出excel有很多种方法,在此介绍本人认为简单的一种, 前提:能在jsp页面取到要导出的内容,即 request能得到导出的数据,然后代码如下
<%@ page language="java" contentType="text/html;charset=gb2312"%> <%@ page language="java" import="java.util.*, org.apache.poi.hssf.usermodel.HSSFWorkbook, org.apache.poi.hssf.usermodel.HSSFSheet, org.apache.poi.hssf.usermodel.HSSFRow, org.apache.poi.hssf.usermodel.HSSFCell, java.text.DecimalFormat"%> <% response.reset(); response.setContentType("application/msexcel"); response.setHeader("Content-disposition","inline;filename=untitled.xls");//定义文件名 DecimalFormat f = new DecimalFormat("#,##0.00"); HSSFWorkbook wb = new HSSFWorkbook(); HSSFSheet sheet = wb.createSheet("sheet1"); String[] taxpayerid = request.getParameterValues("taxpayerid"); String[] taxpayername = request.getParameterValues("taxpayername"); String[] tax = request.getParameterValues("tax"); String[] taxreduce = request.getParameterValues("taxreduce"); String[] deratereasonname = request.getParameterValues("deratereasonname"); String[] orgdeptname = request.getParameterValues("orgdeptname"); String[] operatortime = request.getParameterValues("operatortime"); String[] declaredate = request.getParameterValues("declaredate"); String[] taxtermbegin = request.getParameterValues("taxtermbegin"); String[] taxtermend = request.getParameterValues("taxtermend");
//以下以写表头 //表头为第一行 HSSFRow row = sheet.createRow((short) 0); //定义10列 HSSFCell cell1 = row.createCell((short) 0); HSSFCell cell2 = row.createCell((short) 1); HSSFCell cell3 = row.createCell((short) 2); HSSFCell cell4 = row.createCell((short) 3); HSSFCell cell5 = row.createCell((short) 4); HSSFCell cell6 = row.createCell((short) 5); HSSFCell cell7 = row.createCell((short) 6); HSSFCell cell8 = row.createCell((short) 7); HSSFCell cell9 = row.createCell((short) 8); HSSFCell cell10 = row.createCell((short) 9);
cell1.setEncoding((short) 1); cell1.setCellType(1); cell2.setEncoding((short) 1); cell2.setCellType(1); cell3.setEncoding((short) 1); cell3.setCellType(1); cell4.setEncoding((short) 1); cell4.setCellType(1); cell5.setEncoding((short) 1); cell5.setCellType(0); cell6.setEncoding((short) 1); cell6.setCellType(1); cell7.setEncoding((short) 1); cell7.setCellType(1); cell8.setEncoding((short) 1); cell8.setCellType(1); cell9.setEncoding((short) 1); cell9.setCellType(1); cell10.setEncoding((short) 1); cell10.setCellType(1); //定义表头的内容 cell1.setCellValue("纳税人管理码"); cell2.setCellValue("纳税人名称"); cell3.setCellValue("税种"); cell4.setCellValue("减免金额"); cell5.setCellValue("减免原因"); cell6.setCellValue("征收单位"); cell7.setCellValue("操作日期"); cell8.setCellValue("申报日期"); cell9.setCellValue("所属期起"); cell10.setCellValue("所属期止");
for(int i= 0; i < taxpayerid.length; i++){ //定义数据从第二行开始 row = sheet.createRow((short) i+1); cell1 = row.createCell((short) 0); cell2 = row.createCell((short) 1); cell3 = row.createCell((short) 2); cell4 = row.createCell((short) 3); cell5 = row.createCell((short) 4); cell6 = row.createCell((short) 5); cell7 = row.createCell((short) 6); cell8 = row.createCell((short) 7); cell9 = row.createCell((short) 8); cell10 = row.createCell((short) 9);
cell1.setEncoding((short) 1); cell1.setCellType(1); cell2.setEncoding((short) 1); cell2.setCellType(1); cell3.setEncoding((short) 1); cell3.setCellType(1); cell4.setEncoding((short) 1); cell4.setCellType(1); cell5.setEncoding((short) 1); cell5.setCellType(0); cell6.setEncoding((short) 1); cell6.setCellType(1); cell7.setEncoding((short) 1); cell7.setCellType(1); cell8.setEncoding((short) 1); cell8.setCellType(1); cell9.setEncoding((short) 1); cell9.setCellType(1); cell10.setEncoding((short) 1); cell10.setCellType(1);
//填充内容
cell1.setCellValue(taxpayerid[i]); cell2.setCellValue(taxpayername[i]); cell3.setCellValue(tax[i]); cell4.setCellValue(f.parse(taxreduce[i].trim()).doubleValue()); cell5.setCellValue(deratereasonname[i]); cell6.setCellValue(orgdeptname[i]); cell7.setCellValue(operatortime[i].substring(0,16)); cell8.setCellValue(declaredate[i].substring(0,16)); cell9.setCellValue(taxtermbegin[i].substring(0,16)); cell10.setCellValue(taxtermend[i].substring(0,16)); } wb.write(response.getOutputStream()); response.getOutputStream().flush(); response.getOutputStream().close(); %> 代码比较简单,首先把取得到的数据定义为一系列数组,然后定义表头,然后把取得的数据做为excel数据对应的放入,对poi有何疑问请参考http://java2.5341.com/3.html
|
|
| 日 | 一 | 二 | 三 | 四 | 五 | 六 |
---|
29 | 30 | 31 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
|
公告
常用链接
留言簿(2)
随笔分类(38)
随笔档案(43)
收藏夹(2)
Ajax
C#
博客们
最新随笔
搜索
积分与排名
最新评论
阅读排行榜
评论排行榜
|
|