在servlet中的list在excel输出!!

/*要加入poi包才能成功*/


  /***************生成excel文档***************************/

  HSSFWorkbook  workbook    = new HSSFWorkbook();
  HSSFSheet   sheet      = workbook.createSheet();

  HSSFCellStyle   mainstyle   = workbook.createCellStyle();  
  HSSFCellStyle   titlestyle  = workbook.createCellStyle();
  HSSFCellStyle   cellstyle  = workbook.createCellStyle();

  
  HSSFFont   mainfont    = workbook.createFont();
  HSSFFont   titlefont   = workbook.createFont(); 
  HSSFFont   cellfont    = workbook.createFont();

  mainfont.setFontHeightInPoints((short) 12);
  mainfont.setFontName("隶书"); 
  titlefont.setFontHeightInPoints((short) 12);
  titlefont.setFontName("华文新魏");
  cellfont.setFontHeightInPoints((short) 9);
  cellfont.setFontName("宋体");

  workbook.setSheetName(0, "会议室信息",HSSFWorkbook.ENCODING_UTF_16);//设置生成excel文件中新sheet的名称
//设置execl显示样式
  mainstyle.setFont(mainfont);

  titlestyle.setFont(titlefont);
  titlestyle.setBorderTop(HSSFCellStyle.BORDER_THIN);
  titlestyle.setBorderBottom(HSSFCellStyle.BORDER_THIN);
  titlestyle.setBorderLeft(HSSFCellStyle.BORDER_THIN);
  titlestyle.setBorderRight(HSSFCellStyle.BORDER_THIN);

  cellstyle.setFont(cellfont);

  cellstyle.setBorderBottom(HSSFCellStyle.BORDER_THIN);
  cellstyle.setBorderLeft(HSSFCellStyle.BORDER_THIN);
  cellstyle.setBorderRight(HSSFCellStyle.BORDER_THIN);  
  cellstyle.setWrapText(true);
  cellstyle.setFont(cellfont);
  mainstyle.setFont(mainfont);

  HSSFRow row   = null;
  HSSFCell cell = null;

 


  int rownum   = 3 + userId.size();
  int cellnum  = 3;



  for (short i = 0; i < rownum; i++){
   row = sheet.createRow(i);

   for (short j = 0; j < cellnum ; j++){
    cell = row.createCell(j);
 
    cell.setEncoding(HSSFCell.ENCODING_UTF_16);//设置行中每一列项的编码方式
    if(i == 2) cell.setCellStyle(titlestyle);
    if( i > 2) cell.setCellStyle(cellstyle);
     sheet.setColumnWidth(j,(short)(3000*2));
    }
  }
//设置制表时间题行

  cell = sheet.getRow(0).getCell((short)(cellnum/2));
  cell.setCellValue( "员工注册信息");
  cell.setCellStyle(mainstyle);

  cell = sheet.getRow(1).getCell((short)(cellnum/2-1));
  cell.setCellValue("" );
  String script ="制表时间:" + DateFormat.getDateInstance().format( new Date()) ;

  cell = sheet.getRow(1).getCell((short)(cellnum-3));
  cell.setCellValue(script);
//设置标题行

  row = sheet.getRow(2);
  row.getCell((short)0).setCellValue("员工代号");
  row.getCell((short)1).setCellValue("注册密码");  
  row.getCell((short)2).setCellValue("员工姓名");
//循环输出信息列表(全部信息,链表中的信息)
  for(int k=0; k< userId.size();k++){

   row = sheet.getRow(3+k);
   row.getCell((short)0).setCellValue((String)userId.get(k));
   row.getCell((short)1).setCellValue((String)userPwd.get(k));

  }


  javax.servlet.ServletOutputStream servletoutputstream = response.getOutputStream();


  response.setHeader("Content-disposition","attachment; filename=" + new String(("员工信息表.xls").getBytes("gb2312"),"iso8859-1"));  
  response.setDateHeader("Expires", 0);
  response.setContentType("application/vnd.ms-excel;charset=GBK");

  workbook.write(servletoutputstream);
  servletoutputstream.flush();
}

你可能感兴趣的:(servlet,Excel,J#)