分享

JSP生成EXCEL文件

 执着男孩 2006-08-26
<%@ page language="java" pageEncoding="gb2312"%>
<%@ page errorPage="error.jsp"%>
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.util.*"%>
<%@ page import="java.sql.*"%>
<%@ page import="java.io.*"%>
<%@ page import="org.apache.poi.hssf.usermodel.*,java.text.*,org.apache.poi.poifs.filesystem.POIFSFileSystem"%>

<%
    response.reset();
    String filename = new String(("报表").getBytes(), "ISO-8859-1");
    response.setContentType("APPLICATION/OCTET-STREAM");
    response.addHeader("Content-Disposition", "attachment;filename=\"" + filename + ".xls\"");
   
    DecimalFormat f = new DecimalFormat("#,##0.00");
    HSSFWorkbook wb = new HSSFWorkbook();
    HSSFSheet sheet = wb.createSheet("sheet1");
//  以下以写表头
    //表头为第一行
  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);
    HSSFCell cell11 = row.createCell((short) 10);
    HSSFCell cell12 = row.createCell((short) 11);
   
    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);
    cell11.setEncoding((short) 1);
    cell11.setCellType(1);
    cell12.setEncoding((short) 1);
    cell12.setCellType(1);

//定义表头的内容
    cell1.setCellValue("产品名称");
    cell2.setCellValue("用户号码");
    cell3.setCellValue("省");
    cell4.setCellValue("城市");
    cell5.setCellValue("注册时间");
    cell6.setCellValue("退订时间");
    cell7.setCellValue("用户当前状态");
    cell8.setCellValue("是否三天免费期");
    cell9.setCellValue("本月MT成功条数");
    cell10.setCellValue("本月MT条数");
    cell11.setCellValue("前月MT成功条数");
    cell12.setCellValue("前月MT条数");
   
    Vector data1 = new Vector();
    data1 = getAllData(sql);//从数据库中查询出的结果集,这部分代码没写
    DBDisconnect();

    for(int i=0;i<data1.size();i++){
          Vector data = new Vector();
          data = (Vector)data1.get(i);
 
          String array[];
          array = new String[data.size()+1];
          for (int j=0;j<data.size();j++){  
               array[j] = data.get(j).toString();
          }
 
          //  定义数据从第二行开始      
          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);
                  cell11 = row.createCell((short) 10);
                  cell12 = row.createCell((short) 11);

                 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);
                 cell11.setEncoding((short) 1);
                 cell11.setCellType(1);
                 cell12.setEncoding((short) 1);
                 cell12.setCellType(1);
                 //  填充内容
                 cell1.setCellValue(array[7]);
                 cell2.setCellValue(array[0]);
                 cell3.setCellValue(array[1]);
                 cell4.setCellValue(array[2]);
                 cell5.setCellValue(array[3]);
                 cell6.setCellValue(array[4]);
                 cell7.setCellValue(array[10]);
                 cell8.setCellValue(array[11]);
                 cell9.setCellValue(array[5]);
                 cell10.setCellValue(array[6]);
                 cell11.setCellValue(array[8]);
                 cell12.setCellValue(array[9]);
         
    }
    wb.write(response.getOutputStream());
    response.getOutputStream().flush();
    response.getOutputStream().close();

%>

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约