2012-04-08 25 views
3

Apache POI(バージョン3.7)を使用してExcelブックに画像を挿入する際に問題があります。私のコードは次のとおりです:Apache POI "addPicture"メソッドが動作しません

private static void createAndFillWorkbook() { 
    FileOutputStream out = null; 
    FileInputStream in = null; 
    try { 
     HSSFWorkbook workbook = new HSSFWorkbook(); 
     File picture = new File("D:\\pngPict.png"); 
     byte[] buf = new byte[(int) picture.length()]; 
     in = new FileInputStream(picture); 
     in.read(buf); 
     workbook.addPicture(buf, Workbook.PICTURE_TYPE_PNG); 
     out = new FileOutputStream("D:\\Book3.xls"); 
     workbook.write(out); 
    } catch (Exception e) { 
    } finally { 
     try { 
      if (out != null) { 
       out.close(); 
      } 
      if (in != null) { 
       in.close(); 
      } 
     } catch (Exception e) { 
      throw new RuntimeException(e); 
     } 
    } 
} 

(私は.xlsファイルフォーマットを使用しています)私はなぜそうは分かりません。

答えて

4

主な問題はApache poi addPicture apiはApache共通のcodecに依存します。commons-codec-1.6からこの場所にhttp://commons.apache.org/codec/download_codec.cgiをダウンロードし、クラスパスにjarファイルを配置します。

これはうまくいくはずです。また、希望このことができますエクセル

http://poi.apache.org/spreadsheet/quick-guide.html#Images

サンプル動作するコードはここにもあります

http://www.codemiles.com/java/image-insert-in-excel-file-using-poi-t1340.html

に写真を追加するサンプルの例を試してみてください!!

+0

ありがとうございました!後で試してみて、結果についてお答えします。 – VladislavLysov

+0

私は同じ問題が...あなたが言ったように、私は瓶を追加しようとしました。しかし、まだ私は写真を追加することができません。いずれの例外もありません。実際の問題は何でしょうか? – Stunner

+0

@Stunnerビルドパスにjarを追加してから、それを使ってみてください。 :)遅れて返信して申し訳ありません –

関連する問題