From 54bfa627f0fd37550f9b828f630e98e78aea536d Mon Sep 17 00:00:00 2001
From: RuoYi <yzz_ivy@163.com>
Date: 星期一, 20 九月 2021 19:04:57 +0800
Subject: [PATCH] 防止Excel导入图片可能出现的异常

---
 ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java |   19 +++++++++++--------
 1 files changed, 11 insertions(+), 8 deletions(-)

diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java
index 3d95f31..0ab074e 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java
@@ -66,7 +66,7 @@
 import com.ruoyi.common.config.RuoYiConfig;
 import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.common.core.text.Convert;
-import com.ruoyi.common.exception.CustomException;
+import com.ruoyi.common.exception.UtilException;
 import com.ruoyi.common.utils.DateUtils;
 import com.ruoyi.common.utils.DictUtils;
 import com.ruoyi.common.utils.StringUtils;
@@ -195,11 +195,11 @@
         Map<String, PictureData> pictures;
         if (isXSSFWorkbook)
         {
-            pictures = getSheetPictrues07((XSSFSheet) sheet, (XSSFWorkbook) wb);
+            pictures = getSheetPictures07((XSSFSheet) sheet, (XSSFWorkbook) wb);
         }
         else
         {
-            pictures = getSheetPictrues03((HSSFSheet) sheet, (HSSFWorkbook) wb);
+            pictures = getSheetPictures03((HSSFSheet) sheet, (HSSFWorkbook) wb);
         }
         // 获取最后一个非空行的行下标,比如总行数为n,则返回的为n-1
         int rows = sheet.getLastRowNum();
@@ -340,8 +340,11 @@
                             {
                                 val = "";
                             }
-                            byte[] data = image.getData();
-                            val = FileUtils.writeImportBytes(data);
+                            else
+                            {
+                                byte[] data = image.getData();
+                                val = FileUtils.writeImportBytes(data);
+                            }
                         }
                         ReflectUtils.invokeSetter(entity, propertyName, val);
                     }
@@ -450,7 +453,7 @@
         catch (Exception e)
         {
             log.error("导出Excel异常{}", e.getMessage());
-            throw new CustomException("导出Excel失败,请联系网站管理员!");
+            throw new UtilException("导出Excel失败,请联系网站管理员!");
         }
         finally
         {
@@ -1196,7 +1199,7 @@
      * @param workbook 工作簿对象
      * @return Map key:图片单元格索引(1_1)String,value:图片流PictureData
      */
-    public static Map<String, PictureData> getSheetPictrues03(HSSFSheet sheet, HSSFWorkbook workbook)
+    public static Map<String, PictureData> getSheetPictures03(HSSFSheet sheet, HSSFWorkbook workbook)
     {
         Map<String, PictureData> sheetIndexPicMap = new HashMap<String, PictureData>();
         List<HSSFPictureData> pictures = workbook.getAllPictures();
@@ -1229,7 +1232,7 @@
      * @param workbook 工作簿对象
      * @return Map key:图片单元格索引(1_1)String,value:图片流PictureData
      */
-    public static Map<String, PictureData> getSheetPictrues07(XSSFSheet sheet, XSSFWorkbook workbook)
+    public static Map<String, PictureData> getSheetPictures07(XSSFSheet sheet, XSSFWorkbook workbook)
     {
         Map<String, PictureData> sheetIndexPicMap = new HashMap<String, PictureData>();
         for (POIXMLDocumentPart dr : sheet.getRelations())

--
Gitblit v1.9.2