首页 文章

Apache POI所有图像插入到Excel由于一个损坏的图像而失败

提问于
浏览
0

我准备了一个代码,它从数据库字段中获取字节,将图像存储为BLOB,并使用 apache poi version 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();
     }

现在我缩小到一个导致问题的图像 . blob对我来说很好看 . 但是,当插入所有图像以及此特定图像时,将删除所有图像并打开Excel并显示错误消息: "File Error: Data May have been lost"

绘图族长中的所有图像都不会显示在Excel中 . 如果我跳过此特定行,则图像在Excel中显示正常 . 它只是这个特殊的形象 .

任何人都可以通过一种方法来帮助我检查其中一个图纸是否有错误,如果找到则跳过它,以便剩下的图像保留,只有这个图像被删除 .

任何有关此建议都会有所帮助 . 提前致谢 .

1 回答

  • 0

    切换到XSSF适用于此方案 . 显示损坏的图像,图像图标无效 . 而其他所有人仍然适当地填充 .

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

相关问题