Créer un organigramme csharp.png C#

Un Organigramme est utilisé pour décrire la structure d’une entreprise, d’un gouvernement ou d’une organisation. Ils peuvent être rejetés pour différentes raisons, comme l’élaboration d’une politique ou à des fins de planification. Vous pouvez créer différents types d’organigrammes en créant différentes formes et connecteurs. Cet article explique comment créer un organigramme en C#.

Création d’organigrammes - Installation de l’API C#

L’API Aspose.Diagram pour .NET peut être utilisée pour créer différents diagrammes et graphiques Visio. Vous pouvez facilement configurer l’API en téléchargeant son fichier de référence depuis la page New Releases ou en utilisant la commande d’installation NuGet suivante :

PM> Install-Package Aspose.Diagram

Créer un organigramme dans le style CompactTree en C

Vous pouvez créer un organigramme dans le style CompactTree en suivant les étapes ci-dessous :

  1. Chargez des modèles à partir de n’importe quel diagramme, gabarit ou modèle existant.
  2. Définissez des valeurs pour construire la hiérarchie.
  3. Ajoutez des formes et des connexions entre les nœuds.
  4. Enregistrez le diagramme de sortie.

L’extrait de code ci-dessous explique comment créer un organigramme en C# :

// Charger des maîtres à partir de n'importe quel diagramme, gabarit ou modèle existant
string visioStencil = "Basic Shapes.vss";
const string rectangleMaster = "Rectangle";
const string connectorMaster = "Dynamic connector";
const int pageNumber = 0;
const double width = 1;
const double height = 1;
double pinX = 4.25;
double pinY = 9.5;
// Définir des valeurs pour construire la hiérarchie
List<string> listPos = new List<string>(new string[] { "0", "0:0", "0:1", "0:2", "0:3", "0:4", "0:5", "0:6", "0:0:0", "0:0:1", "0:3:0", "0:3:1", "0:3:2", "0:6:0", "0:6:1" });
// Définissez une table de hachage pour mapper le nom de la chaîne à un identifiant de forme longue
Hashtable shapeIdMap = new Hashtable();
// Créer un nouveau diagramme
Diagram diagram = new Diagram(visioStencil);
diagram.Pages[pageNumber].PageSheet.PageProps.PageWidth.Value = 11;
foreach (string orgnode in listPos)
{
    // Ajouter une nouvelle forme de rectangle
    long rectangleId = diagram.AddShape(pinX++, pinY++, width, height, rectangleMaster, pageNumber);
    // Définir les propriétés de la nouvelle forme
    Shape shape = diagram.Pages[pageNumber].Shapes.GetShape(rectangleId);
    shape.Text.Value.Add(new Txt(orgnode));
    shape.Name = orgnode;
    shapeIdMap.Add(orgnode, rectangleId);
}
// Créer des connexions entre les nœuds
foreach (string orgName in listPos)
{
    int lastColon = orgName.LastIndexOf(':');
    if(lastColon > 0)
    {
        string parendName = orgName.Substring(0, lastColon);
        long shapeId = (long)shapeIdMap[orgName];
        long parentId = (long)shapeIdMap[parendName];
        Shape connector1 = new Shape();
        long connecter1Id = diagram.AddShape(connector1, connectorMaster, pageNumber);
        diagram.Pages[pageNumber].ConnectShapesViaConnector(parentId, ConnectionPointPlace.Right,
            shapeId, ConnectionPointPlace.Left, connecter1Id);
    }
}

//mise en page automatique du graphique CompactTree
LayoutOptions compactTreeOptions = new LayoutOptions
{
    LayoutStyle = LayoutStyle.CompactTree,
    Direction = LayoutDirection.DownThenRight,
    EnlargePage = false
};

diagram.Pages[pageNumber].Layout(compactTreeOptions);

// Enregistrer le diagramme
diagram.Save("CompactTreeChart_out.vsdx", SaveFileFormat.VSDX);

La capture d’écran suivante montre l’organigramme de sortie généré avec l’extrait de code ci-dessus :

Créer un organigramme C#

Créer un organigramme dans un style d’organigramme en C#

Vous devrez peut-être créer différents types d’organigrammes qui peuvent suivre différents modèles. Ici, vous apprendrez à créer un organigramme dans le style Flowchart par programmation en C# :

  1. Chargez des modèles à partir de n’importe quel diagramme, gabarit ou modèle existant.
  2. Ajoutez des nœuds d’organisation et des connecteurs.
  3. Définissez la mise en page et enregistrez le diagramme de sortie.

L’exemple de code suivant montre comment créer un organigramme de style organigramme en C# :

// Charger des maîtres à partir de n'importe quel diagramme, gabarit ou modèle existant
string visioStencil = "Basic Shapes.vss";
const string rectangleMaster = "Rectangle";
const string connectorMaster = "Dynamic connector";
const int pageNumber = 0;
const double width = 1;
const double height = 1;
double pinX = 4.25;
double pinY = 9.5;
// Définir des valeurs pour construire la hiérarchie
List<string> listPos = new List<string>(new string[] { "0", "0:0", "0:1", "0:2", "0:3", "0:4", "0:5", "0:6", "0:0:0", "0:0:1", "0:3:0", "0:3:1", "0:3:2", "0:6:0", "0:6:1" });
// Définissez une table de hachage pour mapper le nom de la chaîne à un identifiant de forme longue
Hashtable shapeIdMap = new Hashtable();
// Créer un nouveau diagramme
Diagram diagram = new Diagram(visioStencil);
foreach (string orgnode in listPos)
{
    // Ajouter une nouvelle forme de rectangle
    long rectangleId = diagram.AddShape(pinX++, pinY++, width, height, rectangleMaster, pageNumber);
    // Définir les propriétés de la nouvelle forme
    Shape shape = diagram.Pages[pageNumber].Shapes.GetShape(rectangleId);
    shape.Text.Value.Add(new Txt(orgnode));
    shape.Name = orgnode;
    shapeIdMap.Add(orgnode, rectangleId);
}
// Créer des connexions entre les nœuds
foreach (string orgName in listPos)
{
    int lastColon = orgName.LastIndexOf(':');
    if(lastColon > 0)
    {
        string parendName = orgName.Substring(0, lastColon);
        long shapeId = (long)shapeIdMap[orgName];
        long parentId = (long)shapeIdMap[parendName];
        Shape connector1 = new Shape();
        long connecter1Id = diagram.AddShape(connector1, connectorMaster, pageNumber);
        diagram.Pages[pageNumber].ConnectShapesViaConnector(parentId, ConnectionPointPlace.Right,
            shapeId, ConnectionPointPlace.Left, connecter1Id);
    }
}

//organigramme de mise en page automatique
LayoutOptions flowChartOptions = new LayoutOptions
{
    LayoutStyle = LayoutStyle.FlowChart,
    Direction = LayoutDirection.TopToBottom,
    EnlargePage = true
};

diagram.Pages[pageNumber].Layout(flowChartOptions);

// Enregistrer le diagramme
diagram.Save("FlowChart_out.vsdx", SaveFileFormat.VSDX);

Obtenez une licence temporaire gratuite

Vous pouvez demander une licence temporaire gratuite pour évaluer l’API dans toute sa capacité.

Conclusion

Dans cet article, vous avez compris comment créer un organigramme par programmation en C#. Vous pouvez créer un diagramme à partir d’un gabarit et créer un graphique de style CompactTree ou Flowchart en fonction de vos besoins. De plus, vous pouvez visiter la section documentation pour consulter d’autres fonctionnalités couvertes par différents chapitres et sections. En cas de questions, n’hésitez pas à nous contacter via le forum.

Voir également

Convertir VSDM en PDF en C#