有幸看到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#
博客们
最新随笔
搜索
积分与排名
最新评论

阅读排行榜
评论排行榜
|
|