0

Poi Apache を使用して Excel ファイルを生成しています。ファイルに画像を追加する必要がありますが、プロジェクトを Runnable Jar にエクスポートすると問題が発生し、機能しません。

InputStream is = ExcelTools.class.getClassLoader().getResourceAsStream( "./ensao/pfa/opendelib/resources/LogoOpen.jpg" );

    byte[] bytes = IOUtils.toByteArray(is);
    int pictureIdx = wb.addPicture(bytes, Workbook.PICTURE_TYPE_JPEG);
    is.close();

    Drawing drawing = sheet.createDrawingPatriarch();
    HSSFClientAnchor anchor = new HSSFClientAnchor(40, 10, 65, 20,
            (short) 0, 0, (short) 0, 0);
    anchor.setAnchorType(1);

    Picture pict = drawing.createPicture(anchor, pictureIdx);
    pict.resize();

問題は次の行から開始されます。

byte[] bytes = IOUtils.toByteArray(is);
4

1 に答える 1

1

イメージへの不適切なパスに問題があります。IDE で構成された環境 ($CLASSPATH、ファイル パスなど) は 1 つの方法で実行されますが、実際の実行は他の環境で動作します。作業ディレクトリを見つけるには、 debug pwd analog を出力します。

次のリンクが役立つ場合があります: http://www.java-forums.org/new-java/434-how-can-i-get-current-directory.html http://www.mkyong.com/java/how -to-get-the-current-working-directory-in-java/ Java で現在の作業ディレクトリを取得する

于 2013-07-24T05:52:31.367 に答える