diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/VisitorApplyServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/VisitorApplyServiceImpl.java index d72c738..93bd116 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/VisitorApplyServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/VisitorApplyServiceImpl.java @@ -15,20 +15,15 @@ import com.casic.missiles.modular.system.model.VisitorApply; import com.casic.missiles.modular.system.service.UserActionService; import com.casic.missiles.modular.system.service.VisitorApplyService; -import com.casic.missiles.modular.system.utils.ExportUtils; -import com.casic.missiles.modular.system.utils.InitialUtils; -import com.casic.missiles.modular.system.utils.UuidUtils; -import com.casic.missiles.modular.system.utils.WXUserUtils; +import com.casic.missiles.modular.system.utils.*; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; -import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import java.io.IOException; import java.text.ParseException; import java.util.*; @@ -186,7 +181,7 @@ visitorApply.setVisitorApplyStatus(""); }); String url = path+"file-"+new Date().getTime()+".xls"; - ExportUtils.excel(visitorApplyList,url); + ExportUtils.writeExcel(visitorApplyList,url,"sheet",VisitorApply.class); //iBaseExportService.exportExcel(response,VisitorApply.class,visitorApplyList,"sheet"); return ResponseData.success(url); } catch (Exception e) { diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/VisitorApplyServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/VisitorApplyServiceImpl.java index d72c738..93bd116 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/VisitorApplyServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/VisitorApplyServiceImpl.java @@ -15,20 +15,15 @@ import com.casic.missiles.modular.system.model.VisitorApply; import com.casic.missiles.modular.system.service.UserActionService; import com.casic.missiles.modular.system.service.VisitorApplyService; -import com.casic.missiles.modular.system.utils.ExportUtils; -import com.casic.missiles.modular.system.utils.InitialUtils; -import com.casic.missiles.modular.system.utils.UuidUtils; -import com.casic.missiles.modular.system.utils.WXUserUtils; +import com.casic.missiles.modular.system.utils.*; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; -import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import java.io.IOException; import java.text.ParseException; import java.util.*; @@ -186,7 +181,7 @@ visitorApply.setVisitorApplyStatus(""); }); String url = path+"file-"+new Date().getTime()+".xls"; - ExportUtils.excel(visitorApplyList,url); + ExportUtils.writeExcel(visitorApplyList,url,"sheet",VisitorApply.class); //iBaseExportService.exportExcel(response,VisitorApply.class,visitorApplyList,"sheet"); return ResponseData.success(url); } catch (Exception e) { diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/utils/ExportUtils.java b/casic-server/src/main/java/com/casic/missiles/modular/system/utils/ExportUtils.java index 7b36654..e5b2103 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/utils/ExportUtils.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/utils/ExportUtils.java @@ -1,13 +1,17 @@ package com.casic.missiles.modular.system.utils; -import com.casic.missiles.modular.system.model.VisitorApply; -import org.apache.poi.hssf.usermodel.*; -import org.apache.poi.hssf.util.HSSFColor; -import org.apache.poi.ss.usermodel.BorderStyle; -import org.apache.poi.ss.usermodel.HorizontalAlignment; -import org.apache.poi.ss.usermodel.VerticalAlignment; +import com.alibaba.excel.EasyExcel; +import com.alibaba.excel.support.ExcelTypeEnum; +import com.alibaba.excel.write.metadata.style.WriteCellStyle; +import com.alibaba.excel.write.metadata.style.WriteFont; +import com.alibaba.excel.write.style.HorizontalCellStyleStrategy; -import java.io.*; +import org.apache.poi.ss.usermodel.HorizontalAlignment; +import org.apache.poi.ss.usermodel.IndexedColors; +import org.apache.poi.ss.usermodel.VerticalAlignment; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import java.util.List; /** @@ -17,75 +21,50 @@ */ public class ExportUtils { - public static void excel(List list, String filePath) throws IOException { - //导出路径 - FileOutputStream output = new FileOutputStream(filePath); - try { - //创建HSSFWorkbook对象 - HSSFWorkbook wb = new HSSFWorkbook(); - //创建HSSFSheet对象 - HSSFSheet sheet = wb.createSheet("sheet"); - //创建HSSFRow对象 - HSSFRow row = sheet.createRow(0); -/* - HSSFCellStyle cellStyle=wb.createCellStyle(); - cellStyle.setVerticalAlignment(VerticalAlignment.CENTER); - cellStyle.setAlignment(HorizontalAlignment.CENTER); - // 设置边框 - cellStyle.setBorderBottom(BorderStyle.THIN); - cellStyle.setBorderLeft(BorderStyle.THIN); - cellStyle.setBorderRight(BorderStyle.THIN); - cellStyle.setBorderTop(BorderStyle.THIN); - HSSFFont fontStyle=wb.createFont(); - fontStyle.setFontName( "宋体" ); - fontStyle.setFontHeightInPoints(( short ) 20 ); - row.setRowStyle(cellStyle);*/ - //设置表头 - row.createCell(0).setCellValue("访客申请单号"); - row.createCell(1).setCellValue("访客姓名"); - row.createCell(2).setCellValue("访客身份证"); - row.createCell(3).setCellValue("访客联系方式"); - row.createCell(4).setCellValue("访问目的"); - row.createCell(5).setCellValue("访问楼栋"); - row.createCell(6).setCellValue("访问开始时间"); - row.createCell(7).setCellValue("访问结束时间"); - row.createCell(8).setCellValue("申请者工号"); - row.createCell(9).setCellValue("申请者姓名"); - row.createCell(10).setCellValue("申请者联系方式"); - row.createCell(11).setCellValue("状态"); - row.createCell(12).setCellValue("备注"); - row = sheet.createRow(sheet.getLastRowNum() + 1); - //循环遍历集合,生成表格 - for(VisitorApply cc : list) { - row.createCell(0).setCellValue(cc.getApplyNo()); - row.createCell(1).setCellValue(cc.getVisitorName()); - row.createCell(2).setCellValue(cc.getVisitorIdCard()); - row.createCell(3).setCellValue(cc.getVisitorPhone()); - row.createCell(4).setCellValue(cc.getVisitReason()); - row.createCell(5).setCellValue(cc.getVisitPosition()); - row.createCell(6).setCellValue(cc.getInTime()); - row.createCell(7).setCellValue(cc.getOutTime()); - row.createCell(8).setCellValue(cc.getStaffCode()); - row.createCell(9).setCellValue(cc.getStaffName()); - row.createCell(10).setCellValue(cc.getStaffPhone()); - row.createCell(11).setCellValue(""); - row.createCell(12).setCellValue(cc.getRemarks()); - row = sheet.createRow(row.getRowNum() + 1); - } - File file = new File(filePath); - if(file.exists()){ - file.delete(); - } - //输出Excel文件 - output.flush(); - wb.write(output); - } catch (Exception e) { - e.printStackTrace(); - }finally { - output.close(); - } + private static final Logger log = LoggerFactory.getLogger(ExportUtils.class); + + /** + * 获取默认表头内容的样式 + * @return + */ + private static HorizontalCellStyleStrategy getDefaultHorizontalCellStyleStrategy(){ + // 表头样式 + WriteCellStyle headWriteCellStyle = new WriteCellStyle(); + // 背景色(浅灰色) + headWriteCellStyle.setFillForegroundColor(IndexedColors.GREY_25_PERCENT.getIndex()); + // 字体大小 + WriteFont headWriteFont = new WriteFont(); + headWriteFont.setFontHeightInPoints((short) 10); + headWriteCellStyle.setWriteFont(headWriteFont); + //设置表头居中对齐 + headWriteCellStyle.setHorizontalAlignment(HorizontalAlignment.CENTER); + // 内容样式 + WriteCellStyle contentWriteCellStyle = new WriteCellStyle(); + // 内容字体样式(名称、大小) + WriteFont contentWriteFont = new WriteFont(); + contentWriteFont.setFontName("宋体"); + contentWriteFont.setFontHeightInPoints((short) 10); + contentWriteCellStyle.setWriteFont(contentWriteFont); + //设置内容垂直居中对齐 + contentWriteCellStyle.setVerticalAlignment(VerticalAlignment.CENTER); + //设置内容水平居中对齐 + contentWriteCellStyle.setHorizontalAlignment(HorizontalAlignment.CENTER); + // 头样式与内容样式合并 + return new HorizontalCellStyleStrategy(headWriteCellStyle, contentWriteCellStyle); } + /** + * 导出 + * @param data + * @param fileName + * @param sheetName + * @param clazz + * @throws Exception + */ + public static void writeExcel( List data, String fileName, String sheetName, Class clazz) throws Exception { + log.info("报表导出Size: "+data.size()+"条。"); + EasyExcel.write(fileName, clazz).excelType(ExcelTypeEnum.XLSX).sheet(sheetName).registerWriteHandler(getDefaultHorizontalCellStyleStrategy()).doWrite(data); + } }