jsp导出excel

   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


原文:http://www.blogjava.net/piliskys/archive/2005/11/23/21095.aspx

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值