从Excel xls HSSF获取Apache POI中的图片位置

我的需要是获得一个图片数据为字节,然后它是锚点的细节,并最终在屏幕上显示目标位置和大小的结果为我的用户…

API显示我们可以通过工作簿对象获得所有图片的列表,如下所示:

List<HSSFPictureData> picturesData = workbook.getAllPictures(); 

而且我们也可以获取所有锚点的详细信息(请参阅HSSFClientAnchor详细信息)。

问题是由锚引用的HSSFPicture.getPictureIndex()与上面的getAllPictures()方法的HSSFPictureData集合索引不匹配。

…现在的问题是:如何将HSSFClientAnchor实例映射到特定的HSSFPictureData实例或相反?

 List<HSSFShape> shapes = this.tSheet.sheet().getDrawingPatriarch().getChildren(); for (int i = 0; i < shapes.size(); i++) { if(shapes.get(i) instanceof HSSFPicture) { HSSFPicture pic = (HSSFPicture) shapes.get(i); HSSFPictureData picdata = this.tSheet.sheet().getWorkbook().getAllPictures().get(pic.getPictureIndex()); int pictureIndex = this.newSheet.getWorkbook().addPicture( picdata.getData(), picdata.getFormat()); this.newSheet.createDrawingPatriarch().createPicture((HSSFClientAnchor)pic.getAnchor()r, pictureIndex); } } 

注意:上面的代码将从一张纸图片数据读取到另一张纸this.tSheet.sheet()是来源表this.newSheet是新的工作表