POI操作EXCEL插入图片

系列文章目录



POI操作EXCEL插入图片

依赖

<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi</artifactId>
    <version>4.1.2</version>
</dependency>
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml</artifactId>
    <version>4.1.2</version>
</dependency>

使用HSSFPatriarch来将图片写入EXCEL中

BufferedImage bufferImg;//图片
ByteArrayOutputStream byteArrayOut = null;
try {
    // 先把读进来的图片放到一个ByteArrayOutputStream中,以便产生ByteArray
    byteArrayOut = new ByteArrayOutputStream();
    //将图片读到BufferedImage
    InputStream resource = Thread.currentThread().getContextClassLoader().getResourceAsStream(imageName);
    if(resource == null){
        throw new BusinessException("%s资源不存在",imageName);
    }
    bufferImg = ImageIO.read(resource);
    // 将图片写入流中
    ImageIO.write(bufferImg, "png", byteArrayOut);

    // 利用HSSFPatriarch将图片写入EXCEL
    HSSFPatriarch patriarch = sheet.createDrawingPatriarch();
		// 定义单元格位置
    HSSFCreationHelper creationHelper = workbook.getCreationHelper();
    HSSFClientAnchor clientAnchor = creationHelper.createClientAnchor();
    clientAnchor.setCol1(columnNo);
    clientAnchor.setRow1(rowNo);


    // 插入图片  PICTURE_TYPE_PNG是图片的类型
    HSSFPicture picture = patriarch.createPicture(clientAnchor, workbook.addPicture(byteArrayOut
            .toByteArray(), HSSFWorkbook.PICTURE_TYPE_PNG));
    picture.resize(2.5);

} catch (IOException e) {
    LOGGER.error("图片写入excel失败", e);
} finally {
    if (byteArrayOut != null) {
        try {
            byteArrayOut.close();
        } catch (IOException e) {
            LOGGER.error("关闭流失败", e);
        }
    }

}

注:在将图片添加到工作簿中时,必须将其存储为字节数组


由于自身博客未收录,可点击 https://zhhll.icu 查看更多有用的博客

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

拾光师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值