JSP生成EXCEL文件

生成Excel文件使用的是apache的開源項目poi,sun的jxl也還不錯.

<%@ 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();

%>
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章