Apache POI отключить автоматическое изменение размера изображения - PullRequest
0 голосов
/ 08 ноября 2019

Я использую Apache POI, чтобы поместить изображение в лист Excel. Когда я открываю файл в Excel и вручную изменяю размер ячейки, содержащей изображение, размер изображения также изменяется.

Как вставить изображение в ячейку, размер которой не изменяется в зависимости от размера ячейки?

Мой код:

private void addImageToExcelReport(InputStream is, OutputStream os, File image) {
    try (BufferedReader br = new BufferedReader(new FileReader(image))) {
        if (br.readLine() != null) {
            XSSFWorkbook wb = new XSSFWorkbook(is);
            XSSFSheet sheet = wb.getSheetAt(0);

            InputStream inputStream = new FileInputStream(image);
            byte[] bytes = IOUtils.toByteArray(inputStream);

            int pictureIdx = wb.addPicture(bytes, Workbook.PICTURE_TYPE_PNG);
            inputStream.close();

            CreationHelper helper = wb.getCreationHelper();
            Drawing drawing = sheet.createDrawingPatriarch();
            ClientAnchor anchor = helper.createClientAnchor();
            sheet.createRow(1).createCell(0);

            anchor.setRow1(0);
            anchor.setRow2(1);
            anchor.setCol1(0);
            anchor.setCol2(1);

            drawing.createPicture(anchor, pictureIdx);

            wb.write(os);
            wb.close();
        }
    } catch (IOException e) {
        loggerService.traceError(e.getMessage(), e);
    }
}
...