From b4fb02203aa979537b86dd038b6cbcf0803ca3ec Mon Sep 17 00:00:00 2001 From: ChenJiaHe <763432473@qq.com> Date: 星期五, 23 十二月 2022 10:59:28 +0800 Subject: [PATCH] 导出文件后缀修改 --- src/main/java/com/hx/util/ExcelUtil.java | 85 ++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 84 insertions(+), 1 deletions(-) diff --git a/src/main/java/com/hx/util/ExcelUtil.java b/src/main/java/com/hx/util/ExcelUtil.java index d0b4f6d..ee1bd12 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; @@ -114,7 +116,7 @@ */ public static File createExcel(String[] headList, String[] fieldList, List<Map<String, Object>> dataList) throws Exception { - File file = File.createTempFile("temp", ".xls"); + File file = File.createTempFile("temp", ".xlsx"); try{ // 鍒涘缓鏂扮殑Excel 宸ヤ綔绨� HSSFWorkbook workbook = new HSSFWorkbook(); @@ -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