Données sous forme non primitive

Accès aux données de forme non primitive

Parfois, vous devez accéder aux données d’une forme qui n’est pas intégrée. Les formes intégrées sont appelées formes primitives ; ceux qui ne le sont pas sont appelés non primitifs. Par exemple, vous pouvez définir vos propres formes en utilisant différentes lignes connectées par des courbes.

Une forme non primitive

Dans Aspose.Cells, les formes non primitives sont affectées du typeAutoShapeType.NotPrimitiveAutoShapeType.NotPrimitive . Vous pouvez vérifier leur type à l’aide de laShape.AutoShapeTypela propriété.

Accédez aux données de forme à l’aide de laShape.Pathsla propriété. Il renvoie tous les chemins connectés qui composent la forme non primitive. Ces chemins sont du typeShapePathqui contient une liste de tous les segments qui à leur tour contiennent les points de chaque segment.

Montre un exemple de forme non primitive
tâche : image_autre_texte
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET
// The path to the documents directory.
string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
Workbook workbook = new Workbook(dataDir + "NonPrimitiveShape.xlsx");
Worksheet worksheet = workbook.Worksheets[0];
// Accessing the user defined shape
Shape shape = worksheet.Shapes[0];
if (shape.AutoShapeType == AutoShapeType.NotPrimitive)
{
// Access shape's data
ShapePathCollection shapePathCollection = shape.Paths;
// Access information of indvidual path
foreach (ShapePath shapePath in shapePathCollection)
{
// Access path segment list
ShapeSegmentPathCollection pathSegments = shapePath.PathSegementList;
// Access individual path segment
foreach (ShapeSegmentPath pathSegment in pathSegments)
{
// Gets the points in path segment
ShapePathPointCollection segmentPoints = pathSegment.Points;
foreach (ShapePathPoint pathPoint in segmentPoints)
{
Console.WriteLine("X: " + pathPoint.X + ", Y: " + pathPoint.Y);
}
}
}
}