* 产生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