使用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(); 
        }
      }
   }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 吃完早餐,他们向李南工作的地方进发。这几年扶贫资金较多,从县城到李南他们村委会的水泥路今年刚修好,这使得他们的交通...
    依泉阅读 3,418评论 7 30
  • 虽说以前和老师系统学习,一直忽悠了一个问题,基本功练习。胸腹式呼吸法,每次练习不到位,老师说气息是声音的灵魂,我急...
    A代言人笑笑阅读 1,410评论 0 1
  • 长颈鹿的脖子那么长 哽咽的时候 是不是很难受 章鱼有三颗心脏 心痛的时候 是不是很疼 鹦鹉可以学人说话 尴尬的时候...
    窟窿怪阅读 3,647评论 0 0