Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

Excelへの画像表示

いつもお世話になります。

現在Excelに画像を表示するPGを作成しております。

そこで、悩んでいるのが、ソースの中に拡張子を
指定している場所がありますが、その拡張子を
指定せずに色々な拡張子の画像を表示できる方法は
ないでしょうか?

現在こちらで表示したい画像は可変で、どんな
拡張子のファイルがはいってくるかわからないのです。

よろしくお願いします。


【環境】
apache
tomcat
java1.4
eclipse

【ソース】
bytes = IOUtils.toByteArray(new FileInputStream(ItsContext.getKomokuGazoPath() + x));
pictureIdx = wb.addPicture(bytes, HSSFWorkbook.PICTURE_TYPE_JPEG);
patriarch = sheet.createDrawingPatriarch();
anchor = new HSSFClientAnchor();
anchor.setAnchorType(0); // ここではセルにあわせて移動&リサイズを選択
                
//余白微調整
anchor.setDx1(100);
anchor.setDy1(100);
anchor.setDx2(-100);
anchor.setDy2(-100);
                
anchor.setRow1(rowcols[i][0]);
anchor.setCol1(rowcols[i][1]);
anchor.setRow2(rowcols[i][2]);
anchor.setCol2(rowcols[i][3]);
                
/* partiachに画像を設定 */
patriarch.createPicture(anchor, pictureIdx);

3

回答

7358

閲覧

3件の回答

評価

0

Excelファイルフォーマットで扱える画像形式が限られているのだから、POIを使って任意の画像形式を埋め込むのは無理、無意味でしょう。

POIに画像(バイト列)を渡す前に、自分で(ImageIOやJAI)を使って任意の画像形式をExcelでサポートされている形式(JPEGなど)に変換してはどうですか?

評価

0

ご回答有難うございます。

ImageIOやJAIで、画像形式を変換できるのですね!
やった事がないのですが、挑戦してみますね。

イメージ的には、画像ファイルを読み込んで、変換して
書き込むという形でよろしいでしょうか?

評価

0

指針をもらうことができたのだから、次は自力で頑張ってみる。
細かいところまで全て指示を待っている人間は、力を付けることができない。

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。