создавать диаграммы в powerpoint ppt C#

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

C# API для создания диаграмм в PowerPoint

Aspose.Slides for .NET — это библиотека классов C#, позволяющая создавать презентации PowerPoint и управлять ими из приложений .NET. Кроме того, API позволяет легко создавать и добавлять диаграммы в презентации. Aspose.Slides для .NET можно загрузить как DLL или установить через NuGet.

PM> Install-Package Aspose.Slides

Создайте столбчатую диаграмму в PowerPoint PPT с помощью C#

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

  • Сначала создайте экземпляр класса Presentation.
  • Получить ссылку на слайд в объекте ISlide.
  • Добавьте диаграмму ClusteredColumn с данными по умолчанию и получите ссылку на нее в объекте IChart.
  • Задайте заголовок диаграммы с помощью метода IChart.ChartTitle.AddTextFrameForOverriding(String) и задайте его свойства.
  • Получите доступ к книге данных диаграммы в объект IChartDataWorkbook.
  • Удалите все ряды и категории по умолчанию из данных диаграммы с помощью методов IChart.ChartData.Series.Clear() и IChart.ChartData.Categories.Clear() соответственно.
  • Добавляйте новые серии и категории.
  • Получите доступ к каждой серии диаграмм в объекте IChartSeries и добавьте к нему точки данных.
  • Добавьте цвет заливки для серии диаграмм и установите метки.
  • Наконец, сохраните презентацию с помощью метода Presentation.Save(String, SaveFormat).

Для демонстрации в следующем примере кода показано, как создать столбчатую диаграмму в презентации PowerPoint с помощью C#.

// Создать экземпляр класса Presentation, который представляет файл PPTX.
Presentation pres = new Presentation();

// Доступ к первому слайду
ISlide sld = pres.Slides[0];

// Добавить диаграмму с данными по умолчанию
IChart chart = sld.Shapes.AddChart(ChartType.ClusteredColumn, 0, 0, 500, 500);

// Настройка заголовка диаграммы
chart.ChartTitle.AddTextFrameForOverriding("Sample Title");
chart.ChartTitle.TextFrameForOverriding.TextFrameFormat.CenterText = NullableBool.True;
chart.ChartTitle.Height = 20;
chart.HasTitle = true;

// Установите первую серию для отображения значений
chart.ChartData.Series[0].Labels.DefaultDataLabelFormat.ShowValue = true;

// Установка индекса листа данных диаграммы
int defaultWorksheetIndex = 0;

// Получение листа данных диаграммы
IChartDataWorkbook fact = chart.ChartData.ChartDataWorkbook;

// Удалить сгенерированные по умолчанию серии и категории
chart.ChartData.Series.Clear();
chart.ChartData.Categories.Clear();
int s = chart.ChartData.Series.Count;
s = chart.ChartData.Categories.Count;

// Добавление новой серии
chart.ChartData.Series.Add(fact.GetCell(defaultWorksheetIndex, 0, 1, "Series 1"), chart.Type);
chart.ChartData.Series.Add(fact.GetCell(defaultWorksheetIndex, 0, 2, "Series 2"), chart.Type);

// Добавление новых категорий
chart.ChartData.Categories.Add(fact.GetCell(defaultWorksheetIndex, 1, 0, "Caetegoty 1"));
chart.ChartData.Categories.Add(fact.GetCell(defaultWorksheetIndex, 2, 0, "Caetegoty 2"));
chart.ChartData.Categories.Add(fact.GetCell(defaultWorksheetIndex, 3, 0, "Caetegoty 3"));

// Возьмите первую серию графиков
IChartSeries series = chart.ChartData.Series[0];

// Заполнение данных серии
series.DataPoints.AddDataPointForBarSeries(fact.GetCell(defaultWorksheetIndex, 1, 1, 20));
series.DataPoints.AddDataPointForBarSeries(fact.GetCell(defaultWorksheetIndex, 2, 1, 50));
series.DataPoints.AddDataPointForBarSeries(fact.GetCell(defaultWorksheetIndex, 3, 1, 30));

// Установка цвета заливки для серии
series.Format.Fill.FillType = FillType.Solid;
series.Format.Fill.SolidFillColor.Color = System.Drawing.Color.Blue;


// Возьмем вторую серию графиков
series = chart.ChartData.Series[1];

// Заполнение данных серии
series.DataPoints.AddDataPointForBarSeries(fact.GetCell(defaultWorksheetIndex, 1, 2, 30));
series.DataPoints.AddDataPointForBarSeries(fact.GetCell(defaultWorksheetIndex, 2, 2, 10));
series.DataPoints.AddDataPointForBarSeries(fact.GetCell(defaultWorksheetIndex, 3, 2, 60));

// Установка цвета заливки для серии
series.Format.Fill.FillType = FillType.Solid;
series.Format.Fill.SolidFillColor.Color = Color.Orange;

// Первая метка будет отображать название категории
IDataLabel lbl = series.DataPoints[0].Label;
lbl.DataLabelFormat.ShowCategoryName = true;

lbl = series.DataPoints[1].Label;
lbl.DataLabelFormat.ShowSeriesName = true;

// Показать значение для третьего ярлыка
lbl = series.DataPoints[2].Label;
lbl.DataLabelFormat.ShowValue = true;
lbl.DataLabelFormat.ShowSeriesName = true;
lbl.DataLabelFormat.Separator = "/";

// Сохранить презентацию с диаграммой
pres.Save("column-chart.pptx", SaveFormat.Pptx);

Ниже приведен скриншот полученной гистограммы.

создать столбчатую диаграмму в powerpoint на С#

Создайте точечную диаграмму в PowerPoint PPT с помощью C#

Ниже приведены шаги по созданию точечной диаграммы в презентации PowerPoint с помощью C#.

  • Создайте новую презентацию, используя класс Presentation.
  • Получить ссылку на слайды в объекте ISlide.
  • Добавьте тип диаграммы ScatterWithSmoothLines с данными по умолчанию и получите ссылку на нее в объекте IChart.
  • Получите доступ к рабочей книге данных диаграммы в объект IChartDataWorkbook и очистите серию по умолчанию.
  • Добавьте новые ряды к данным диаграммы.
  • Получите доступ к каждой серии в объекте IChartSeries и добавьте точки данных в серию.
  • Установите маркер серии с помощью свойства IChartSeries.Marker.
  • Сохраните презентацию методом Presentation.Save(String, SaveFormat).

В следующем примере кода показано, как создать точечную диаграмму в презентациях PowerPoint с помощью C#.

// Создать экземпляр класса Presentation, который представляет файл PPTX.
Presentation pres = new Presentation();

// Доступ к первому слайду
ISlide sld = pres.Slides[0];

// Добавить диаграмму с данными по умолчанию
IChart chart = sld.Shapes.AddChart(ChartType.ScatterWithSmoothLines, 0, 0, 400, 400);

// Получение индекса листа данных диаграммы по умолчанию
int defaultWorksheetIndex = 0;

// Получение листа данных диаграммы
IChartDataWorkbook fact = chart.ChartData.ChartDataWorkbook;

// Удалить демонстрационную серию
chart.ChartData.Series.Clear();

// Добавить новую серию
chart.ChartData.Series.Add(fact.GetCell(defaultWorksheetIndex, 1, 1, "Series 1"), chart.Type);
chart.ChartData.Series.Add(fact.GetCell(defaultWorksheetIndex, 1, 3, "Series 2"), chart.Type);

// Возьмите первую серию графиков
IChartSeries series = chart.ChartData.Series[0];

// Добавьте туда новую точку (1:3).
series.DataPoints.AddDataPointForScatterSeries(fact.GetCell(defaultWorksheetIndex, 2, 1, 1), fact.GetCell(defaultWorksheetIndex, 2, 2, 3));

// Добавить новую точку (2:10)
series.DataPoints.AddDataPointForScatterSeries(fact.GetCell(defaultWorksheetIndex, 3, 1, 2), fact.GetCell(defaultWorksheetIndex, 3, 2, 10));

// Изменить тип серии
series.Type = ChartType.ScatterWithStraightLinesAndMarkers;

// Изменение маркера серии диаграммы
series.Marker.Size = 10;
series.Marker.Symbol = MarkerStyleType.Star;

// Возьмем вторую серию графиков
series = chart.ChartData.Series[1];

// Добавьте туда новую точку (5:2).
series.DataPoints.AddDataPointForScatterSeries(fact.GetCell(defaultWorksheetIndex, 2, 3, 5), fact.GetCell(defaultWorksheetIndex, 2, 4, 2));

// Добавить новую точку (3:1)
series.DataPoints.AddDataPointForScatterSeries(fact.GetCell(defaultWorksheetIndex, 3, 3, 3), fact.GetCell(defaultWorksheetIndex, 3, 4, 1));

// Добавить новую точку (2:2)
series.DataPoints.AddDataPointForScatterSeries(fact.GetCell(defaultWorksheetIndex, 4, 3, 2), fact.GetCell(defaultWorksheetIndex, 4, 4, 2));

// Добавить новую точку (5:1)
series.DataPoints.AddDataPointForScatterSeries(fact.GetCell(defaultWorksheetIndex, 5, 3, 5), fact.GetCell(defaultWorksheetIndex, 5, 4, 1));

// Изменение маркера серии диаграммы
series.Marker.Size = 10;
series.Marker.Symbol = MarkerStyleType.Circle;

// Сохранить презентацию с диаграммой
pres.Save("scattered-chart.pptx", SaveFormat.Pptx);

На следующем снимке экрана показана результирующая диаграмма рассеяния.

создать разбросанную диаграмму в powerpoint на С#

Создание круговой диаграммы в PowerPoint PPT с использованием C#

Ниже приведены шаги по созданию круговой диаграммы в презентации PowerPoint с помощью C#.

  • Создайте новую презентацию, используя класс Presentation.
  • Получить ссылку на слайды в объекте ISlide.
  • Добавьте тип круговой диаграммы с данными по умолчанию и получите ссылку на нее в объекте IChart.
  • Задайте заголовок диаграммы с помощью метода IChart.ChartTitle.AddTextFrameForOverriding(String) и задайте его свойства.
  • Установить видимость значений.
  • Очистите ряды и категории по умолчанию, используя методы IChart.ChartData.Series.Clear() и IChart.ChartData.Categories.Clear() соответственно.
  • Получите доступ к книге данных диаграммы в объект IChartDataWorkbook.
  • Добавьте новые категории к данным диаграммы в коллекцию IChart.ChartData.Categories.
  • Добавьте новые ряды к данным диаграммы в коллекцию IChart.ChartData.Series.
  • Получите каждую серию в объект IChartSeries и добавьте точки данных в серию.
  • Получите доступ к каждой точке данных в объекте IChartDataPoint и установите его форматирование.
  • Получите доступ к меткам данных в точках данных с помощью объекта IDataLabel и задайте их форматирование.
  • Задайте линии выноски и углы поворота.
  • Сохраните презентацию методом Presentation.Save(String, SaveFormat).

В следующем примере кода показано, как создать круговую диаграмму в презентации PowerPoint с помощью C#.

// Создать экземпляр класса Presentation, который представляет файл PPTX.
Presentation presentation = new Presentation();

// Доступ к первому слайду
ISlide slides = presentation.Slides[0];

// Добавить диаграмму с данными по умолчанию
IChart chart = slides.Shapes.AddChart(ChartType.Pie, 100, 100, 400, 400);

// Настройка заголовка диаграммы
chart.ChartTitle.AddTextFrameForOverriding("Sample Title");
chart.ChartTitle.TextFrameForOverriding.TextFrameFormat.CenterText = NullableBool.True;
chart.ChartTitle.Height = 20;
chart.HasTitle = true;

// Установите первую серию для отображения значений
chart.ChartData.Series[0].Labels.DefaultDataLabelFormat.ShowValue = true;

// Установка индекса листа данных диаграммы
int defaultWorksheetIndex = 0;

// Получение листа данных диаграммы
IChartDataWorkbook fact = chart.ChartData.ChartDataWorkbook;

// Удалить сгенерированные по умолчанию серии и категории
chart.ChartData.Series.Clear();
chart.ChartData.Categories.Clear();

// Добавление новых категорий
chart.ChartData.Categories.Add(fact.GetCell(0, 1, 0, "First Qtr"));
chart.ChartData.Categories.Add(fact.GetCell(0, 2, 0, "2nd Qtr"));
chart.ChartData.Categories.Add(fact.GetCell(0, 3, 0, "3rd Qtr"));

// Добавление новой серии
IChartSeries series = chart.ChartData.Series.Add(fact.GetCell(0, 0, 1, "Series 1"), chart.Type);

// Заполнение данных серии
series.DataPoints.AddDataPointForPieSeries(fact.GetCell(defaultWorksheetIndex, 1, 1, 20));
series.DataPoints.AddDataPointForPieSeries(fact.GetCell(defaultWorksheetIndex, 2, 1, 50));
series.DataPoints.AddDataPointForPieSeries(fact.GetCell(defaultWorksheetIndex, 3, 1, 30));

// Не работает в новой версии
// Добавление новых точек и установка цвета сектора
// серия.IsColorVaried = истина;
chart.ChartData.SeriesGroups[0].IsColorVaried = true;

IChartDataPoint point = series.DataPoints[0];
point.Format.Fill.FillType = FillType.Solid;
point.Format.Fill.SolidFillColor.Color = Color.Orange;
// Настройка границы сектора
point.Format.Line.FillFormat.FillType = FillType.Solid;
point.Format.Line.FillFormat.SolidFillColor.Color = Color.Gray;
point.Format.Line.Width = 3.0;
//point.Format.Line.Style = LineStyle.ThinThick;
//point.Format.Line.DashStyle = LineDashStyle.DashDot;

IChartDataPoint point1 = series.DataPoints[1];
point1.Format.Fill.FillType = FillType.Solid;
point1.Format.Fill.SolidFillColor.Color = Color.BlueViolet;

// Настройка границы сектора
point1.Format.Line.FillFormat.FillType = FillType.Solid;
point1.Format.Line.FillFormat.SolidFillColor.Color = Color.Blue;
point1.Format.Line.Width = 3.0;
//point1.Format.Line.Style = LineStyle.Single;
//point1.Format.Line.DashStyle = LineDashStyle.LargeDashDot;

IChartDataPoint point2 = series.DataPoints[2];
point2.Format.Fill.FillType = FillType.Solid;
point2.Format.Fill.SolidFillColor.Color = Color.YellowGreen;

// Настройка границы сектора
point2.Format.Line.FillFormat.FillType = FillType.Solid;
point2.Format.Line.FillFormat.SolidFillColor.Color = Color.Red;
point2.Format.Line.Width = 2.0;
//point2.Format.Line.Style = LineStyle.ThinThin;
//point2.Format.Line.DashStyle = LineDashStyle.LargeDashDotDot;

// Создавайте собственные метки для каждой из категорий для новых серий
IDataLabel lbl1 = series.DataPoints[0].Label;

// lbl.ShowCategoryName = true;
lbl1.DataLabelFormat.ShowValue = true;

IDataLabel lbl2 = series.DataPoints[1].Label;
lbl2.DataLabelFormat.ShowValue = true;
lbl2.DataLabelFormat.ShowLegendKey = true;
lbl2.DataLabelFormat.ShowPercentage = true;

IDataLabel lbl3 = series.DataPoints[2].Label;
lbl3.DataLabelFormat.ShowSeriesName = true;
lbl3.DataLabelFormat.ShowPercentage = true;

// Отображение ведущих линий для диаграммы
//series.Labels.DefaultDataLabelFormat.ShowLeaderLines = true;

// Настройка угла поворота секторов круговой диаграммы
chart.ChartData.SeriesGroups[0].FirstSliceAngle = 180;

// Сохранить презентацию с диаграммой
presentation.Save("pie-chart.pptx", SaveFormat.Pptx);

Ниже приведен скриншот сгенерированной круговой диаграммы.

создать круговую диаграмму в powerpoint на С#

Добавить диаграмму гистограммы в PowerPoint PPTX с помощью C#

Ниже приведены шаги по созданию гистограммы в презентациях PowerPoint с использованием Aspose.Slides для .NET.

  • Создайте экземпляр класса Презентация.
  • Получить ссылку на слайд в объекте ISlide по его индексу.
  • Добавьте гистограмму с данными по умолчанию.
  • Очистите серии и категории по умолчанию.
  • Получите доступ к книге данных диаграммы в объекте IChartDataWorkbook.
  • Добавьте новую серию и получите ее ссылку в объекте IChartSeries.
  • Добавьте точки данных в серию.
  • Установите тип агрегации оси диаграммы.
  • Сохраните презентацию методом Presentation.Save(String, SaveFormat).

В следующем примере кода показано, как создать гистограмму с помощью C#.

// Загрузить или создать презентацию
using (Presentation pres = new Presentation())
{
    // Добавить гистограмму
    IChart chart = pres.Slides[0].Shapes.AddChart(ChartType.Histogram, 50, 50, 500, 400);
    chart.ChartData.Categories.Clear();
    chart.ChartData.Series.Clear();

    // Доступ к книге данных диаграммы
    IChartDataWorkbook wb = chart.ChartData.ChartDataWorkbook;

    // Очистить книгу
    wb.Clear(0);

    // Добавить серию диаграмм
    IChartSeries series = chart.ChartData.Series.Add(ChartType.Histogram);
    series.DataPoints.AddDataPointForHistogramSeries(wb.GetCell(0, "A1", 15));
    series.DataPoints.AddDataPointForHistogramSeries(wb.GetCell(0, "A2", -41));
    series.DataPoints.AddDataPointForHistogramSeries(wb.GetCell(0, "A3", 16));
    series.DataPoints.AddDataPointForHistogramSeries(wb.GetCell(0, "A4", 10));
    series.DataPoints.AddDataPointForHistogramSeries(wb.GetCell(0, "A5", -23));
    series.DataPoints.AddDataPointForHistogramSeries(wb.GetCell(0, "A6", 16));

    chart.Axes.HorizontalAxis.AggregationType = AxisAggregationType.Automatic;

    // Сохранить презентацию
    pres.Save("histogram-chart.pptx", SaveFormat.Pptx);
}

Ниже приведен скриншот созданного графика гистограммы.

создать диаграмму гистограммы в PowerPoint на С#

Создайте биржевую диаграмму в PowerPoint с помощью C#

Биржевая диаграмма также является одним из наиболее часто используемых типов диаграмм в презентациях PowerPoint. Ниже приведены шаги для создания биржевой диаграммы.

  • Создайте новую презентацию PowerPoint, используя класс Presentation.
  • Получить ссылку на слайд в объекте ISlide, используя индекс слайда.
  • Добавьте на слайд график OpenHighLowClose и получите ссылку на него в объекте IChart.
  • Очистите серии и категории по умолчанию.
  • Получите доступ к данным диаграммы в объекте IChartDataWorkbook.
  • Добавляйте в диаграмму новые серии и категории.
  • Получите доступ к каждой серии диаграмм и добавьте точки данных.
  • Укажите формат HiLowLines.
  • Сохраните презентацию методом Presentation.Save(String, SaveFormat).

В следующем примере кода показано, как добавить биржевую диаграмму в презентацию PowerPoint с помощью C#.

// Загрузить или создать презентацию
using (Presentation pres = new Presentation())
{
    // Добавить диаграмму
    IChart chart = pres.Slides[0].Shapes.AddChart(ChartType.OpenHighLowClose, 50, 50, 600, 400, false);

    // Очистить категории и серии
    chart.ChartData.Series.Clear();
    chart.ChartData.Categories.Clear();

    // Доступ к книге данных диаграммы
    IChartDataWorkbook wb = chart.ChartData.ChartDataWorkbook;

    // Добавить категории
    chart.ChartData.Categories.Add(wb.GetCell(0, 1, 0, "A"));
    chart.ChartData.Categories.Add(wb.GetCell(0, 2, 0, "B"));
    chart.ChartData.Categories.Add(wb.GetCell(0, 3, 0, "C"));

    // Добавить серию
    chart.ChartData.Series.Add(wb.GetCell(0, 0, 1, "Open"), chart.Type);
    chart.ChartData.Series.Add(wb.GetCell(0, 0, 2, "High"), chart.Type);
    chart.ChartData.Series.Add(wb.GetCell(0, 0, 3, "Low"), chart.Type);
    chart.ChartData.Series.Add(wb.GetCell(0, 0, 4, "Close"), chart.Type);

    // Добавить точки данных
    IChartSeries series = chart.ChartData.Series[0];

    series.DataPoints.AddDataPointForStockSeries(wb.GetCell(0, 1, 1, 72));
    series.DataPoints.AddDataPointForStockSeries(wb.GetCell(0, 2, 1, 25));
    series.DataPoints.AddDataPointForStockSeries(wb.GetCell(0, 3, 1, 38));

    series = chart.ChartData.Series[1];
    series.DataPoints.AddDataPointForStockSeries(wb.GetCell(0, 1, 2, 172));
    series.DataPoints.AddDataPointForStockSeries(wb.GetCell(0, 2, 2, 57));
    series.DataPoints.AddDataPointForStockSeries(wb.GetCell(0, 3, 2, 57));

    series = chart.ChartData.Series[2];
    series.DataPoints.AddDataPointForStockSeries(wb.GetCell(0, 1, 3, 12));
    series.DataPoints.AddDataPointForStockSeries(wb.GetCell(0, 2, 3, 12));
    series.DataPoints.AddDataPointForStockSeries(wb.GetCell(0, 3, 3, 13));

    series = chart.ChartData.Series[3];
    series.DataPoints.AddDataPointForStockSeries(wb.GetCell(0, 1, 4, 25));
    series.DataPoints.AddDataPointForStockSeries(wb.GetCell(0, 2, 4, 38));
    series.DataPoints.AddDataPointForStockSeries(wb.GetCell(0, 3, 4, 50));

    // Установите, есть ли на диаграмме столбцы вверх/вниз
    chart.ChartData.SeriesGroups[0].UpDownBars.HasUpDownBars = true;

    // Укажите формат строки hi/low
    chart.ChartData.SeriesGroups[0].HiLowLinesFormat.Line.FillFormat.FillType = FillType.Solid;

    foreach (IChartSeries ser in chart.ChartData.Series)
    {
        ser.Format.Line.FillFormat.FillType = FillType.NoFill;
    }

    // Сохранить презентацию
    pres.Save("stock-chart.pptx", SaveFormat.Pptx);
}

Ниже приведен скриншот созданного биржевого графика.

создать биржевую диаграмму в PowerPoint на С#

Дополнительные типы диаграмм

В дополнение к вышеупомянутым диаграммам существуют и другие типы диаграмм, которые вы можете добавить в презентации PowerPoint. Чтобы узнать больше о поддерживаемых типах диаграмм, вы можете посетить эту статью документации.

Получите бесплатную лицензию API

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

Вывод

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

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