Daten in nicht primitiver Form

Zugreifen auf Daten nicht-primitiver Form

Manchmal müssen Sie auf Daten aus einem Shape zugreifen, das nicht integriert ist. Eingebaute Formen werden primitive Formen genannt; diejenigen, die es nicht sind, werden als nicht-primitiv bezeichnet. Beispielsweise können Sie Ihre eigenen Formen definieren, indem Sie verschiedene Kurven verbundene Linien verwenden.

Eine nicht primitive Form

In Aspose.Cells wird nicht primitiven Formen der Typ zugewiesenAutoShapeType.NOT_PRIMITIVE . Sie können ihren Typ mit überprüfenShape.getAutoShapeType()Methode.

Greifen Sie mit dem auf die Formdaten zuShape.getPaths()Methode. Es gibt alle verbundenen Pfade zurück, die die nicht primitive Form umfassen. Diese Pfade sind vom Typ ShapePath, der eine Liste aller Segmente enthält, die wiederum die Punkte in jedem Segment enthalten.

Das folgende Code-Snippet demonstriert die Verwendung vonShape.getPaths()Methode zum Zugreifen auf Pfadinformationen von nicht-primitiver Form.

Zeigt ein Beispiel einer nicht primitiven Form

todo: Bild_alt_Text

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java
// The path to the resource directory
String dataDir = Utils.getSharedDataDir(NonPrimitiveShape.class) + "DrawingObjects/";
Workbook workbook = new Workbook(dataDir + "NonPrimitiveShape.xlsx");
Worksheet worksheet = workbook.getWorksheets().get(0);
// Accessing the user defined shape
Shape shape = worksheet.getShapes().get(0);
if (shape.getAutoShapeType() == AutoShapeType.NOT_PRIMITIVE) {
// Access Shape paths
ShapePathCollection shapePathCollection = shape.getPaths();
// Access information of individual shape path
ShapePath shapePath = shapePathCollection.get(0);
// Access shape segment path list
ShapeSegmentPathCollection shapeSegmentPathCollection = shapePath.getPathSegementList();
// Access individual segment path
ShapeSegmentPath shapeSegmentPath = shapeSegmentPathCollection.get(0);
ShapePathPointCollection segmentPoints = shapeSegmentPath.getPoints();
for (Object obj : segmentPoints) {
ShapePathPoint pathPoint = (ShapePathPoint) obj;
System.out.println("X: " + pathPoint.getX() + ", Y: " + pathPoint.getY());
}
}