package com.basic.security.utils; import com.basic.security.model.ModelAdapter; import com.basic.security.model.Visit; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.CellStyle; import org.apache.poi.ss.usermodel.Font; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import java.io.File; import java.io.FileOutputStream; import java.text.SimpleDateFormat; import java.util.Date; import java.util.List; public class ExcelWriteUtil { static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); public static void write(File file, List visitList) { try { XSSFWorkbook workbook = new XSSFWorkbook(); XSSFSheet sheet = workbook.createSheet("访问记录"); CellStyle cellStyle = sheet.getWorkbook().createCellStyle(); Font font = sheet.getWorkbook().createFont(); // font.setBold(true); font.setFontHeightInPoints((short) 16); cellStyle.setFont(font); cellStyle.setAlignment(CellStyle.ALIGN_CENTER); cellStyle.setFont(font); cellStyle.setWrapText(false); CellStyle cellStyle2 = sheet.getWorkbook().createCellStyle(); Font font2 = sheet.getWorkbook().createFont(); font2.setBold(true); font2.setFontHeightInPoints((short) 16); cellStyle2.setFont(font2); cellStyle2.setAlignment(CellStyle.ALIGN_CENTER); cellStyle2.setFont(font); cellStyle2.setWrapText(false); String heads[] = {"进出时间", "设备名称", "姓名", "身份证号", "手机号", "身份", "被访人姓名", "被访人身份证号", "被访人手机号", "被访人身份", "被访人组织机构", "识别结果"}; { sheet.setColumnWidth(0, 256 * 30);//进出时间 sheet.setColumnWidth(1, 256 * 15);//设备名称 sheet.setColumnWidth(2, 256 * 15);//姓名 sheet.setColumnWidth(3, 256 * 30);//身份证号 sheet.setColumnWidth(4, 256 * 20);//手机号 sheet.setColumnWidth(5, 256 * 30);//身份 sheet.setColumnWidth(6, 256 * 15);//被访人姓名 sheet.setColumnWidth(7, 256 * 30);//被访人身份证号 sheet.setColumnWidth(8, 256 * 20);//被访人手机号 sheet.setColumnWidth(9, 256 * 30);//被访人身份 sheet.setColumnWidth(10, 256 * 20);//被访人组织机构 sheet.setColumnWidth(11, 256 * 15);//识别结果 } int rowCount = 0; { Row row = sheet.createRow(rowCount); int columnCount = 0; for (Object field : heads) { Cell cell = row.createCell(columnCount); cell.setCellStyle(cellStyle2); if (field instanceof String) { cell.setCellValue((String) field); } else if (field instanceof Integer) { cell.setCellValue((Integer) field); } columnCount++; } rowCount++; } //String heads[] = {"进出时间","设备名称","姓名","身份证号","手机号","身份", // "被访人姓名","被访人身份证号","被访人手机号","被访人身份","被访人组织机构","识别结果"}; for (ModelAdapter visit : visitList) { Row row = sheet.createRow(rowCount); Cell cell = null; int columnCount = 0; String visitTime = ""; try { visitTime = sdf.format(new Date(Long.parseLong(visit.getString(Visit.visit_time)))); } catch (Exception e) { e.printStackTrace(); } cell = row.createCell(columnCount); cell.setCellStyle(cellStyle); cell.setCellValue(visitTime); cell = row.createCell(++columnCount); cell.setCellStyle(cellStyle); cell.setCellValue(visit.getString(Visit.device_name)); cell = row.createCell(++columnCount); cell.setCellStyle(cellStyle); cell.setCellValue(visit.getString(Visit.person_name)); cell = row.createCell(++columnCount); cell.setCellStyle(cellStyle); cell.setCellValue(visit.getString(Visit.person_id_number)); cell = row.createCell(++columnCount); cell.setCellStyle(cellStyle); cell.setCellValue(visit.getString(Visit.person_phone)); cell = row.createCell(++columnCount); cell.setCellStyle(cellStyle); cell.setCellValue(visit.getString(Visit.person_type)); cell = row.createCell(++columnCount); cell.setCellStyle(cellStyle); cell.setCellValue(visit.getString(Visit.target_person_name)); cell = row.createCell(++columnCount); cell.setCellStyle(cellStyle); cell.setCellValue(visit.getString(Visit.target_id_number)); cell = row.createCell(++columnCount); cell.setCellStyle(cellStyle); cell.setCellValue(visit.getString(Visit.target_phone)); cell = row.createCell(++columnCount); cell.setCellStyle(cellStyle); cell.setCellValue(visit.getString(Visit.target_identity)); cell = row.createCell(++columnCount); cell.setCellStyle(cellStyle); cell.setCellValue(visit.getString(Visit.target_org_name)); cell = row.createCell(++columnCount); cell.setCellStyle(cellStyle); cell.setCellValue("1".equals(visit.getString(Visit.verify_result)) ? "通行成功" : "通行失败"); rowCount++; } try (FileOutputStream outputStream = new FileOutputStream(file)) { workbook.write(outputStream); } catch (Exception e) { e.printStackTrace(); } } catch (Exception e) { e.printStackTrace(); } } }