Размер изображения отличается от листа к листу в XSSFWorkbook

Я пытаюсь вставить логотип в каждый лист Excel, ниже приведен фрагмент кода:

int numberOfSheets = wb.getNumberOfSheets();
for(int i=0;i<numberOfSheets;i++)
{
    XSSFSheet sheet = wb.getSheetAt(i);

    try {
        //insert a logoS
        String location = "/src/main/resources/logo/logo.jpg";
        InputStream is = new FileInputStream(location);
        byte[] bytes = IOUtils.toByteArray(is);
        int pictureIdx = wb.addPicture(bytes, Workbook.PICTURE_TYPE_JPEG);
        is.close();

        CreationHelper creationHelper = wb.getCreationHelper();
        Drawing drawing = sheet.createDrawingPatriarch();

        ClientAnchor anchor = creationHelper.createClientAnchor();
        anchor.setCol1(0);
        anchor.setRow1(0);
        Picture pict = drawing.createPicture(anchor, pictureIdx);
        pict.resize(3.0,3.0);
    } catch (FileNotFoundException e) {
        log.info("Problem in reading logo.jpg");
    } catch (IOException io) {
        log.info("Problem in reading logo.jpg");
    }
}

Но в результате он добавляет изображение на каждый лист. У меня есть 2 листа в Excel, но проблема в том, что когда я нажимаю на 2-й лист, изображение немного растягивается. Я изменил его размер явно, если я не укажу какое-либо число для изменения размера, тогда коэффициент растяжения измерим.

Что я могу получить от XSSFPicture Документ

public void resize(double scaleX,double scaleY)

Измените размер изображения относительно его текущего размера. Обратите внимание, что этот метод корректно работает только для книг с размером шрифта по умолчанию (Calibri 11pt для .xlsx). Если шрифт по умолчанию изменен, изображение с измененным размером может быть растянуто по вертикали или по горизонтали.

Таким образом, мои настройки также установлены по умолчанию, как указано выше в


person tyro    schedule 27.06.2017    source источник


Ответы (1)


Установив размер столбца по умолчанию, я решил проблему, я установил размер столбца, для которого функция изменения размера не работает, но если мы создадим электронную таблицу по умолчанию вместе с размерами столбцов и строк, тогда не будет никаких проблем.

person tyro    schedule 28.06.2017