Изображение Apache Poi не помещается в ячейку, выходя за границы столбца, как если бы изображение имело само поле или что-то справа и сверху - PullRequest
0 голосов
/ 01 июля 2019

Я обнаружил странную ошибку или что-то при вставке изображения в лист Excel, созданный с помощью Apache-poi.Проблема в том, что изображение не подходит к ячейке, так как оно должно быть

Ниже приведен код, который у меня есть.Я перепробовал все (почти), но безуспешно.

public XlsxBuilder setImage(byte[] image, int type){




    int pictureIdx = workbook.addPicture(image, type);
    CreationHelper helper = workbook.getCreationHelper();

    //create sheet
    // Create the drawing patriarch.  This is the top level container for all shapes.
    Drawing drawing = sheet.createDrawingPatriarch();
    //add a picture shape
    ClientAnchor anchor = helper.createClientAnchor();


    Cell cell = row.createCell(nextColumnIdx);

    //set top-left corner of the picture,
    //subsequent call of Picture#resize() will operate relative to it
    anchor.setCol1(nextColumnIdx); //Column B
    anchor.setRow1(nextRowIdx - 1); //Row 3
    anchor.setCol2(nextColumnIdx+1); //Column C
    anchor.setRow2(nextRowIdx); //Row 4

    //set width to n character widths = count characters * 256
    int widthUnits = 20*256;
    sheet.setColumnWidth(nextColumnIdx, widthUnits);

    //set height to n points in twips = n * 20
    short heightUnits = 100*20;
    cell.getRow().setHeight(heightUnits);

    Picture pict = drawing.createPicture(anchor, pictureIdx);
    //auto-size picture relative to its top-left corner
    nextColumnIdx = nextColumnIdx + 1;
    return this;
}

As you have noticed, Image went too far from its expected position

...