HttpServletResponse response = ServletActionContext.getResponse();response.setContentType("application/vnd.ms-excel");response.setHeader("Content-Disposition","attachment;filename = " + URLEncoder.encode("teacherClassess.xls", "utf-8"));response.setCharacterEncoding("utf-8");OutputStream os = response.getOutputStream();String templatePath = ServletActionContext.getRequest().getSession().getServletContext().getRealPath("")+File.separator+"resource"+File.separator+"teacherClassesTemplate.xls";Workbook templateWorkbook = Workbook.getWorkbook(new FileInputStream(templatePath)); WritableWorkbook wwb = null; try { wwb = Workbook.createWorkbook(os); WritableSheet wSheet = wwb.createSheet("教师学时", 0); /**********表格头部start*********/ //标题 WritableFont titleFont = new WritableFont(WritableFont.createFont("宋体"),20,WritableFont.BOLD,false,UnderlineStyle.NO_UNDERLINE);//设置相应字体 WritableCellFormat titleCellFormat = new WritableCellFormat(titleFont); wSheet.mergeCells(0, 0, 9, 0); Label title = new Label(0, 0, "深圳市教师继续教育课程授课教师开课一览表",titleCellFormat); wSheet.addCell(title); WritableFont teacherFont = new WritableFont(WritableFont.createFont("宋体"),11,WritableFont.BOLD,false,UnderlineStyle.NO_UNDERLINE); //设置相应字体 WritableCellFormat teacherCellFormat = new WritableCellFormat(teacherFont); wSheet.mergeCells(0, 1, 9, 1);//合并单元格 第一个参数:开始列, 第二个参数:开始行,第三个参数:结束列,第四个参数:结束行 Label tableHead = new Label(0, 1, "教师:"+teacher.getName(),teacherCellFormat); wSheet.addCell(tableHead); WritableFont tableHeadFont = new WritableFont(WritableFont.createFont("宋体"),11,WritableFont.BOLD,false,UnderlineStyle.NO_UNDERLINE); //设置相应字体 WritableCellFormat tableHeadCellFormat = new WritableCellFormat(tableHeadFont);// tableHeadCellFormat.setWrap(true); tableHeadCellFormat.setBorder(jxl.format.Border.ALL,jxl.format.BorderLineStyle.THIN);//设置边框 wSheet.setColumnView(0, 5);//设置列宽度 第一个参数表示列,第二个参数表示字符宽度 Label tableHead1 = new Label(0, 2, "序号",tableHeadCellFormat); wSheet.addCell(tableHead1); Label tableHead2 = new Label(1, 2, "学年",tableHeadCellFormat); wSheet.addCell(tableHead2); Label tableHead3 = new Label(2, 2, "期号",tableHeadCellFormat); wSheet.addCell(tableHead3); wSheet.setColumnView(4, 10); wSheet.setColumnView(3, 14); Label tableHead4 = new Label(3, 2, "课号",tableHeadCellFormat); wSheet.addCell(tableHead4); wSheet.setColumnView(4, 35); Label tableHead5 = new Label(4, 2, "课程名称",tableHeadCellFormat); wSheet.addCell(tableHead5); Label tableHead6 = new Label(5, 2, "同课程教师",tableHeadCellFormat); wSheet.addCell(tableHead6); wSheet.setColumnView(6, 20); Label tableHead7 = new Label(6, 2, "课程系列",tableHeadCellFormat); wSheet.addCell(tableHead7); wSheet.setColumnView(7, 10); Label tableHead8 = new Label(7, 2, "教学方式",tableHeadCellFormat); wSheet.addCell(tableHead8); wSheet.setColumnView(8, 10); Label tableHead9 = new Label(8, 2, "选课人数",tableHeadCellFormat); wSheet.addCell(tableHead9); wSheet.setColumnView(9, 5); Label tableHead10 = new Label(9, 2, "学时",tableHeadCellFormat); wSheet.addCell(tableHead10); /**********表格头部end*********/ /**********数据开始*******/ WritableFont dataFont = new WritableFont(WritableFont.createFont("宋体"),11,WritableFont.NO_BOLD,false,UnderlineStyle.NO_UNDERLINE); //设置相应字体 WritableCellFormat dataCellFormat = new WritableCellFormat(dataFont); dataCellFormat.setBorder(jxl.format.Border.ALL,jxl.format.BorderLineStyle.THIN);//设置边框 if(null != teacherClassList && teacherClassList.size() > 0){ for(int i =0; i<teacherClassList.size(); i++){ TeacherClasses tmpVo = teacherClassList.get(i); Label data1 = new Label(0, 3+i, String.valueOf(i+1),dataCellFormat); wSheet.addCell(data1); Label data2 = new Label(1, 3+i, tmpVo.getPlanYear(),dataCellFormat); wSheet.addCell(data2); Label data3 = new Label(2, 3+i, tmpVo.getPlanIssue(),dataCellFormat); wSheet.addCell(data3); Label data4 = new Label(3, 3+i, tmpVo.getCourseNo(),dataCellFormat); wSheet.addCell(data4); Label data5 = new Label(4, 3+i, tmpVo.getCourseName(),dataCellFormat); wSheet.addCell(data5); Label data6 = new Label(5, 3+i, tmpVo.getOtherTeacherName(),dataCellFormat); wSheet.addCell(data6); Label data7 = new Label(6, 3+i, tmpVo.getCourseSeries(),dataCellFormat); wSheet.addCell(data7); Label data8 = new Label(7, 3+i, tmpVo.getTeachMode(),dataCellFormat); wSheet.addCell(data8); Label data9 = new Label(8, 3+i, tmpVo.getChooseCount(),dataCellFormat); wSheet.addCell(data9); Label data10 = new Label(9, 3+i, tmpVo.getClasses(),dataCellFormat); wSheet.addCell(data10); } } /**********数据结束******/ /*************合计start*************/ WritableFont totalDataNameFont = new WritableFont(WritableFont.createFont("宋体"),11,WritableFont.NO_BOLD,false,UnderlineStyle.NO_UNDERLINE); //设置相应字体 WritableCellFormat totalDataCellFormat = new WritableCellFormat(totalDataNameFont); totalDataCellFormat.setAlignment(Alignment.RIGHT); totalDataCellFormat.setBorder(jxl.format.Border.ALL,jxl.format.BorderLineStyle.THIN);//设置边框 wSheet.mergeCells(0, 3+teacherClassList.size(), 8, 3+teacherClassList.size()); Label totalDataName = new Label(0, 3+teacherClassList.size(), "合计:",totalDataCellFormat); wSheet.addCell(totalDataName); Label totalData = new Label(9, 3+teacherClassList.size(), String.valueOf(totalClasses),dataCellFormat); wSheet.addCell(totalData); /***************合计end*******************/ /**********最后的备注*******/ WritableFont endFont = new WritableFont(WritableFont.createFont("宋体"),11,WritableFont.NO_BOLD,false,UnderlineStyle.NO_UNDERLINE); //设置相应字体 WritableCellFormat endCellFormat = new WritableCellFormat(endFont); endCellFormat.setAlignment(Alignment.RIGHT); wSheet.mergeCells(0, 4+teacherClassList.size(), 9, 4+teacherClassList.size()); Label endData1 = new Label(0, 4+teacherClassList.size(), "确认: ",endCellFormat); wSheet.addCell(endData1); wSheet.mergeCells(0, 6+teacherClassList.size(), 9, 6+teacherClassList.size()); Label endData2 = new Label(0, 6+teacherClassList.size(), "深大师院综合教育处 ",endCellFormat); wSheet.addCell(endData2); /**********最后的备注*******/ wwb.write(); } catch (Exception e) { e.printStackTrace(); } finally { // 关闭 Excel 工作薄对象 try { if(wwb!=null){ wwb.close(); } } catch (WriteException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } }