jxl jsp 导出excel

来源:互联网 发布:手机语音通话软件 编辑:程序博客网 时间:2024/05/29 03:54
                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();   }  }


原创粉丝点击