//스트림으로 이미지 가져오기
InputStream is = new URL(imgUrl).openStream();
byte[] bytes = IOUtils.toByteArray(is);
int pictureIdx = wb.addPicture(bytes, Workbook.PICTURE_TYPE_PNG);
is.close();
XSSFCreationHelper helper = wb.getCreationHelper();
XSSFDrawing drawing = sheet.createDrawingPatriarch();
//이미지에 대한 크기와 위치 설정하는 앵커
XSSFClientAnchor anchor = helper.createClientAnchor();
anchor.setDx1(width);
anchor.setDx2(0);
anchor.setDy1(0);
anchor.setDy2(0);
anchor.setRow1(rownum1);
anchor.setCol1(colnum1);
//이미지 삽입
XSSFPicture pic = drawing.createPicture(anchor, pictureIdx);
//셀 크기에 고정하지 않고 배율에 따라 크기 재설정.
pic.resize(magnification);
resize()에 들어갈 인자값은 double로 들어간다.
배율에 따라 크기를 조절하고 anchor에서 너비를 지정해 이미지 크기를 조절 할 수 있다.
resize()를 하지 않게 되면 anchor에서 지정한 셀의 크기에 맞도록 이미지가 들어가게 설정할 수 있다.
setRow1(), setCol1()은 왼쪽상단의 이미지가 시작하는 셀, setRow2(), setCol2()는 오른쪽 하단의 이미지가 끝나는 셀을 의미한다.
참고:
https://poi.apache.org/components/spreadsheet/quick-guide.html#Images