Créer un organigramme en C# .NET

Les organigrammes sont créés ou conçus pour représenter différents flux de travail. Dans certaines situations, vous devrez peut-être créer des organigrammes pour gérer différentes situations. Cet article explique comment créer un diagramme d’organigramme par programme en C#.

Installer la bibliothèque d’organigrammes C# pour créer un diagramme d’organigramme

Vous pouvez créer des diagrammes d’organigramme à l’aide de l’API Aspose.Diagram for .NET. Il prend en charge la création ou la modification de fichiers Visio au format VSD, VSDX et autres formats pris en charge. Vous pouvez facilement installer l’API en téléchargeant le fichier DLL à partir de la section New Releases ou en utilisant le NuGet Package Manager avec la commande d’installation suivante :

PM> Install-Package Aspose.Diagram

Créer un organigramme par programmation en C#

Vous pouvez créer un organigramme de différents processus selon vos besoins. Veuillez suivre les étapes ci-dessous pour créer des organigrammes :

  1. Tout d’abord, créez le schéma pour créer le diagramme.
  2. Chargez le maître pour ajouter des formes à l’aide de la classe Diagram.
  3. Ajout de formes et de connecteurs à partir du schéma.
  4. Définissez la disposition du diagramme d’organigramme.
  5. Enfin, écrivez le fichier de sortie avec l’organigramme au format VSDX en utilisant la méthode Save.

L’extrait de code C# suivant explique comment créer ou créer un diagramme d’organigramme par programmation :

class Program
{
    static void Main(string[] args)
    {
        // schéma du diagramme à créer
        Input diagramObject = new Input()
        {
            InputRectangles = new List<InputRectangle>() {
                    new InputRectangle() {
                        Name = "A",
                        Text = "Manager"
                    },
                    new InputRectangle() {
                        Name = "B",
                        Text = "Team Leader"
                    },
                    new InputRectangle() {
                        Name = "C",
                        Text = "Team Member"
                    },
                    new InputRectangle() {
                        Name = "D",
                        Text = "Team Member"
                    },
                    new InputRectangle() {
                        Name = "E",
                        Text = "Team Member"
                    }
                },
            InputConnectors = new List<InputConnector>() {
                    new InputConnector() {
                        OriginShapeName = "A",
                        DestinationShapeName = "B"
                    },
                    new InputConnector() {
                        OriginShapeName = "B",
                        DestinationShapeName = "C"
                    },
                    new InputConnector() {
                        OriginShapeName = "B",
                        DestinationShapeName = "D"
                    },
                    new InputConnector() {
                        OriginShapeName = "B",
                        DestinationShapeName = "E"
                    }
                }
        };

        Diagram diagram = new Diagram("BasicShapes.vss");
        Page page = diagram.Pages[0];

        Dictionary<string, long> shapeNames = new Dictionary<string, long>();

        //Ajout de formes et de connecteurs à partir du schéma
        foreach (var rectangle in diagramObject.InputRectangles)
        {
            Shape shape = new Shape();
            var shapeId = diagram.AddShape(shape, @"Rectangle", 0);
            shapeNames.Add(rectangle.Name, shapeId);
            shape = page.Shapes.GetShape(shapeId);
            shape.Text.Value.Add(new Txt(rectangle.Text));
        }


        foreach (var connector in diagramObject.InputConnectors)
        {
            var connectorId = diagram.AddShape(new Shape(), "Dynamic connector", 0);
            page.ConnectShapesViaConnector(shapeNames[connector.OriginShapeName],
                                            ConnectionPointPlace.Right,
                                            shapeNames[connector.DestinationShapeName],
                                            ConnectionPointPlace.Left,
                                            connectorId);
        }


        LayoutOptions layoutOptions = new LayoutOptions()
        {
            LayoutStyle = LayoutStyle.FlowChart,
            Direction = LayoutDirection.LeftToRight,
            SpaceShapes = 5,
            EnlargePage = true
        };

        diagram.Layout(layoutOptions);

        page.PageSheet.PrintProps.PrintPageOrientation.Value = PrintPageOrientationValue.Landscape;

        DiagramSaveOptions saveOptions = new DiagramSaveOptions()
        {
            SaveFormat = SaveFileFormat.Vsdx,
            AutoFitPageToDrawingContent = true
        };

        diagram.Save("output.vsdx", saveOptions);
    }
}

public class Input
{
    public System.Collections.Generic.List<InputRectangle> InputRectangles { get; set; }
    public System.Collections.Generic.List<InputConnector> InputConnectors { get; set; }
}

public class InputRectangle
{
    public string Name { get; set; }
    public string Text { get; set; }
}

public class InputConnector
{
    public string OriginShapeName { get; set; }
    public string DestinationShapeName { get; set; }
}

Télécharger un exemple de projet avec du code C# pour créer un organigramme

Vous pouvez télécharger le exemple de projet avec les fichiers d’entrée et de sortie.

Exemple d’aperçu de sortie pour le générateur d’organigrammes C#

Créer un organigramme en C#

Obtenez une licence API gratuite

Vous pouvez évaluer toutes les fonctionnalités de l’API sans aucune limitation en demandant une licence temporaire gratuite.

Conclusion

Dans cet article, vous avez appris à créer ou à créer des organigrammes par programmation à l’aide de C#. Vous pouvez concevoir différentes formes comme la décision, le processus, ainsi que différentes dispositions comme de gauche à droite ou de droite à gauche, etc. De plus, vous pouvez visiter l’API documentation pour en savoir plus sur les fonctionnalités de l’API. N’hésitez pas à nous contacter sur le forum.

Voir également