package com.ifish.excel; import com.ifish.entity.VipCompany; import com.ifish.entity.VipPersonal; import org.apache.poi.hssf.usermodel.HSSFCellStyle; import org.apache.poi.hssf.usermodel.HSSFFont; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.springframework.web.servlet.view.document.AbstractExcelView; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.OutputStream; import java.net.URLEncoder; import java.util.Calendar; import java.util.Date; import java.util.List; import java.util.Map; /** * @author: yan.y * @Description: * @Date: Created in 23:59 2018/7/10 * @Modified by: */ public class VipPersonalExportExcel extends AbstractExcelView{ @Override protected void buildExcelDocument(Map model, HSSFWorkbook workbook, HttpServletRequest request, HttpServletResponse response) throws Exception { //表头样式 HSSFCellStyle style = workbook.createCellStyle(); //字体样式 HSSFFont fontStyle = workbook.createFont(); fontStyle.setFontName("微软雅黑"); fontStyle.setFontHeightInPoints((short)12); style.setFont(fontStyle); HSSFSheet sheet = workbook.createSheet("sheet"); getCell(sheet,0,0).setCellValue("姓名"); getCell(sheet,0,1).setCellValue("身份证号"); getCell(sheet,0,2).setCellValue("性别"); getCell(sheet,0,3).setCellValue("手机号码"); getCell(sheet,0,4).setCellValue("微信"); getCell(sheet,0,5).setCellValue("邮箱"); getCell(sheet,0,6).setCellValue("研究方向"); getCell(sheet,0,7).setCellValue("专业"); getCell(sheet,0,8).setCellValue("毕业学校"); getCell(sheet,0,9).setCellValue("单位名称"); getCell(sheet,0,10).setCellValue("证书等级"); getCell(sheet,0,11).setCellValue("证书类型"); getCell(sheet,0,12).setCellValue("证书编号"); getCell(sheet,0,13).setCellValue("证书申请时间"); getCell(sheet,0,14).setCellValue("证书领取时间"); getCell(sheet,0,15).setCellValue("证书到期时间"); getCell(sheet,0,16).setCellValue("证书上传官网"); getCell(sheet,0,17).setCellValue("备注"); Calendar calendar = Calendar.getInstance(); List vipPersonals = (List) model.get("vipPersonals"); for (int i = 0; i < vipPersonals.size(); i++) { VipPersonal vipPersonal = vipPersonals.get(i); getCell(sheet,i+1,0).setCellValue(vipPersonal.getPersonalName()); getCell(sheet,i+1,1).setCellValue(vipPersonal.getCardNum()); getCell(sheet,i+1,2).setCellValue(vipPersonal.getPersonalGender()); getCell(sheet,i+1,3).setCellValue(vipPersonal.getPersonalTel()); getCell(sheet,i+1,4).setCellValue(vipPersonal.getPersonalWechat()); getCell(sheet,i+1,5).setCellValue(vipPersonal.getPersonalEmail()); getCell(sheet,i+1,6).setCellValue(vipPersonal.getPersonalResearchDirection()); getCell(sheet,i+1,7).setCellValue(vipPersonal.getPersonalProfession()); getCell(sheet,i+1,8).setCellValue(vipPersonal.getPersonalSchool()); getCell(sheet,i+1,9).setCellValue(vipPersonal.getPersonalMember()); getCell(sheet,i+1,10).setCellValue(vipPersonal.getCertificateLevel()); getCell(sheet,i+1,11).setCellValue(vipPersonal.getCertificateType()); getCell(sheet,i+1,12).setCellValue(vipPersonal.getCertificateCard()); if (vipPersonal.getCertificateApplyTime() != null) { Date certificateApplyTime = vipPersonal.getCertificateApplyTime(); calendar.setTime(certificateApplyTime); getCell(sheet,i+1,13).setCellValue(calendar.get(Calendar.YEAR) + "-" + (calendar.get(Calendar.MONTH) + 1) + "-" + calendar.get(Calendar.DAY_OF_MONTH)); } if (vipPersonal.getCertificateReceiveTime() != null) { Date certificateReceiveTime = vipPersonal.getCertificateReceiveTime(); calendar.setTime(certificateReceiveTime); getCell(sheet,i+1,14).setCellValue(calendar.get(Calendar.YEAR) + "-" + (calendar.get(Calendar.MONTH) + 1) + "-" + calendar.get(Calendar.DAY_OF_MONTH)); } if (vipPersonal.getCertificateMaturityTime() != null) { Date certificateMaturityTime = vipPersonal.getCertificateMaturityTime(); calendar.setTime(certificateMaturityTime); getCell(sheet,i+1,15).setCellValue(calendar.get(Calendar.YEAR) + "-" + (calendar.get(Calendar.MONTH) + 1) + "-" + calendar.get(Calendar.DAY_OF_MONTH)); } getCell(sheet,i+1,16).setCellValue(vipPersonal.getUploadWebsite()); getCell(sheet,i+1,17).setCellValue(vipPersonal.getCertificateRemark()); } String filename = URLEncoder.encode("个人培训证信息导出.xls", "UTF-8"); response.setContentType("application/vnd.ms-excel"); response.setHeader("Content-disposition", "attachment;filename=" + filename); OutputStream ouputStream = response.getOutputStream(); workbook.write(ouputStream); ouputStream.flush(); ouputStream.close(); } }