阅读背景:

spring boot使用AbstractXlsView导出excel

来源:互联网 
一、maven依赖jar包 <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>3.14</version> </dependency> 1 2 3 4 5 二、导出view public class ExportMemberVo { private String name; private Integer gender; private String idCard; private String bankNo; private String bankName; private String phone; /** * 性别处理 */ public String getGender() { return gender == 0 ? "男" : "女"; } /****为了节省篇幅,省略setter/getter/constructor****/ } 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 三、导出Excel核心处理代码,继承自AbstractXlsView ,并实现buildExcelDocument import export.entity.ExportMemberVo; import org.apache.poi.hssf.util.HSSFColor; import org.apache.poi.ss.usermodel.*; import org.springframework.web.servlet.view.document.AbstractXlsView; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.net.URLEncoder; import java.util.List; import java.util.Map; /** * @Author Kent.Wang * @Date 2017/6/26 */ public abstract class ExcelView extends AbstractXlsView { @Override protected void buildExcelDocument(Map<String, Object> map, Workbook workbook, HttpServletRequest request, HttpServletResponse response) throws Exception { String excelName = map.get("name").toString() + ".xls"; response.setHeader("content-disposition", "attachment;filename=" + URLEncoder.encode(excelName,"utf-8")); response.setContentType("application/ms-excel; charset=UTF-8"); response.setCharacterEncoding("UTF-8"); @SuppressWarnings("unchecked") List<ExportMemberVo> list = (List<ExportMemberVo>) map.get("members"); Sheet sheet = workbook.createSheet("User Detail"); sheet.setDefaultColumnWidth(30); CellStyle style = workbook.createCellStyle(); Font font = workbook.createFont(); font.setFontName("Arial"); style.setFillForegroundColor(HSSFColor.BLUE.index); style.setFillPattern((short) 1); font.setBold(true); font.setColor(HSSFColor.WHITE.index); style.setFont(font); Row header = sheet.createRow(0); header.createCell(0).setCellValue("姓名"); header.getCell(0).setCellStyle(style); header.createCell(1).setCellValue("性别"); header.getCell(1).setCellStyle(style); header.createCell(2).setCellValue("手机号"); header.getCell(2).setCellStyle(style); header.createCell(3).setCellValue("身份证号"); header.getCell(3).setCellStyle(style); header.createCell(4).setCellValue("银行卡号"); header.getCell(4).setCellStyle(style); int rowCount = 1; for (ExportMemberVo user : list) { Row userRow = sheet.createRow(rowCount++); userRow.createCell(0).setCellValue(user.getName()); userRow.createCell(1).setCellValue(user.getGender()); userRow.createCell(2).setCellValue(user.getPhone()); userRow.createCell(3).setCellValue(user.getIdCard()); userRow.createCell(4).setCellValue(user.getBankNo()); } } } 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 四、controller代码 @RequestMapping(value = "", method = RequestMethod.GET) public ModelAndView download() { List<ExportMemberVo> list = new ArrayList<ExportMemberVo>(); for (int i = 0; i < 5; i++) { ExportMemberVo exportMemberVo = new ExportMemberVo(); exportMemberVo.setName("Kent" + i); @SuppressWarnings("unchecked") int gender = ThreadLocalRandom.current().nextInt(0, 2); exportMemberVo.setGender(gender); exportMemberVo.setPhone("182xxxxxxxx"); exportMemberVo.setBankName("建设银行"); list.add(exportMemberVo); } Map<String, Object> map = new HashMap<String, Object>(); map.put("members", list); map.put("name", "魅力城市"); ExcelView excelView = new UserInfoExcelView(); return new ModelAndView(excelView, map); } 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 一、maven依赖jar包 <dependency> <groupId>org.apache.poi


你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: