java poi导出excel 带图片内容

在循环写入表格数据时候加多一个数据图片的判断。

加入相对于的坐标位置即可。

处理图片的关键代码如下

if(obj[j].toString().contains(".png")||obj[j].toString().contains(".jpg")){

   row.setHeight((short)1000);// 设置行高
   byteArrayOut = new ByteArrayOutputStream();
   try {
      //buffer_Img =ImageIO.read(new File(obj[j].toString()));

      URL urlfile =new URL(obj[j].toString());
      //将文件转成字节流
      InputStream inputStream = urlfile.openStream();
      //加入图像缓冲区
      BufferedImage buffer_Img =ImageIO.read(inputStream);
      // 写入
      ImageIO.write(buffer_Img, "jpg", byteArrayOut);
   } catch (IOException e) {
      System.out.println("写入出错");
      e.printStackTrace();
   }
   //图片位置 col1 列下标
   XSSFClientAnchor anchor = new XSSFClientAnchor(0, 0, 0, 0, obj.length-1, i+1,  obj.length, i+2);
   anchor.setAnchorType(ClientAnchor.AnchorType.MOVE_DONT_RESIZE);
   // 插入图片
   patriarch.createPicture(anchor, workbook.addPicture(byteArrayOut.toByteArray(), XSSFWorkbook.PICTURE_TYPE_JPEG));
}

 

posted @ 2022-04-28 14:36  信息界的搬运工  阅读(778)  评论(0编辑  收藏  举报