poi导出图片到excel,导出成功但是图片不显示,请求帮助

#poi导出图片到excel,导出成功但是图片不显示,哪位大佬帮助一下

    //写入图片
    private static void writeImg(Workbook workbook, Sheet sheet, Row currentRow, String imgPath, int currentColumnIndex, SXSSFDrawing drawing) {
        try {
            URL url = new URL(imgPath);
            BufferedImage image = ImageIO.read(url);
            ByteArrayOutputStream byteArrayOut = new ByteArrayOutputStream();
            ImageIO.write(image, imgPath.substring(imgPath.lastIndexOf(".") + 1), byteArrayOut);

            //判断图片后缀
            int addPicture;
            String hz = imgPath.substring(imgPath.lastIndexOf(".") + 1);
            if("jpg".equals(hz)){
                addPicture = workbook.addPicture(byteArrayOut.toByteArray(), workbook.PICTURE_TYPE_JPEG);
            } else {
                addPicture = workbook.addPicture(byteArrayOut.toByteArray(), workbook.PICTURE_TYPE_PNG);
            }
            ClientAnchor anchor = drawing.createAnchor( 50, 50, 50, 50, currentColumnIndex, currentRow.getRowNum(), currentColumnIndex + 1, currentRow.getRowNum() + 1);
            //图片位置
//            XSSFClientAnchor anchor = new XSSFClientAnchor(5, 5, 5, 5, currentColumnIndex, currentRow.getRowNum(), currentColumnIndex + 1,currentRow.getRowNum() + 1);
//            anchor.setAnchorType(ClientAnchor.AnchorType.MOVE_AND_RESIZE);
            drawing.createPicture(anchor, addPicture);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

图片及输出流都是没问题的,但是导出后图片就如下所示了

img

答案转自ChatGPT,希望有所帮助

可能是因为你使用的是SXSSFWorkbook,它是XSSFWorkbook的一种优化版本,可以在处理大量数据时提高性能,但它不能支持图片的导出。所以,如果你需要在Excel中插入图片,建议使用XSSFWorkbook。

另外,如果你已经确定使用XSSFWorkbook,但仍然无法显示图片,可以尝试以下几种方法:

请确保图片路径正确:可以使用绝对路径或相对路径指定图片路径。

请确保图片格式正确:Excel支持的图片格式包括PNG、JPG、BMP、GIF等。

请确保图片大小适当:如果图片大小超出了单元格的范围,可能会导致图片不显示或者显示不完整。可以尝试缩小图片尺寸。

请确保插入图片的方式正确:使用drawing.createPicture()方法插入图片时,需要确保插入的位置正确。

在插入图片之前,需要先创建绘图对象:可以使用sheet.createDrawingPatriarch()方法创建绘图对象。