ITPub博客

首页 > Linux操作系统 > Linux操作系统 > jsp导出excel

jsp导出excel

原创 Linux操作系统 作者:piliskys 时间:2005-11-19 00:00:00 0 删除 编辑

     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

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/134308/viewspace-140577/,如需转载,请注明出处,否则将追究法律责任。

上一篇: javaMail杂谈
请登录后发表评论 登录
全部评论

注册时间:2008-01-14

  • 博文量
    68
  • 访问量
    159854