曲殇~ 2023-05-15 11:18 采纳率: 50%
浏览 40
已结题

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

  • 写回答

2条回答 默认 最新

  • sum墨 2023-05-15 11:28
    关注

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

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

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

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

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

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

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

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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 5月23日
  • 已采纳回答 5月15日
  • 修改了问题 5月15日
  • 创建了问题 5月15日

悬赏问题

  • ¥50 python批量提取发票的信息
  • ¥15 mysql安装,初始化数据库失败
  • ¥15 虚幻五引擎内容如何上传至网盘?
  • ¥15 使用mmpose库时出现了问题
  • ¥15 IRI2016模型matlab运行报错
  • ¥50 bat怎么设置电脑后台自动点击网页指定词运行脚本,输入指定网页链接,指定点击词,指定间隔时间,指定网页出现的词,指定网页出现词出现后后点击锁定,放在后台运行不影响前台鼠标工作
  • ¥20 20CrMnMo的高温变形抗力
  • ¥15 RTX3.6 5565驱动中断报错
  • ¥50 带防重放token(Antireplay-Token)的网站怎么用Python发送请求
  • ¥15 visa版本没问题,串口调试助手调试串口正常使用,但是labview刷新不出来