POI操作EXCEL插入图片
系列文章目录
文章目录
- 系列文章目录
- POI操作EXCEL插入图片
POI操作EXCEL插入图片
依赖
<dependency><groupId>org.apache.poigroupId><artifactId>poiartifactId><version>4.1.2version>
dependency>
<dependency><groupId>org.apache.poigroupId><artifactId>poi-ooxmlartifactId><version>4.1.2version>
dependency>
使用HSSFPatriarch来将图片写入EXCEL中
BufferedImage bufferImg;//图片
ByteArrayOutputStream byteArrayOut = null;
try {// 先把读进来的图片放到一个ByteArrayOutputStream中,以便产生ByteArraybyteArrayOut = new ByteArrayOutputStream();//将图片读到BufferedImageInputStream resource = Thread.currentThread().getContextClassLoader().getResourceAsStream(imageName);if(resource == null){throw new BusinessException("%s资源不存在",imageName);}bufferImg = ImageIO.read(resource);// 将图片写入流中ImageIO.write(bufferImg, "png", byteArrayOut);// 利用HSSFPatriarch将图片写入EXCELHSSFPatriarch 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 查看更多有用的博客
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
