8

を使用してjxlを使用して、Excelファイルに画像を挿入できますsheet.addImage(WritableImage obj)。私の問題は、 の引数に基づいて伸びることですWritableImage。200x200サイズの画像を挿入すると、シートに200x200として表示されるように、挿入する画像が伸びないようにする方法があるかどうか疑問に思っています。

4

2 に答える 2

7

これがjxlについて私を悩ませたのと同じくらい、ピクセル/インチ/標準的な測定単位の代わりに縦横比をセルに関連付けずに画像を挿入する方法を見つけたことがなく、過去にまともな研究を行いましたそうすることで。

あなたができる最善のことは、画像を挿入するセルの高さ/幅に合わせるか、さらに良いことに、画像を挿入するセルのセル幅/高さを設定することです.

JExcel FAQ から - http://jexcelapi.sourceforge.net/resources/faq/

private static final double CELL_DEFAULT_HEIGHT = 17;
private static final double CELL_DEFAULT_WIDTH = 64;

File imageFile = new File(GIF_OR_JPG_IMAGE_FILE);
BufferedImage input = ImageIO.read(imageFile);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ImageIO.write(input, "PNG", baos);
sheet.addImage(new WritableImage(1,1,input.getWidth() / CELL_DEFAULT_WIDTH,
    input.getHeight() / CELL_DEFAULT_HEIGHT,baos.toByteArray()));

縦横比を維持するには、ユーザーが行の高さまたは列の幅を変更してもサイズが変更されないように WritableImage を設定する必要があります。以下のいずれかでこれを行います (画像アンカーをロックするか、サイズ変更で移動するかによって好みが異なります)。

WritableImage.MOVE_WITH_CELLS;
WritableImage.NO_MOVE_OR_SIZE_WITH_CELLS;
于 2011-11-15T20:06:17.420 に答える