记录一个java poi向excel插入图片的问题

public void addPictrue(String imgPath,HSSFSheet sheet, HSSFWorkbook wb){
         BufferedImage bufferImg = null;     
        //先把读进来的图片放到一个ByteArrayOutputStream中,以便产生ByteArray    
        try {  
            ByteArrayOutputStream byteArrayOut = new ByteArrayOutputStream();
            
            bufferImg = ImageIO.read(new File(imgPath));     
            //这里要注意,第二个参数将会决定插入图片形式,如果是一个png的图片,背景透明,但是此处设置为jpg格式将会自动添加黑色背景
            ImageIO.write(bufferImg, "png", byteArrayOut);            
             //画图的顶级管理器,一个sheet只能获取一个
            HSSFPatriarch patriarch = sheet.createDrawingPatriarch();     
            //anchor主要用于设置图片的属性  
            HSSFClientAnchor anchor = new HSSFClientAnchor(0, 0, 255, 255,(short) 9, 0, (short) 11, 0);     
            anchor.setAnchorType(2);     
            //插入图片    
            patriarch.createPicture(anchor, wb.addPicture(byteArrayOut.toByteArray(), HSSFWorkbook.PICTURE_TYPE_PNG));   
           
        } catch (Exception e) {  
            e.printStackTrace();  
        }finally{  
        }  
 }
 public void addPictrue2(String imgPath,HSSFWorkbook wb,HSSFSheet sheet){
  InputStream is;
  byte[] bytes;
  try {
   is = new FileInputStream(imgPath);
   bytes = IOUtils.toByteArray(is);
   int pictureIdx = wb.addPicture(bytes, wb.PICTURE_TYPE_PNG);  
     
   CreationHelper helper = wb.getCreationHelper();  
   Drawing drawing = sheet.createDrawingPatriarch();  
   ClientAnchor anchor = helper.createClientAnchor();  
     
   // 图片插入坐标  
   anchor.setCol1(9);  
   anchor.setRow1(0);
   anchor.setCol2(11);
   anchor.setRow2(0);
   // 插入图片  
   Picture pict = drawing.createPicture(anchor, pictureIdx);  
   pict.resize();  
  } catch (IOException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }   
 }

之前经不同地方都很难找到方法,在此做记录,以便以后方便使用!

转载于:https://my.oschina.net/hedaoxy/blog/550854

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值