为了账号安全,请及时绑定邮箱和手机立即绑定

使用POI把图片放到EXCEL

想了半天,还是把我弃用的POI方案写出来吧,万一有人需要或是我往后需要,有地方查看。
POI版本是poi.3.10.1

public static void main(String[] args) {   
      FileOutputStream fileOut = null;  
      BufferedImage bufferImg = null; 
  //先把读进来的图片放到一个ByteArrayOutputStream中,以便产生ByteArray  
     try {
          ByteArrayOutputStream byteArrayOut = new ByteArrayOutputStream();  
          //图片是我本地的        
          bufferImg = ImageIO.read(new File("D:/84f9d3c7-b401-430a-bcf8-5483b560d7f4.jpeg"));
          ImageIO.write(bufferImg, "jpeg", byteArrayOut); 
          HSSFWorkbook wb = new HSSFWorkbook(); 
          HSSFSheet sheet1 = wb.createSheet("test picture");
        //画图的顶级管理器,一个sheet只能获取一个(一定要注意这点)          
         HSSFPatriarch patriarch = sheet1.createDrawingPatriarch();
      /** 
      * anchor主要用于设置图片的属性 
      * new HSSFClientAnchor(0, 0, 255, 255,(short) 1, 1, (short) 5, 8);
      * 其中的"(short) 1, 1"是图片左上方在excel方格的位置
      * 其中的“(short) 5, 8”是图片右下方在excel方格中的位置,修改这个位置可以把图片放大  
     * 
      */
      HSSFClientAnchor anchor = new HSSFClientAnchor(0, 0, 255, 255,(short) 1, 1, (short) 5, 8);
      anchor.setAnchorType(3);  
    //插入图片 
     patriarch.createPicture(anchor, wb.addPicture(byteArrayOut.toByteArray(),     
     HSSFWorkbook.PICTURE_TYPE_JPEG));  
     fileOut = new FileOutputStream("D:/测试Excel.xls"); 
     // 写入excel文件 
     wb.write(fileOut);
     System.out.println("----Excle文件已生成------");
   } catch (Exception e) {
      e.printStackTrace();   }
finally{ 
     if(fileOut != null){
         try {            
            fileOut.close();
         } catch (IOException e) {
            e.printStackTrace(); 
        }
      }
   }
}
点击查看更多内容
1人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消