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);
}
}
至此,整个过程结束,效果如下图:
