From 05b1758ef5f78b1496e77dd00969f3af754afd46 Mon Sep 17 00:00:00 2001 From: fwq <582742538@qq.com> Date: 星期六, 17 十二月 2022 15:01:56 +0800 Subject: [PATCH] 修改时间工具类 --- src/main/java/com/hx/util/ExcelUtil.java | 83 +++++++++++++++++++++++++++++++++++++++++ 1 files changed, 83 insertions(+), 0 deletions(-) diff --git a/src/main/java/com/hx/util/ExcelUtil.java b/src/main/java/com/hx/util/ExcelUtil.java index d0b4f6d..5cbea70 100644 --- a/src/main/java/com/hx/util/ExcelUtil.java +++ b/src/main/java/com/hx/util/ExcelUtil.java @@ -15,6 +15,8 @@ import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.springframework.web.multipart.MultipartFile; +import javax.imageio.ImageIO; +import java.awt.image.BufferedImage; import java.io.*; import java.text.DateFormat; import java.text.SimpleDateFormat; @@ -719,4 +721,85 @@ } + + + + public static File createExcelByImg(String[] headList, String[] fieldList, List<Map<String, Object>> dataList, Integer height, Integer width) throws Exception { + File file = File.createTempFile("temp", ".xls"); + FileOutputStream fileOut = null; + BufferedImage bufferImg = null; + + try { + ByteArrayOutputStream byteArrayOut = new ByteArrayOutputStream(); + if (height == null) { + height = 450; + } + + if (width == null) { + width = 1000; + } + + HSSFWorkbook workbook = new HSSFWorkbook(); + HSSFCellStyle boderStyle = workbook.createCellStyle(); + boderStyle.setVerticalAlignment((short)1); + boderStyle.setAlignment((short)2); + HSSFSheet sheet = workbook.createSheet(); + HSSFPatriarch patriarch = sheet.createDrawingPatriarch(); + HSSFRow row = sheet.createRow(0); + + HSSFCell anchor; + for(int i = 0; i < headList.length; ++i) { + row.setHeight(height.shortValue()); + sheet.setColumnWidth(i, width); + anchor = row.createCell(i); + anchor.setCellType(1); + anchor.setCellValue(headList[i]); + anchor.setCellStyle(boderStyle); + } + + HSSFRow row_value = null; + anchor = null; + HSSFCell cell = null; + if (dataList != null) { + for(int n = 0; n < dataList.size(); ++n) { + row_value = sheet.createRow(n + 1); + row_value.setHeight(height.shortValue()); + Map<String, Object> dataMap = (Map)dataList.get(n); + + for(int i = 0; i < fieldList.length; ++i) { + sheet.setColumnWidth(i, width); + cell = row_value.createCell(i); + cell.setCellType(1); + Object value = dataMap.get(fieldList[i]); + if (value != null && "class java.io.File".equals(value.getClass().toString())) { + File file2 = (File)value; + if (file2 == null) { + cell.setCellValue(""); + } else { + bufferImg = ImageIO.read(file2); + ImageIO.write(bufferImg, "jpg", byteArrayOut); + HSSFClientAnchor anchor1 = new HSSFClientAnchor(0, 0, 1023, 255, (short)i, n + 1, (short)i, n + 1); + anchor1.setAnchorType(0); + patriarch.createPicture(anchor1, workbook.addPicture(byteArrayOut.toByteArray(), 5)); + } + } else { + cell.setCellValue(objToString(dataMap.get(fieldList[i]))); + cell.setCellStyle(boderStyle); + } + } + } + } + + FileOutputStream fOut = new FileOutputStream(file); + workbook.write(fOut); + fOut.flush(); + fOut.close(); + } catch (Exception var25) { + var25.printStackTrace(); + } finally { + file.deleteOnExit(); + } + + return file; + } } \ No newline at end of file -- Gitblit v1.8.0