The summary says it all ... The shape name needs to be retrieved by: EscherComplexProperty ep = HSLFShape.getEscherProperty(shape.getEscherOptRecord(), EscherProperties.GROUPSHAPE__SHAPENAME); String name; if (ep != null) { name = StringUtil.getFromUnicodeLE(ep.getComplexData()); } else { name = shape.getShapeName()+shape.getShapeId(); } See also https://stackoverflow.com/questions/45855232 I'll apply the changes when POI 3.17 is out.
Applied via r1829656