java操作excel

* 产生EXCEL
  */
 public ActionForward createExcel( ActionMapping mapping,
          ActionForm form,
          HttpServletRequest request,
          HttpServletResponse response) {
  HttpSession s = request.getSession() ;
  perAttendForm p = (perAttendForm)form;
  List list = (List)s.getAttribute("list") ;
  String fileUrl = "";
  // 写入
  try {
  
   File file ;
   if(p.getExcelName()==null || p.getExcelName().equals("AttendExcel")){
   String time = (new Date()).toLocaleString().replace(":", "-");
    file = new File("D:/AttendExcel" + time + ".xls") ;
  } else {
    file = new File("D:/" + p.getExcelName() + ".xls") ;
   }
   file = new File("D:/" + p.getExcelName() + ".xls") ;
   fileUrl = file.getAbsolutePath() ;
            //打开文件
            WritableWorkbook AttendExcel = Workbook.createWorkbook( file );
            //生成名为"考勤表单"的工作表,参数0表示这是第一页
            WritableSheet sheet = AttendExcel.createSheet("考勤表单", 0) ;
            // 设置标题的样式
            jxl.write.WritableFont wf = new WritableFont(WritableFont.ARIAL,10,WritableFont.BOLD,true) ;
      jxl.write.WritableCellFormat wcf = new WritableCellFormat( wf ) ;
      // 标题栏
            Label label1 = new Label(0, 0, "所在项目组",wcf);
         // 将定义好的单元格添加到工作表中
            sheet.addCell(label1);
            Label label2 = new Label(2, 0, "姓名",wcf);      
            sheet.addCell(label2);
            Label label3 = new Label(4, 0, "正常(天)",wcf);      
            sheet.addCell(label3);
            Label label4 = new Label(6, 0, "平时加班(小时)",wcf);      
            sheet.addCell(label4);
            Label label5 = new Label(8, 0, "周末_节日加班(天)",wcf);      
            sheet.addCell(label5);
            Label label6 = new Label(10, 0, "迟到",wcf);  
            sheet.addCell(label6);
            Label label7 = new Label(12, 0, "早退",wcf);      
            sheet.addCell(label7);
            Label label8 = new Label(14, 0, "病假(天)",wcf);      
            sheet.addCell(label8);
            Label label9 = new Label(16, 0, "事假",wcf);      
            sheet.addCell(label9);
            Label label10 = new Label(18, 0, "出差(天)",wcf);
            sheet.addCell(label10);
            Label label11 = new Label(20, 0, "带薪假(天)",wcf);      
            sheet.addCell(label11);
            Label label12 = new Label(22, 0, "带岗(天)",wcf);
            sheet.addCell(label12);
           
            int i = 1 ;
            int j ;
            // 循环数据
            for(Iterator it = list.iterator() ;it.hasNext();) {
             j = 0 ;
       Object[] objs=(Object[])it.next() ;
       String t ;
       if(objs[0]==null){ t = "暂无"; }else{ t = objs[0].toString(); }
       // 所在项目组
       sheet.addCell(new jxl.write.Label(j, i, t));
       // 姓名
       sheet.addCell(new jxl.write.Label(j=j+2, i, objs[1].toString()));
       // 以下都是统计的数值,用NUMBER
       sheet.addCell(new jxl.write.Number(j=j+2, i, new Integer( objs[2].toString()) ));
       sheet.addCell(new jxl.write.Number(j=j+2, i, new Integer( objs[3].toString()) ));
       sheet.addCell(new jxl.write.Number(j=j+2, i, new Integer( objs[4].toString()) ));
       sheet.addCell(new jxl.write.Number(j=j+2, i, new Integer( objs[5].toString()) ));
       sheet.addCell(new jxl.write.Number(j=j+2, i, new Integer( objs[6].toString()) ));
       sheet.addCell(new jxl.write.Number(j=j+2, i, new Integer( objs[7].toString()) ));
       sheet.addCell(new jxl.write.Number(j=j+2, i, new Integer( objs[8].toString()) ));
       sheet.addCell(new jxl.write.Number(j=j+2, i, new Integer( objs[9].toString()) ));
       sheet.addCell(new jxl.write.Number(j=j+2, i, new Integer( objs[10].toString()) ));
       sheet.addCell(new jxl.write.Number(j=j+2, i, new Integer( objs[11].toString()) ));
       i++;
            }
            //写入数据并关闭文件
            AttendExcel.write();
            AttendExcel.close();

        } catch (Exception e) {
            System.out.println(e);
        } 
       
  return null;
 }


From:http://blog.csdn.net/szsbell/archive/2008/03/19/2198434.aspx 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值