Преглед изворни кода

修复png图片不能显示的问题

insomniaLee пре 6 година
родитељ
комит
b3d74506c5
1 измењених фајлова са 13 додато и 6 уклоњено
  1. 13 6
      src/main/java/com/mooctest/util/Report2xls.java

+ 13 - 6
src/main/java/com/mooctest/util/Report2xls.java

@@ -60,12 +60,10 @@ public class Report2xls {
                 thead.createCell(i).setCellValue(theads[i]);
             }
 //            sheet1.setDefaultRowHeight((short)(30*256));
-            for (int rowNum = 0; rowNum < data.size()&&rowNum<588; rowNum++) {
+            for (int rowNum = 0; rowNum < data.size(); rowNum++) {
                 Row row = sheet1.createRow(rowNum+1);
                 //row.setHeight((short)(30*256));
-                if(rowNum<580){
-                    continue;
-                }
+
                 FinalReportDTO dto = data.get(rowNum);
                 cell0 = row.createCell(0);
                 cell0.setCellValue(rowNum+1);
@@ -92,10 +90,10 @@ public class Report2xls {
                         tempWidth = bufferImg.getWidth();
                         tempHeight = bufferImg.getHeight();
                         fitSize = getFitHeightAndWidth(tempHeight,tempWidth);
-                        ImageIO.write(bufferImg, "jpg", byteArrayOut);
+                        ImageIO.write(bufferImg, getPictureType(bufferImg.getType()), byteArrayOut);
                         anchor = new HSSFClientAnchor(fitSize[1]*4, fitSize[0], 0, 0,(short) (5+photoIndex), (rowNum+1), (short) (6+photoIndex), rowNum+2);
                         //插入图片 1
-                        patriarch.createPicture(anchor, wb.addPicture(byteArrayOut.toByteArray(), HSSFWorkbook.PICTURE_TYPE_PNG));
+                        patriarch.createPicture(anchor, wb.addPicture(byteArrayOut.toByteArray(),bufferImg.getType()));
                         bufferImg = null;
                         byteArrayOut = new ByteArrayOutputStream();
                     }
@@ -122,10 +120,19 @@ public class Report2xls {
         return res;
     }
 
+
+
     private static int max(int a, int b) {
         return a>b?a:b;
     }
 
+    private static String getPictureType(int type){
+        if(type==6){
+            return "png";
+        }
+        return "jpg";
+    }
+
     /**
      * 0 is Height and 1 is width
      * @param height