说明Excel中的图片不在单元格内,而是悬浮在单元格之前,采用如下方式读取,但要求图片必须放在某个单元格之内也不能压住边框,否则获取的行数会有重复的。
public
static
Map<String, HSSFPictureData> getPictures (HSSFSheet sheet)
throws
IOException {
Map<String, HSSFPictureData> map =
new
HashMap<String, HSSFPictureData>();
List<HSSFShape> list = sheet.getDrawingPatriarch().getChildren();
for
(HSSFShape shape : list) {
if
(shape
instanceof
HSSFPicture) {
HSSFPicture picture = (HSSFPicture) shape;
HSSFClientAnchor cAnchor = picture.getClientAnchor();
HSSFPictureData pdata = picture.getPictureData();
String key = cAnchor.getRow1() +
"-"
+ cAnchor.getCol1();
// 行号-列号
map.put(key, pdata);
}
}
return
map;
}