Создать организационную диаграмму csharp.png C#

Организационная схема используется для изображения структуры бизнеса, правительства или организации. Они могут быть отклонены по разным причинам, таким как разработка политики или планирование. Вы можете создавать различные типы организационных диаграмм, создавая различные формы и соединители. В этой статье рассказывается, как создать организационную диаграмму на C#.

Организационная структура Maker — установка C# API

Aspose.Diagram for .NET API можно использовать для создания различных схем и диаграмм Visio. Вы можете легко настроить API, загрузив его справочный файл со страницы Новые выпуски или используя следующую команду установки NuGet:

PM> Install-Package Aspose.Diagram

Создайте организационную диаграмму в стиле CompactTree на С#

Вы можете создать организационную диаграмму в стиле CompactTree, выполнив следующие действия:

  1. Загружайте образцы из любой существующей диаграммы, трафарета или шаблона.
  2. Определите значения для построения иерархии.
  3. Добавьте фигуры и соединения между узлами.
  4. Сохраните выходную диаграмму.

Фрагмент кода ниже объясняет, как создать организационную диаграмму на C#:

// Загружайте образцы из любой существующей диаграммы, трафарета или шаблона
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;
// Определите значения для построения иерархии
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" });
// Определите Hashtable для сопоставления имени строки с длинным идентификатором формы.
Hashtable shapeIdMap = new Hashtable();
// Создать новую диаграмму
Diagram diagram = new Diagram(visioStencil);
diagram.Pages[pageNumber].PageSheet.PageProps.PageWidth.Value = 11;
foreach (string orgnode in listPos)
{
    // Добавьте новую форму прямоугольника
    long rectangleId = diagram.AddShape(pinX++, pinY++, width, height, rectangleMaster, pageNumber);
    // Установите свойства новой фигуры
    Shape shape = diagram.Pages[pageNumber].Shapes.GetShape(rectangleId);
    shape.Text.Value.Add(new Txt(orgnode));
    shape.Name = orgnode;
    shapeIdMap.Add(orgnode, rectangleId);
}
// Создание соединений между узлами
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);
    }
}

//автоматическая компоновка диаграммы CompactTree
LayoutOptions compactTreeOptions = new LayoutOptions
{
    LayoutStyle = LayoutStyle.CompactTree,
    Direction = LayoutDirection.DownThenRight,
    EnlargePage = false
};

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

// Сохранить диаграмму
diagram.Save("CompactTreeChart_out.vsdx", SaveFileFormat.VSDX);

На следующем снимке экрана показана выходная организационная диаграмма, созданная с помощью приведенного выше фрагмента кода:

Создать организационную диаграмму C#

Создайте организационную диаграмму в стиле блок-схемы на С#

Возможно, вам потребуется создать различные виды организационных диаграмм, которые могут следовать разным шаблонам. Здесь вы узнаете, как программно создать организационную диаграмму в стиле блок-схемы на C#:

  1. Загружайте образцы из любой существующей диаграммы, трафарета или шаблона.
  2. Добавьте организационные узлы и соединители.
  3. Установите макет и сохраните выходную диаграмму.

В следующем примере кода показано, как создать организационную диаграмму в стиле блок-схемы на C#:

// Загружайте образцы из любой существующей диаграммы, трафарета или шаблона
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;
// Определите значения для построения иерархии
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" });
// Определите Hashtable для сопоставления имени строки с длинным идентификатором формы.
Hashtable shapeIdMap = new Hashtable();
// Создать новую диаграмму
Diagram diagram = new Diagram(visioStencil);
foreach (string orgnode in listPos)
{
    // Добавьте новую форму прямоугольника
    long rectangleId = diagram.AddShape(pinX++, pinY++, width, height, rectangleMaster, pageNumber);
    // Установите свойства новой фигуры
    Shape shape = diagram.Pages[pageNumber].Shapes.GetShape(rectangleId);
    shape.Text.Value.Add(new Txt(orgnode));
    shape.Name = orgnode;
    shapeIdMap.Add(orgnode, rectangleId);
}
// Создание соединений между узлами
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);
    }
}

//блок-схема автоматического макета
LayoutOptions flowChartOptions = new LayoutOptions
{
    LayoutStyle = LayoutStyle.FlowChart,
    Direction = LayoutDirection.TopToBottom,
    EnlargePage = true
};

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

// Сохранить диаграмму
diagram.Save("FlowChart_out.vsdx", SaveFileFormat.VSDX);

Получить бесплатную временную лицензию

Вы можете запросить бесплатную временную лицензию для полной оценки API.

Вывод

В этой статье вы поняли, как программно создать организационную диаграмму на C#. Вы можете создать диаграмму из трафарета и создать диаграмму в стиле CompactTree или Flowchart в соответствии с вашими требованиями. Кроме того, вы можете посетить раздел документация, чтобы ознакомиться с другими функциями, описанными в различных главах и разделах. В случае возникновения каких-либо вопросов, пожалуйста, не стесняйтесь обращаться к нам через форум.

Смотрите также

Преобразование VSDM в PDF на C#