Aggiungo un'immagine in una cella utilizzando Apache POI-HSSF. L'immagine è 120x100 ma non importa cosa faccio e come la ridimensiono, il foglio di calcolo Excel mostra sempre che si estende su più righe e lo distorce a un'altezza molto più grande della larghezza.Apache POI-HSSF distorce le dimensioni dell'immagine quando si aggiunge un'immagine nella cella di Excel
Come mantenere le dimensioni originali?
Il mio codice:
InputStream is = new FileInputStream(getImageURL());
byte[] bytes = IOUtils.toByteArray(is);
int pictureIdx = wb.addPicture(bytes, Workbook.PICTURE_TYPE_JPEG);
is.close();
//add a picture shape
CreationHelper helper = wb.getCreationHelper();
ClientAnchor anchor = helper.createClientAnchor();
// Create the drawing patriarch. This is the top level container for all shapes.
Drawing drawing = sheet1.createDrawingPatriarch();
//set top-left corner of the picture,
//subsequent call of Picture#resize() will operate relative to it
anchor.setAnchorType(0);
anchor.setCol1(1);
anchor.setRow1(1);
Picture pict = drawing.createPicture(anchor, pictureIdx);
//auto-size picture relative to its top-left corner
pict.resize();
Ho provato tutte le coordinate dx/dy e Col/file. La posizione non ha importanza, il problema si estende orizzontalmente l'immagine. Grazie
Ho scoperto che questo accade quando imposto l'altezza della riga usando row.setHeight(). Se non lo faccio, l'immagine va bene. Non importa quanto sia grande l'altezza, l'immagine è ancora allungata verticalmente. –