使用poi将数据导出为Excel

在帮别人写一个档案管理系统时需要用到将数据导出为Excel表
下面是用poi实现的一个导出Excel的servlet,导出Excel文件时使用了一个Excel模板template.xls,达到规范格式的目的。
导入poi-3.0.2-FINAL-20080204.jar包就可使用。
	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
			
		response.setContentType("APPLICATION/OCTET-STREAM");   //response设置ContentType响应文档类型
		String name=request.getParameter("name");
		response.setHeader("Content-Disposition","attachment;fileName=mulu.xls");   //设置请求头fileName是保存文件名
		List<MuLu> mulus=dao.getMuLuByName(name);   //从数据库里取出目录表内容
		String path=request.getRealPath("/");    //取得当前路径
		POIFSFileSystem fs=new POIFSFileSystem(new FileInputStream(path+"template.xls"));  //读取Excel模版
		HSSFWorkbook wb=new HSSFWorkbook(fs);  //创建一个工作区 HSSFWorkbook类表示一个工作区
		HSSFSheet sheet = wb.getSheetAt(0);  //创建一个表 HSSFSheet类表示一个表
		HSSFCellStyle style = wb.createCellStyle(); //创建单元格样式 HSSFCellStyle类表示样式
		style.setVerticalAlignment(style.VERTICAL_CENTER); //设置垂直居中
		for(int i=2;i<mulus.size()+2;i++){
			HSSFRow row = sheet.createRow(i);  //创建一行  HSSFRow表示一行
			row.setHeightInPoints(24);   //设置行高
			MuLu ml=mulus.get(i-2);    //取出表项
			HSSFCell cell0=row.createCell((short)0);   //创建一个单元格  HSSFCell类表示单元格
			cell0.setCellValue(ml.getSxh());   //设置单元格内容
			cell0.setCellStyle(style);   //设置单元格样式
			HSSFCell cell1=row.createCell((short)1);
			cell1.setCellValue(ml.getWh());
			cell1.setCellStyle(style);
			HSSFCell cell2=row.createCell((short)2);
			cell2.setCellValue(ml.getZrz());
			cell2.setCellStyle(style);
			HSSFCell cell3=row.createCell((short)3);
			cell3.setCellValue(ml.getTm());
			cell3.setCellStyle(style);
			HSSFCell cell4=row.createCell((short)4);
			cell4.setCellValue(ml.getRq());	
			cell4.setCellStyle(style);
			HSSFCell cell5=row.createCell((short)5);
			if(ml.getYh()!=0){
				cell5.setCellValue(ml.getYh());
				cell5.setCellStyle(style);
			}
			HSSFCell cell6=row.createCell((short)6);
			cell6.setCellValue(ml.getBz());
			cell6.setCellStyle(style);
		}
	    try {
			wb.write(response.getOutputStream());   //将excel写入response的输出流中
			response.getOutputStream().flush();   //刷新IO
		    response.getOutputStream().close();   //关闭IO
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

你可能感兴趣的:(DAO,工作,servlet,Excel)