создание диаграмм в PowerPoint ppt java

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

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

Для создания различных типов диаграмм в презентациях мы будем использовать Aspose.Slides for Java. Упомянутый API позволяет создавать презентации PowerPoint и управлять ими из ваших приложений Java. Кроме того, он позволяет легко создавать и добавлять диаграммы в презентации. Вы можете либо скачать API, либо установить его, используя следующие конфигурации Maven.

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>http://repository.aspose.com/repo/</url>
</repository>
<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-slides</artifactId>
    <version>21.7</version>
    <classifier>jdk16</classifier>
</dependency>

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

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

  • Сначала создайте экземпляр класса Презентация (укажите путь к файлу в конструкторе в случае загрузки существующей презентации).
  • Получите ссылку на слайд, указав его индекс.
  • Добавьте диаграмму с данными по умолчанию вместе с типом ChartType.ClusteredColumn.
  • Очистите серии и категории по умолчанию.
  • Получите доступ к книге данных диаграммы в объекте IChartDataWorkbook.
  • Добавьте в книгу новые ряды и категории диаграммы.
  • Добавьте новые данные диаграммы в серию диаграммы.
  • Наконец, сохраните презентацию, используя метод Presentation.save(String, SaveFormat).

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

// Создать новую презентацию
Presentation pres = new Presentation();
try {
    
    // Добавьте новую столбчатую диаграмму и очистите категории и ряды по умолчанию.
    IChart ch = pres.getSlides().get_Item(0).getShapes().addChart(ChartType.ClusteredColumn, 100, 100, 600, 450);
    ch.getChartData().getSeries().clear();
    ch.getChartData().getCategories().clear();
    
    // Доступ к данным диаграммы
    IChartDataWorkbook fact = ch.getChartData().getChartDataWorkbook();
    fact.clear(0);
    int defaultWorksheetIndex = 0;

    // Добавить категории
    IChartCategory category = ch.getChartData().getCategories().add(fact.getCell(0, "c2", "A"));
    category.getGroupingLevels().setGroupingItem(1, "Group1");
    category = ch.getChartData().getCategories().add(fact.getCell(0, "c3", "B"));

    category = ch.getChartData().getCategories().add(fact.getCell(0, "c4", "C"));
    category.getGroupingLevels().setGroupingItem(1, "Group2");
    category = ch.getChartData().getCategories().add(fact.getCell(0, "c5", "D"));

    category = ch.getChartData().getCategories().add(fact.getCell(0, "c6", "E"));
    category.getGroupingLevels().setGroupingItem(1, "Group3");
    category = ch.getChartData().getCategories().add(fact.getCell(0, "c7", "F"));

    category = ch.getChartData().getCategories().add(fact.getCell(0, "c8", "G"));
    category.getGroupingLevels().setGroupingItem(1, "Group4");
    category = ch.getChartData().getCategories().add(fact.getCell(0, "c9", "H"));

    // Добавить серию
    IChartSeries series = ch.getChartData().getSeries().add(fact.getCell(0, "D1", "Series 1"),
            ChartType.ClusteredColumn);

    series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, "D2", 10));
    series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, "D3", 20));
    series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, "D4", 30));
    series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, "D5", 40));
    series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, "D6", 50));
    series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, "D7", 60));
    series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, "D8", 70));
    series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, "D9", 80));
    
    // Сохранить презентацию с диаграммой
    pres.save("column-chart.pptx", SaveFormat.Pptx);
} finally {
    if (pres != null) pres.dispose();
}

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

Создать столбчатую диаграмму в PowerPoint Java

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

Ниже приведены шаги по созданию разбросанной диаграммы в презентации PowerPoint с использованием Java.

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

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

// Создать экземпляр класса Presentation, который представляет файл PPTX.
Presentation pres = new Presentation();
try {
    // Доступ к первому слайду
    ISlide slide = pres.getSlides().get_Item(0);

    // Создайте диаграмму по умолчанию
    IChart chart = slide.getShapes().addChart(ChartType.ScatterWithSmoothLines, 0, 0, 400, 400);
    
    // Получить индекс рабочего листа данных диаграммы по умолчанию
    int defaultWorksheetIndex = 0;
    
    // Получить рабочий лист данных диаграммы
    IChartDataWorkbook fact = chart.getChartData().getChartDataWorkbook();
    
    // Удалить демонстрационную серию
    chart.getChartData().getSeries().clear();
    
    // Добавить новую серию
    chart.getChartData().getSeries().add(fact.getCell(defaultWorksheetIndex, 1, 1, "Series 1"), chart.getType());
    chart.getChartData().getSeries().add(fact.getCell(defaultWorksheetIndex, 1, 3, "Series 2"), chart.getType());
    
    // Возьмите первую серию графиков
    IChartSeries series = chart.getChartData().getSeries().get_Item(0);
    
    // Добавьте туда новую точку (1:3).
    series.getDataPoints().addDataPointForScatterSeries(fact.getCell(defaultWorksheetIndex, 2, 1, 1), fact.getCell(defaultWorksheetIndex, 2, 2, 3));
    
    // Добавить новую точку (2:10)
    series.getDataPoints().addDataPointForScatterSeries(fact.getCell(defaultWorksheetIndex, 3, 1, 2), fact.getCell(defaultWorksheetIndex, 3, 2, 10));
    
    // Изменить тип серии
    series.setType(ChartType.ScatterWithStraightLinesAndMarkers);
    
    // Изменение маркера серии диаграммы
    series.getMarker().setSize(10);
    series.getMarker().setSymbol(MarkerStyleType.Star);
    
    // Возьмем вторую серию графиков
    series = chart.getChartData().getSeries().get_Item(1);
    
    // Добавьте туда новую точку (5:2).
    series.getDataPoints().addDataPointForScatterSeries(fact.getCell(defaultWorksheetIndex, 2, 3, 5), fact.getCell(defaultWorksheetIndex, 2, 4, 2));
    
    // Добавить новую точку (3:1)
    series.getDataPoints().addDataPointForScatterSeries(fact.getCell(defaultWorksheetIndex, 3, 3, 3), fact.getCell(defaultWorksheetIndex, 3, 4, 1));
    
    // Добавить новую точку (2:2)
    series.getDataPoints().addDataPointForScatterSeries(fact.getCell(defaultWorksheetIndex, 4, 3, 2), fact.getCell(defaultWorksheetIndex, 4, 4, 2));
    
    // Добавить новую точку (5:1)
    series.getDataPoints().addDataPointForScatterSeries(fact.getCell(defaultWorksheetIndex, 5, 3, 5), fact.getCell(defaultWorksheetIndex, 5, 4, 1));
    
    // Изменение маркера серии диаграммы
    series.getMarker().setSize(10);
    series.getMarker().setSymbol(MarkerStyleType.Circle);
    
    // Сохранить презентацию
    pres.save("scatter-chart.pptx", SaveFormat.Pptx);
} finally {
    if (pres != null) pres.dispose();
}

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

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

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

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

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

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

// Создать экземпляр класса Presentation, который представляет файл PPTX.
Presentation pres = new Presentation();
try {
    // Доступ к первому слайду
    ISlide slides = pres.getSlides().get_Item(0);
    
    // Добавить диаграмму с данными по умолчанию
    IChart chart = slides.getShapes().addChart(ChartType.Pie, 100, 100, 400, 400);
    
    // Установить заголовок диаграммы
    chart.getChartTitle().addTextFrameForOverriding("Sample Title");
    chart.getChartTitle().getTextFrameForOverriding().getTextFrameFormat().setCenterText(NullableBool.True);
    chart.getChartTitle().setHeight(20);
    chart.setTitle(true);
    
    // Установите первую серию для отображения значений
    chart.getChartData().getSeries().get_Item(0).getLabels().getDefaultDataLabelFormat().setShowValue(true);
    
    // Установите индекс листа данных диаграммы
    int defaultWorksheetIndex = 0;
    
    // Получить рабочий лист данных диаграммы
    IChartDataWorkbook fact = chart.getChartData().getChartDataWorkbook();
    
    // Удалить сгенерированные по умолчанию серии и категории
    chart.getChartData().getSeries().clear();
    chart.getChartData().getCategories().clear();
    
    // Добавить новые категории
    chart.getChartData().getCategories().add(fact.getCell(0, 1, 0, "First Qtr"));
    chart.getChartData().getCategories().add(fact.getCell(0, 2, 0, "2nd Qtr"));
    chart.getChartData().getCategories().add(fact.getCell(0, 3, 0, "3rd Qtr"));
    
    // Добавить новую серию
    IChartSeries series = chart.getChartData().getSeries().add(fact.getCell(0, 0, 1, "Series 1"), chart.getType());
    
    // Заполнение данных серии
    series.getDataPoints().addDataPointForPieSeries(fact.getCell(defaultWorksheetIndex, 1, 1, 20));
    series.getDataPoints().addDataPointForPieSeries(fact.getCell(defaultWorksheetIndex, 2, 1, 50));
    series.getDataPoints().addDataPointForPieSeries(fact.getCell(defaultWorksheetIndex, 3, 1, 30));
    
    // Не работает в новой версии
    // Добавление новых точек и установка цвета сектора
    // серия.IsColorVaried = истина;
    chart.getChartData().getSeriesGroups().get_Item(0).setColorVaried(true);
    
    IChartDataPoint point = series.getDataPoints().get_Item(0);
    point.getFormat().getFill().setFillType(FillType.Solid);
    point.getFormat().getFill().getSolidFillColor().setColor(Color.CYAN);
	
    // Установить границу сектора
    point.getFormat().getLine().getFillFormat().setFillType(FillType.Solid);
    point.getFormat().getLine().getFillFormat().getSolidFillColor().setColor(Color.GRAY);
    point.getFormat().getLine().setWidth(3.0);
    //point.getFormat().getLine().setStyle(LineStyle.ThinThick);
    //point.getFormat().getLine().setDashStyle(LineDashStyle.DashDot);
    
    IChartDataPoint point1 = series.getDataPoints().get_Item(1);
    point1.getFormat().getFill().setFillType(FillType.Solid);
    point1.getFormat().getFill().getSolidFillColor().setColor(Color.ORANGE);
    
    // Установить границу сектора
    point1.getFormat().getLine().getFillFormat().setFillType(FillType.Solid);
    point1.getFormat().getLine().getFillFormat().getSolidFillColor().setColor(Color.BLUE);
    point1.getFormat().getLine().setWidth(3.0);
    //point1.getFormat().getLine().setStyle(LineStyle.Single);
    //point1.getFormat().getLine().setDashStyle(LineDashStyle.LargeDashDot);
    
    IChartDataPoint point2 = series.getDataPoints().get_Item(2);
    point2.getFormat().getFill().setFillType(FillType.Solid);
    point2.getFormat().getFill().getSolidFillColor().setColor(Color.YELLOW);
    
    // Установить границу сектора
    point2.getFormat().getLine().getFillFormat().setFillType(FillType.Solid);
    point2.getFormat().getLine().getFillFormat().getSolidFillColor().setColor(Color.RED);
    point2.getFormat().getLine().setWidth(2.0);
    //point2.getFormat().getLine().setStyle(LineStyle.ThinThin);
    //point2.getFormat().getLine().setDashStyle(LineDashStyle.LargeDashDotDot);
    
    // Создавайте собственные метки для каждой из категорий для новых серий
    IDataLabel lbl1 = series.getDataPoints().get_Item(0).getLabel();
    
    // lbl.ShowCategoryName = true;
    lbl1.getDataLabelFormat().setShowValue(true);
    
    IDataLabel lbl2 = series.getDataPoints().get_Item(1).getLabel();
    lbl2.getDataLabelFormat().setShowValue(true);
    lbl2.getDataLabelFormat().setShowLegendKey(true);
    lbl2.getDataLabelFormat().setShowPercentage(true);
    
    IDataLabel lbl3 = series.getDataPoints().get_Item(2).getLabel();
    lbl3.getDataLabelFormat().setShowSeriesName(true);
    lbl3.getDataLabelFormat().setShowPercentage(true);
    
    // Показать линии выноски для диаграммы
    series.getLabels().getDefaultDataLabelFormat().setShowLeaderLines(true);
    
    // Установите угол поворота для секторов круговой диаграммы
    chart.getChartData().getSeriesGroups().get_Item(0).setFirstSliceAngle(180);
    
    // Сохранить презентацию с диаграммой
    pres.save("pie-chart.pptx", SaveFormat.Pptx);
} finally {
    if (pres != null) pres.dispose();
}

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

Создание круговой диаграммы в PowerPoint Java

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

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

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

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

// Создать новую презентацию
Presentation pres = new Presentation();
try {
    
    // Добавьте новую диаграмму гистограммы и очистите ее категории и ряды.
    IChart chart = pres.getSlides().get_Item(0).getShapes().addChart(ChartType.Histogram, 50, 50, 500, 400);
    chart.getChartData().getCategories().clear();
    chart.getChartData().getSeries().clear();

    // Доступ к данным диаграммы
    IChartDataWorkbook wb = chart.getChartData().getChartDataWorkbook();
    wb.clear(0);

    // Добавить серию
    IChartSeries series = chart.getChartData().getSeries().add(ChartType.Histogram);
    series.getDataPoints().addDataPointForHistogramSeries(wb.getCell(0, "A1", 15));
    series.getDataPoints().addDataPointForHistogramSeries(wb.getCell(0, "A2", -41));
    series.getDataPoints().addDataPointForHistogramSeries(wb.getCell(0, "A3", 16));
    series.getDataPoints().addDataPointForHistogramSeries(wb.getCell(0, "A4", 10));
    series.getDataPoints().addDataPointForHistogramSeries(wb.getCell(0, "A5", -23));
    series.getDataPoints().addDataPointForHistogramSeries(wb.getCell(0, "A6", 16));

    chart.getAxes().getHorizontalAxis().setAggregationType(AxisAggregationType.Automatic);

    // Сохранить презентацию
    pres.save("histogram-chart.pptx", SaveFormat.Pptx);
} finally {
    if (pres != null) pres.dispose();
}

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

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

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

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

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

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

// Создать новую презентацию
Presentation pres = new Presentation();
try {
    
    // Добавить диаграмму
    IChart chart = pres.getSlides().get_Item(0).getShapes().addChart(ChartType.OpenHighLowClose, 50, 50, 600, 400, false);

    // Очистить категории и серии
    chart.getChartData().getSeries().clear();
    chart.getChartData().getCategories().clear();

    // Доступ к данным диаграммы
    IChartDataWorkbook wb = chart.getChartData().getChartDataWorkbook();

    // Добавить категории
    chart.getChartData().getCategories().add(wb.getCell(0, 1, 0, "A"));
    chart.getChartData().getCategories().add(wb.getCell(0, 2, 0, "B"));
    chart.getChartData().getCategories().add(wb.getCell(0, 3, 0, "C"));

    chart.getChartData().getSeries().add(wb.getCell(0, 0, 1, "Open"), chart.getType());
    chart.getChartData().getSeries().add(wb.getCell(0, 0, 2, "High"), chart.getType());
    chart.getChartData().getSeries().add(wb.getCell(0, 0, 3, "Low"), chart.getType());
    chart.getChartData().getSeries().add(wb.getCell(0, 0, 4, "Close"), chart.getType());

    // Добавить данные серии
    IChartSeries series = chart.getChartData().getSeries().get_Item(0);

    series.getDataPoints().addDataPointForStockSeries(wb.getCell(0, 1, 1, 72));
    series.getDataPoints().addDataPointForStockSeries(wb.getCell(0, 2, 1, 25));
    series.getDataPoints().addDataPointForStockSeries(wb.getCell(0, 3, 1, 38));

    series = chart.getChartData().getSeries().get_Item(1);
    series.getDataPoints().addDataPointForStockSeries(wb.getCell(0, 1, 2, 172));
    series.getDataPoints().addDataPointForStockSeries(wb.getCell(0, 2, 2, 57));
    series.getDataPoints().addDataPointForStockSeries(wb.getCell(0, 3, 2, 57));

    series = chart.getChartData().getSeries().get_Item(2);
    series.getDataPoints().addDataPointForStockSeries(wb.getCell(0, 1, 3, 12));
    series.getDataPoints().addDataPointForStockSeries(wb.getCell(0, 2, 3, 12));
    series.getDataPoints().addDataPointForStockSeries(wb.getCell(0, 3, 3, 13));

    series = chart.getChartData().getSeries().get_Item(3);
    series.getDataPoints().addDataPointForStockSeries(wb.getCell(0, 1, 4, 25));
    series.getDataPoints().addDataPointForStockSeries(wb.getCell(0, 2, 4, 38));
    series.getDataPoints().addDataPointForStockSeries(wb.getCell(0, 3, 4, 50));

    chart.getChartData().getSeriesGroups().get_Item(0).getUpDownBars().setUpDownBars(true);
    chart.getChartData().getSeriesGroups().get_Item(0).getHiLowLinesFormat().getLine().getFillFormat().setFillType(FillType.Solid);

    for (IChartSeries ser : chart.getChartData().getSeries())
    {
        ser.getFormat().getLine().getFillFormat().setFillType(FillType.NoFill);
    }

    // Сохранить презентацию
    pres.save("output.pptx", SaveFormat.Pptx);
} finally {
    if (pres != null) pres.dispose();
}

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

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

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

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

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

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

Попробуйте онлайн

Вы также можете попробовать бесплатный онлайн-инструмент для создания диаграмм в презентациях PowerPoint, основанный на Aspose.Slides.

Вывод

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

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