Как добавить изображения в HSSFCell в Apache POI?

Как добавить изображение в другой объект HSSFCell в poi?

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

ценю твою помощь...

Мой код

while(rs.next()){

    HSSFCell cell = getHSSFCell(sheet, rowNo, cellNo);

    cell.setCellValue(new HSSFRichTextString(rs.getString("TEST_STEP_DETAILS")) );
    cell.setCellStyle(style);

    String annotate = rs.getString("ANNOTATE");

    if(annotate != null){                       
        int index = getPicIndex(wb);
        HSSFPatriarch patriarch=sheet.createDrawingPatriarch();
        HSSFClientAnchor anchor = new HSSFClientAnchor(400,10,655,200,(short)cellNo,(rowNo+1),(short)cellNo,(rowNo+1));
        anchor.setAnchorType(1);
        patriarch.createPicture(anchor, index);                                         
    }
    cellNo++;
}

getPicIndex МЕТОД:-

public static int getPicIndex(HSSFWorkbook wb){
    int index = -1;
    try {
        byte[] picData = null;
        File pic = new File( "C:\\pdf\\logo.jpg" );
        long length = pic.length(  );
        picData = new byte[ ( int ) length ];
        FileInputStream picIn = new FileInputStream( pic );
        picIn.read( picData );
        index = wb.addPicture( picData, HSSFWorkbook.PICTURE_TYPE_JPEG );
    } catch (IOException e) {
        e.printStackTrace();
    }  catch (Exception e) {
        e.printStackTrace();
    } 
    return index;
}

1 ответ

Решение

Я надеюсь, что вы нашли решение самостоятельно. если не:
проблема в том, что вы создаете для каждого изображения нового пристрастия. HSSFPatriarch patriarch = sheet.createDrawingPatriarch();
Вы должны создать только один экземпляр патриарха и использовать его метод createPicture для всех изображений.

Другие вопросы по тегам