Dodaję obraz do komórki za pomocą Apache POI-HSSF. Obraz ma wymiary 120 x 100, ale bez względu na to, co robię i jak go zmieniam, arkusz kalkulacyjny programu Excel zawsze pokazuje, że obejmuje on wiele wierszy i zniekształca go na znacznie większą wysokość niż szerokość.Apache POI-HSSF zniekształca rozmiar obrazu podczas dodawania obrazu do komórki Excel
Jak zachować oryginalny rozmiar?
Mój kod:
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();
Próbowałem wszystkie dx/dy współrzędnych i Col/wiersza. Pozycja nie ma znaczenia, problem rozciąga obraz w poziomie. Dzięki
Odkryłem, że dzieje się tak, gdy ustawię Wysokość rzędu za pomocą row.setHeight(). Jeśli tego nie zrobię, obraz będzie w porządku. Bez względu na to, jak duża jest wysokość, obraz jest nadal rozciągnięty w pionie. –