Get an image and its position from excel file using Apache POI

Viewed 15720

Is it possible to extract an image's information from an xls spreadsheet using Apache POI?

In one of my projects, I need to read some images from a .xls file. I can read all images together, but how can I get images position (like columns and rows number or coordinates)? Otherwise I can get images position but I can't know information, like picture name or extension or others, about a specific image at the positions found. How I can get images and positions too?

Here read all images... and here get images positions...

3 Answers

I hope this code will help)

    XSSFDrawing dp = workbook.getSheetAt(1).createDrawingPatriarch();
    List<XSSFShape> pics = dp.getShapes();
    XSSFPicture inpPic = (XSSFPicture)pics.get(0);

    XSSFClientAnchor clientAnchor = inpPic.getClientAnchor();
    inpPic.getShapeName(); // узнаю название картинки
    PictureData pict = inpPic.getPictureData();
    FileOutputStream out = new FileOutputStream("pict.jpg");
    byte[] data = pict.getData();
    out.write(data);
    out.close();
    System.out.println("col1: " + clientAnchor.getCol1() + ", col2: " + clientAnchor.getCol2() + ", row1: " + clientAnchor.getRow1() + ", row2: " + clientAnchor.getRow2());
    System.out.println("x1: " + clientAnchor.getDx1() + ", x2: " + clientAnchor.getDx2() +  ", y1: " + clientAnchor.getDy1() +  ", y2: " + clientAnchor.getDy2());
Related