使用Apache POI在Excel中调整图像高度以适应行高

5
也许这是一个愚蠢的问题,但我找不到解决方法。如何根据图片高度设置行高?以下是我的一部分代码:
int pictureIdx = workBook.addPicture(bytes, Workbook.PICTURE_TYPE_JPEG);
CreationHelper helper = workBook.getCreationHelper();
Drawing drawing = sheet.createDrawingPatriarch();
ClientAnchor anchor = helper.createClientAnchor();
anchor.setCol1(0);
anchor.setRow1(i);
anchor.setAnchorType(ClientAnchor.MOVE_AND_RESIZE);
HSSFPicture pict = (HSSFPicture) drawing.createPicture(anchor, pictureIdx);
Dimension size = pict.getImageDimension();
double scaledWidth = size.getWidth();
double procentage = (1070.0d * 100d) / scaledWidth;
double autosize = procentage / 100.0d;
pict.resize(autosize);
short h = (short) (pict.getImageDimension().getWidth());
row.setHeight(h);

在 Excel 中,我的图片高度比行高要大得多。

1个回答

3

虽然一年后你可能不再需要这个问题的解答,但愿意分享一下。你将图片的宽度赋值为行高。

short h = (short) (pict.getImageDimension().getWidth());

同时,setHeight使用的是twip作为单位,即点的1/20。因此,您仍然需要将h值乘以一个大于20的系数才能进入像素范围。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接