wangrenhuang
2022-08-31 6b6bf55bd752a477643c798d9e9bba36bef277ef
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;
   }
}