ExcelBean.java文件用于生成Excel
package com.zhupan.util;
import java.io.OutputStream;
import java.util.List;
import jxl.Workbook;
import jxl.format.Colour;
import jxl.format.UnderlineStyle;
import jxl.write.Label;
import jxl.write.WritableCellFormat;
import jxl.write.WritableFont;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import com.ctgusec.model.Course_info;
import com.ctgusec.model.Student_info;
public class ExcelBean {
public String expordExcel(OutputStream os, List courseList,List studentList)
throws Exception {
WritableWorkbook wbook = Workbook.createWorkbook(os); // 建立excel文件
String tmptitle = "课程“"+((Course_info)courseList.get(0)).getCource_name()+"”的选课学生列表"; // 标题
WritableSheet wsheet = wbook.createSheet("第一页", 0); // sheet名称
// 设置excel标题
WritableFont wfont = new WritableFont(WritableFont.ARIAL, 16,
WritableFont.BOLD, false, UnderlineStyle.NO_UNDERLINE,
Colour.BLACK);
WritableCellFormat wcfFC = new WritableCellFormat(wfont);
wsheet.addCell(new Label(1, 0, tmptitle, wcfFC));
wfont = new jxl.write.WritableFont(WritableFont.ARIAL, 14,
WritableFont.BOLD, false, UnderlineStyle.NO_UNDERLINE,
Colour.BLACK);
wcfFC = new WritableCellFormat(wfont);
// 开始生成主体内容
wsheet.addCell(new Label(0, 2, "课程名称"));
wsheet.addCell(new Label(1, 2, "学 号"));
wsheet.addCell(new Label(2, 2, "姓 名"));
wsheet.addCell(new Label(3, 2, "性 别"));
wsheet.addCell(new Label(4, 2, "学 院"));
wsheet.addCell(new Label(5, 2, "班 级"));
wsheet.addCell(new Label(6, 2, "专 业"));
wsheet.addCell(new Label(7, 2, "备 注"));
for(int i=3;i<studentList.size()+3;i++)
{
wsheet.addCell(new Label(0, i, ((Course_info)courseList.get(0)).getCource_name()));
wsheet.addCell(new Label(1, i, ((Student_info)studentList.get(0)).getStudentID()));
wsheet.addCell(new Label(2, i, ((Student_info)studentList.get(0)).getName()));
wsheet.addCell(new Label(3, i, ((Student_info)studentList.get(0)).getSex()));
wsheet.addCell(new Label(4, i, ((Student_info)studentList.get(0)).getUnit()));
wsheet.addCell(new Label(5, i, ((Student_info)studentList.get(0)).getClass_()));
wsheet.addCell(new Label(6, i, ((Student_info)studentList.get(0)).getSpecialty()));
wsheet.addCell(new Label(7, i, ((Student_info)studentList.get(0)).getRemark()));
}
// 主体内容生成结束
wbook.write(); // 写入文件
wbook.close();
os.close();
return "success";
}
}
控制器:
package com.ctgusec.spring;
import java.io.OutputStream;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.AbstractController;
import com.ctgusec.service.ICourse_infoManage;
import com.zhupan.util.ExcelBean;
public class EExcelDownController extends AbstractController {
private ICourse_infoManage courseManage;
public void setCourseManage(ICourse_infoManage courseManage) {
this.courseManage = courseManage;
}
@Override
protected ModelAndView handleRequestInternal(HttpServletRequest request,
HttpServletResponse response) throws Exception {
Integer course_id=new Integer(request.getParameter("course_id"));
List courseList=this.courseManage.getCourseById(course_id);
List studentList = this.courseManage.getStudentByCourseId(course_id);
try {
OutputStream os = response.getOutputStream();// 取得输出流
response.reset();// 清空输出流
response.setHeader("Content-disposition", "attachment; filename=student.xls");// 设定输出文件头
response.setContentType("application/msexcel");// 定义输出类型
ExcelBean excelBean = new ExcelBean();
excelBean.expordExcel(os,courseList,studentList);// 调用生成excel文件bean
} catch (Exception e) {
System.out.println(e);
}
return null;
}
}