Daten in nicht primitiver Form
Zugriff auf Daten nicht-primitiver Form
Manchmal müssen Sie auf Daten aus einer Form zugreifen, die nicht eingebaut ist. Eingebaute Formen werden primitive Formen genannt; solche, die es nicht sind, werden nicht-primitive genannt. Sie können beispielsweise eigene Formen mit verschiedenen verbundenen Kurvenlinien definieren.
Eine nicht-primitive Form
In Aspose.Cells werden nicht-primitive Formen dem Typ AutoShapeType.NOT_PRIMITIVE zugewiesen. Sie können ihren Typ mit der Methode Shape.getAutoShapeType() überprüfen.
Greifen Sie mit der Methode Shape.getPaths() auf die Formdaten zu. Sie gibt alle verbundenen Pfade zurück, die die nicht-primitive Form bilden. Diese Pfade sind vom Typ ShapePath, der eine Liste aller Segmente enthält, die wiederum die Punkte in jedem Segment enthalten.
Der folgende Codeausschnitt zeigt die Verwendung der Methode Shape.getPaths() zur Zugriff auf Pfadinformationen einer nicht-primitiven Form.
Zeigt ein Beispiel für eine nicht-primitive Form
// 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()); | |
} | |
} |