public static ShapeGroup createShapeGroup(EscherContainerRecord spContainer, Shape parent){ ShapeGroup group = null; EscherRecord opt = Shape.getEscherChild((EscherContainerRecord)spContainer.getChild(0), (short)0xF122); if(opt != null){ try { EscherPropertyFactory f = new EscherPropertyFactory(); List props = f.createProperties( opt.serialize(), 8, opt.getInstance() ); EscherSimpleProperty p = (EscherSimpleProperty)props.get(0); if(p.getPropertyNumber() == 0x39F && p.getPropertyValue() == 1){ group = new Table(spContainer, parent); } else { group = new ShapeGroup(spContainer, parent); } } catch (Exception e){ logger.log(POILogger.WARN, e.getMessage()); group = new ShapeGroup(spContainer, parent); } } else { group = new ShapeGroup(spContainer, parent); } return group; }