SpringMVC POI导出EXCEL(二)

2015-01-27 22:39:47 · 作者: · 浏览: 198
sermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import com.entity.PersonEntity; public class ViewExcel extends AbstractExcelView { @Override protected void buildExcelDocument(Map obj, HSSFWorkbook workbook, HttpServletRequest request, HttpServletResponse response) throws Exception { // map的key,在对应的controller中设置 ?List list = (List ) obj.get("list"); HSSFSheet sheet = workbook.createSheet("list"); sheet.setDefaultColumnWidth((short) 12); HSSFCell cell = getCell(sheet, 0, 0); setText(cell, "ID"); cell = getCell(sheet, 0, 1); setText(cell, "姓名"); cell = getCell(sheet, 0, 2); setText(cell, "年龄"); for (short i = 0; i < list.size(); i++) { HSSFRow sheetRow = sheet.createRow(i+1); PersonEntity entity = list.get(i); sheetRow.createCell(0).setCellValue(entity.getId()); sheetRow.createCell(1).setCellValue(entity.getName()); sheetRow.createCell(2).setCellValue(entity.getAge()); } //设置下载时客户端Excel的名称 String filename = new SimpleDateFormat("yyyy-MM-dd").format(new Date())+".xls"; //处理中文文件名 filename = MyUtils.encodeFilename(filename, request); response.setContentType("application/vnd.ms-excel"); response.setHeader("Content-disposition", "attachment;filename=" + filename); OutputStream ouputStream = response.getOutputStream(); workbook.write(ouputStream); ouputStream.flush(); ouputStream.close(); } } 7、创建相应的controller类

package com.controller;

import java.util.List;

import javax.servlet.http.HttpServletRequest;

import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;

import com.rmi.entity.PersonEntity;
import com.service.PersonEntityService;
import com.sinever.poi.ViewExcel;

@Controller
@RequestMapping(value="/person")
public class PersonEntityController {
	@Resourse
	private PersonEntityService personEntityService;
	
	@RequestMapping(value ="/export",method=RequestMethod.GET)
	public ModelAndView export(ModelMap model, HttpServletRequest request){
		List
  
    list = personEntityService.getList()
		ViewExcel viewExcel = new ViewExcel();  
               //将查询出的list集合存入ModelMap 对象中,此时的key就是ViewExcel类中Map所对应的key
                model.put("list", list);
                return new ModelAndView(viewExcel, model); 
	}
} 

  
至此,整个过程结束,效果如下图: