簡體   English   中英

由於一個損壞的映像,導致將Apache POI所有映像插入Excel失敗

[英]Apache POI All Image Insert to Excel failing due to one corrupt image

我准備了一個代碼,該代碼從存儲圖像的數據庫字段中獲取字節作為BLOB並將其插入到使用apache poi 3.9版的excel文件中

該代碼可以正常工作,並且在大多數情況下,圖像會被拉出並錨定到指定的列和行。

這是代碼:

Blob img = ads.getPhoto();
      byte[] imageByte = ads.getPhoto().getBytes(1, (int) img.length());
      if (imageByte.length > 10) {
      try {
       int picId = workbook.addPicture(imageByte, workbook.PICTURE_TYPE_JPEG);
       CreationHelper helper = workbook.getCreationHelper();
       Drawing drawing = sheet.createDrawingPatriarch();
       ClientAnchor anchor = helper.createClientAnchor();
       anchor.setCol1(2);
       anchor.setCol2(3);
       anchor.setRow1(rowId);
       anchor.setRow2(rowId + 1);
       Picture pict = drawing.createPicture(anchor, picId);
       System.out.println("TEST PRINT");
     } catch (Exception ex) {
        ex.printStackTrace();
     }

現在,我縮小到一張引起問題的圖像。 這個斑點對我來說還不錯。 但是,當插入所有圖像以及該特定圖像時,所有圖像將被刪除,並且excel將打開並顯示錯誤消息: “文件錯誤:數據可能已丟失”

Excel中不顯示繪圖族長中的任何圖像。 如果我跳過此特定行,則圖像在excel中顯示良好。 它只是與此特定的圖像。

誰能幫我一種方法來檢查其中一張圖紙是否存在錯誤,如果發現錯誤,請跳過該錯誤,以便保留其余圖像並僅刪除該圖像。

任何與此有關的建議都會有很大幫助。 提前致謝。

在這種情況下,切換到XSSF是可行的。 損壞的圖像顯示帶有無效的圖像圖標。 並且所有其他人口仍然適當地居住。

但是使用poi.3.15時XSSF的性能非常差。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM