Создание или обновление диаграмм в презентации PowerPoint на Java

Обзор

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

Диаграмма: Обычная

Диаграмма: Разбросанная

Диаграмма: Круговая

Диаграмма: Дерево

Диаграмма: Фондовая

Диаграмма: Диаграмма ящиков с усами

Диаграмма: Воронкообразная

Диаграмма: Солнечная

Диаграмма: Гистограмма

Диаграмма: Радар

Диаграмма: Многокатегорийная

Диаграмма: Карта

Действие: Обновить диаграмму

Создание диаграммы

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

Почему стоит создавать диаграммы?

Используя диаграммы, вы можете

  • агрегировать, сокращать или обобщать большие объемы данных на одном слайде презентации
  • выявлять закономерности и тенденции в данных
  • делать выводы о направлении и динамике данных во времени или относительно конкретной единицы измерения
  • выявлять выбросы, аномалии, отклонения, ошибки, бессмысленные данные и т. д.
  • общаться или представлять сложные данные

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

Создание обычных диаграмм

Шаги: Создание диаграммы

Код шагов:

  1. Создайте экземпляр класса Presentation.
  2. Получите ссылку на слайд по его индексу.
  3. Добавьте диаграмму с некоторыми данными и укажите желаемый тип диаграммы.
  4. Добавьте заголовок к диаграмме.
  5. Получите доступ к рабочему листу данных диаграммы.
  6. Очистите все стандартные ряды и категории.
  7. Добавьте новые ряды и категории.
  8. Добавьте некоторые новые данные для серий диаграммы.
  9. Добавьте цвет заливки для серий диаграммы.
  10. Добавьте подписи для серий диаграммы.
  11. Запишите измененную презентацию в файл PPTX.

Этот код на Java показывает, как создать обычную диаграмму:

// Создает экземпляр класса презентации, представляющий файл PPTX
Presentation pres = new Presentation();
try {
    // Получает первый слайд
    ISlide sld = pres.getSlides().get_Item(0);
    
    // Добавляет диаграмму с ее стандартными данными
    IChart chart = sld.getShapes().addChart(ChartType.ClusteredColumn, 0, 0, 500, 500);
    
    // Устанавливает заголовок диаграммы
    chart.getChartTitle().addTextFrameForOverriding("Пример заголовка");
    chart.getChartTitle().getTextFrameForOverriding().getTextFrameFormat().setCenterText(NullableBool.True);
    chart.getChartTitle().setHeight(20);
    chart.hasTitle();
    
    // Устанавливает первую серию для отображения значений
    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();
    int s = chart.getChartData().getSeries().size();
    s = chart.getChartData().getCategories().size();
    
    // Добавляет новые серии
    chart.getChartData().getSeries().add(fact.getCell(defaultWorksheetIndex, 0, 1, "Серия 1"), chart.getType());
    chart.getChartData().getSeries().add(fact.getCell(defaultWorksheetIndex, 0, 2, "Серия 2"), chart.getType());
    
    // Добавляет новые категории
    chart.getChartData().getCategories().add(fact.getCell(defaultWorksheetIndex, 1, 0, "Категория 1"));
    chart.getChartData().getCategories().add(fact.getCell(defaultWorksheetIndex, 2, 0, "Категория 2"));
    chart.getChartData().getCategories().add(fact.getCell(defaultWorksheetIndex, 3, 0, "Категория 3"));
    
    // Получает первую серию диаграммы
    IChartSeries series = chart.getChartData().getSeries().get_Item(0);
    
    // Теперь заполняет данные серии
    series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 1, 1, 20));
    series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 2, 1, 50));
    series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 3, 1, 30));
    
    // Устанавливает цвет заливки для серии
    series.getFormat().getFill().setFillType(FillType.Solid);
    series.getFormat().getFill().getSolidFillColor().setColor(Color.RED);
    
    // Получает вторую серию диаграммы
    series = chart.getChartData().getSeries().get_Item(1);
    
    // Заполняет данные серии
    series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 1, 2, 30));
    series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 2, 2, 10));
    series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 3, 2, 60));
    
    // Устанавливает цвет заливки для серии
    series.getFormat().getFill().setFillType(FillType.Solid);
    series.getFormat().getFill().getSolidFillColor().setColor(Color.GREEN);
    
    // Создает пользовательские подписи для каждой категории
    // Устанавливает первую метку для отображения имени категории
    IDataLabel lbl = series.getDataPoints().get_Item(0).getLabel();
    lbl.getDataLabelFormat().setShowCategoryName(true);
    
    lbl = series.getDataPoints().get_Item(1).getLabel();
    lbl.getDataLabelFormat().setShowSeriesName(true);
    
    // Показывает значение для третьей метки
    lbl = series.getDataPoints().get_Item(2).getLabel();
    lbl.getDataLabelFormat().setShowValue(true);
    lbl.getDataLabelFormat().setShowSeriesName(true);
    lbl.getDataLabelFormat().setSeparator("/");
    
    // Сохраняет презентацию с диаграммой
    pres.save("output.pptx", SaveFormat.Pptx);
} finally {
    if (pres != null) pres.dispose();
}

Создание разбросанных диаграмм

Разбросанные диаграммы (также известные как разбросанные графики или x-y графики) часто используются для проверки на закономерности или демонстрации взаимосвязей между двумя переменными.

Вы можете захотеть использовать разбросанную диаграмму, когда

  • у вас есть парные числовые данные
  • у вас есть 2 переменные, которые хорошо соотносятся
  • вы хотите определить, связаны ли 2 переменные
  • у вас есть независимая переменная, у которой есть несколько значений для зависимой переменной

Шаги: Создание разбросанной диаграммы на Java | Шаги: Создание разбросанной диаграммы PowerPoint на Java | Шаги: Создание разбросанной диаграммы PowerPoint презентации на Java

  1. Пожалуйста, следуйте шагам, упомянутым выше в Создании обычных диаграмм
  2. На третьем шаге добавьте диаграмму с некоторыми данными и укажите тип диаграммы как один из следующих
    1. ChartType.ScatterWithMarkers - Представляет разбросанную диаграмму.
    2. ChartType.ScatterWithSmoothLinesAndMarkers - Представляет разбросанную диаграмму, соединенную кривыми, с маркерами данных.
    3. ChartType.ScatterWithSmoothLines - Представляет разбросанную диаграмму, соединенную кривыми, без маркеров данных.
    4. ChartType.ScatterWithStraightLinesAndMarkers - Представляет разбросанную диаграмму, соединенную линиями, с маркерами данных.
    5. ChartType.ScatterWithStraightLines - Представляет разбросанную диаграмму, соединенную линиями, без маркеров данных.

Этот код Java показывает, как создать разбросанные диаграммы с различными сериями маркеров:

// Создает экземпляр класса презентации, представляющий файл 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, "Серия 1"), chart.getType());
    chart.getChartData().getSeries().add(fact.getCell(defaultWorksheetIndex, 1, 3, "Серия 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("AsposeChart_out.pptx", SaveFormat.Pptx);
} finally {
    if (pres != null) pres.dispose();
}

Создание круговых диаграмм

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

Шаги: Создание круговой диаграммы на Java | Шаги: Создание круговой диаграммы PowerPoint на Java | Шаги: Создание круговой диаграммы PowerPoint презентации на Java

  1. Создайте экземпляр класса Presentation.
  2. Получите ссылку на слайд по его индексу.
  3. Добавьте диаграмму со стандартными данными и желаемым типом (в данном случае, ChartType.Pie).
  4. Получите доступ к данным диаграммы IChartDataWorkbook.
  5. Очистите стандартные ряды и категории.
  6. Добавьте новые ряды и категории.
  7. Добавьте новые данные диаграммы для серий.
  8. Добавьте новые точки для диаграмм и задайте пользовательские цвета для секторов круговой диаграммы.
  9. Установите подписи для серий.
  10. Установите линии соединения для подписей серий.
  11. Установите угол поворота для слайдов круговых диаграмм.
  12. Запишите измененную презентацию в файл PPTX.

Этот код на Java показывает, как создать круговую диаграмму:

// Создает экземпляр класса презентации, представляющий файл 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("Пример заголовка");
    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, "Первый квартал"));
    chart.getChartData().getCategories().add(fact.getCell(0, 2, 0, "Второй квартал"));
    chart.getChartData().getCategories().add(fact.getCell(0, 3, 0, "Третий квартал"));
    
    // Добавляет новые серии
    IChartSeries series = chart.getChartData().getSeries().add(fact.getCell(0, 0, 1, "Серия 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));
    
    // Не работает в новой версии
    // Добавление новых точек и установка цвета сектора
    // series.IsColorVaried = true;
    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("PieChart_out.pptx", SaveFormat.Pptx);
} finally {
    if (pres != null) pres.dispose();
}

Создание линейных диаграмм

Линейные диаграммы (также известные как линейные графики) лучше всего использовать в ситуациях, когда хотите продемонстрировать изменения значений во времени. Используя линейную диаграмму, вы можете сравнить множество данных одновременно, отслеживать изменения и тенденции во времени, подчеркивать аномалии в сериях данных и т. д.

  1. Создайте экземпляр класса Presentation.
  2. Получите ссылку на слайд по его индексу.
  3. Добавьте диаграмму с стандартными данными с желаемым типом (в данном случае, ChartType.Line).
  4. Получите доступ к данным диаграммы IChartDataWorkbook.
  5. Очистите стандартные ряды и категории.
  6. Добавьте новые ряды и категории.
  7. Добавьте новые данные диаграммы для серий.
  8. Запишите измененную презентацию в файл PPTX.

Этот код на Java показывает, как создать линейную диаграмму:

Presentation pres = new Presentation();
try {
    IChart lineChart = pres.getSlides().get_Item(0).getShapes().addChart(ChartType.Line, 10, 50, 600, 350);

    pres.save("lineChart.pptx", SaveFormat.Pptx);
} finally {
    if (pres != null) pres.dispose();
}

По умолчанию точки на линейной диаграмме соединены прямыми непрерывными линиями. Если вы хотите, чтобы точки были соединены линиями с дефисами, вы можете указать предпочитаемый тип дефиса следующим образом:

IChart lineChart = pres.getSlides().get_Item(0).getShapes().addChart(ChartType.Line, 10, 50, 600, 350);

for (IChartSeries series : lineChart.getChartData().getSeries())
{
    series.getFormat().getLine().setDashStyle(LineDashStyle.Dash);
}

Создание диаграмм дерева

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

Шаги: Создание диаграммы дерева на Java | Шаги: Создание диаграммы дерева PowerPoint на Java | Шаги: Создание диаграммы дерева PowerPoint презентации на Java

  1. Создайте экземпляр класса Presentation.
  2. Получите ссылку на слайд по его индексу.
  3. Добавьте диаграмму с стандартными данными и желаемым типом (в данном случае, ChartType.TreeMap).
  4. Получите доступ к данным диаграммы IChartDataWorkbook.
  5. Очистите стандартные ряды и категории.
  6. Добавьте новые ряды и категории.
  7. Добавьте новые данные диаграммы для серий.
  8. Запишите измененную презентацию в файл PPTX.

Этот код на Java показывает, как создать диаграмму дерева:

Presentation pres = new Presentation();
try {
    IChart chart = pres.getSlides().get_Item(0).getShapes().addChart(ChartType.Treemap, 50, 50, 500, 400);
    chart.getChartData().getCategories().clear();
    chart.getChartData().getSeries().clear();

    IChartDataWorkbook wb = chart.getChartData().getChartDataWorkbook();
    wb.clear(0);

    //ветвь 1
    IChartCategory leaf = chart.getChartData().getCategories().add(wb.getCell(0, "C1", "Лист1"));
    leaf.getGroupingLevels().setGroupingItem(1, "Стебель1");
    leaf.getGroupingLevels().setGroupingItem(2, "Ветвь1");

    chart.getChartData().getCategories().add(wb.getCell(0, "C2", "Лист2"));

    leaf = chart.getChartData().getCategories().add(wb.getCell(0, "C3", "Лист3"));
    leaf.getGroupingLevels().setGroupingItem(1, "Стебель2");

    chart.getChartData().getCategories().add(wb.getCell(0, "C4", "Лист4"));

    //ветвь 2
    leaf = chart.getChartData().getCategories().add(wb.getCell(0, "C5", "Лист5"));
    leaf.getGroupingLevels().setGroupingItem(1, "Стебель3");
    leaf.getGroupingLevels().setGroupingItem(2, "Ветвь2");

    chart.getChartData().getCategories().add(wb.getCell(0, "C6", "Лист6"));

    leaf = chart.getChartData().getCategories().add(wb.getCell(0, "C7", "Лист7"));
    leaf.getGroupingLevels().setGroupingItem(1, "Стебель4");

    chart.getChartData().getCategories().add(wb.getCell(0, "C8", "Лист8"));

    IChartSeries series = chart.getChartData().getSeries().add(ChartType.Treemap);
    series.getLabels().getDefaultDataLabelFormat().setShowCategoryName(true);
    series.getDataPoints().addDataPointForTreemapSeries(wb.getCell(0, "D1", 4));
    series.getDataPoints().addDataPointForTreemapSeries(wb.getCell(0, "D2", 5));
    series.getDataPoints().addDataPointForTreemapSeries(wb.getCell(0, "D3", 3));
    series.getDataPoints().addDataPointForTreemapSeries(wb.getCell(0, "D4", 6));
    series.getDataPoints().addDataPointForTreemapSeries(wb.getCell(0, "D5", 9));
    series.getDataPoints().addDataPointForTreemapSeries(wb.getCell(0, "D6", 9));
    series.getDataPoints().addDataPointForTreemapSeries(wb.getCell(0, "D7", 4));
    series.getDataPoints().addDataPointForTreemapSeries(wb.getCell(0, "D8", 3));

    series.setParentLabelLayout(ParentLabelLayoutType.Overlapping);

    pres.save("Treemap.pptx", SaveFormat.Pptx);
} finally {
    if (pres != null) pres.dispose();
}

Создание фондовых диаграмм

Шаги: Создание фондовой диаграммы на Java | Шаги: Создание фондовой диаграммы PowerPoint на Java | Шаги: Создание фондовой диаграммы PowerPoint презентации на Java

  1. Создайте экземпляр класса Presentation .
  2. Получите ссылку на слайд по его индексу.
  3. Добавьте диаграмму со стандартными данными и желаемым типом (ChartType.OpenHighLowClose).
  4. Получите доступ к данным диаграммы IChartDataWorkbook.
  5. Очистите стандартные ряды и категории.
  6. Добавьте новые ряды и категории.
  7. Добавьте новые данные диаграммы для серий.
  8. Укажите формат HiLowLines.
  9. Запишите измененную презентацию в файл PPTX.

Пример кода Java для создания фондовой диаграммы:

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();
}

Создание диаграмм ящиков с усами

Шаги: Создание диаграммы ящиков с усами на Java | Шаги: Создание диаграммы ящиков с усами PowerPoint на Java | Шаги: Создание диаграммы ящиков с усами PowerPoint презентации на Java

  1. Создайте экземпляр класса Presentation .
  2. Получите ссылку на слайд по его индексу.
  3. Добавьте диаграмму с стандартными данными и желаемым типом (ChartType.BoxAndWhisker).
  4. Получите доступ к данным диаграммы IChartDataWorkbook.
  5. Очистите стандартные ряды и категории.
  6. Добавьте новые ряды и категории.
  7. Добавьте новые данные диаграммы для серий.
  8. Запишите измененную презентацию в файл PPTX.

Этот код на Java показывает, как создать диаграмму ящиков с усами:

Presentation pres = new Presentation();
try {
    IChart chart = pres.getSlides().get_Item(0).getShapes().addChart(ChartType.BoxAndWhisker, 50, 50, 500, 400);
    chart.getChartData().getCategories().clear();
    chart.getChartData().getSeries().clear();

    IChartDataWorkbook wb = chart.getChartData().getChartDataWorkbook();
    wb.clear(0);

    chart.getChartData().getCategories().add(wb.getCell(0, "A1", "Категория 1"));
    chart.getChartData().getCategories().add(wb.getCell(0, "A2", "Категория 2"));
    chart.getChartData().getCategories().add(wb.getCell(0, "A3", "Категория 3"));
    chart.getChartData().getCategories().add(wb.getCell(0, "A4", "Категория 4"));
    chart.getChartData().getCategories().add(wb.getCell(0, "A5", "Категория 5"));
    chart.getChartData().getCategories().add(wb.getCell(0, "A6", "Категория 6"));

    IChartSeries series = chart.getChartData().getSeries().add(ChartType.BoxAndWhisker);

    series.setQuartileMethod(QuartileMethodType.Exclusive);
    series.setShowMeanLine(true);
    series.setShowMeanMarkers(true);
    series.setShowInnerPoints(true);
    series.setShowOutlierPoints(true);

    series.getDataPoints().addDataPointForBoxAndWhiskerSeries(wb.getCell(0, "B1", 15));
    series.getDataPoints().addDataPointForBoxAndWhiskerSeries(wb.getCell(0, "B2", 41));
    series.getDataPoints().addDataPointForBoxAndWhiskerSeries(wb.getCell(0, "B3", 16));
    series.getDataPoints().addDataPointForBoxAndWhiskerSeries(wb.getCell(0, "B4", 10));
    series.getDataPoints().addDataPointForBoxAndWhiskerSeries(wb.getCell(0, "B5", 23));
    series.getDataPoints().addDataPointForBoxAndWhiskerSeries(wb.getCell(0, "B6", 16));

    pres.save("BoxAndWhisker.pptx", SaveFormat.Pptx);
} finally {
    if (pres != null) pres.dispose();
}

Создание воронкообразных диаграмм

Шаги: Создание воронкообразной диаграммы на Java | Шаги: Создание воронкообразной диаграммы PowerPoint на Java | Шаги: Создание воронкообразной диаграммы PowerPoint презентации на Java

  1. Создайте экземпляр класса Presentation .
  2. Получите ссылку на слайд по его индексу.
  3. Добавьте диаграмму с стандартными данными и желаемым типом (ChartType.Funnel).
  4. Запишите измененную презентацию в файл PPTX.

Код Java показывает вам, как создать воронкообразную диаграмму:

Presentation pres = new Presentation();
try {
    IChart chart = pres.getSlides().get_Item(0).getShapes().addChart(ChartType.Funnel, 50, 50, 500, 400);
    chart.getChartData().getCategories().clear();
    chart.getChartData().getSeries().clear();

    IChartDataWorkbook wb = chart.getChartData().getChartDataWorkbook();

    wb.clear(0);

    chart.getChartData().getCategories().add(wb.getCell(0, "A1", "Категория 1"));
    chart.getChartData().getCategories().add(wb.getCell(0, "A2", "Категория 2"));
    chart.getChartData().getCategories().add(wb.getCell(0, "A3", "Категория 3"));
    chart.getChartData().getCategories().add(wb.getCell(0, "A4", "Категория 4"));
    chart.getChartData().getCategories().add(wb.getCell(0, "A5", "Категория 5"));
    chart.getChartData().getCategories().add(wb.getCell(0, "A6", "Категория 6"));

    IChartSeries series = chart.getChartData().getSeries().add(ChartType.Funnel);

    series.getDataPoints().addDataPointForFunnelSeries(wb.getCell(0, "B1", 50));
    series.getDataPoints().addDataPointForFunnelSeries(wb.getCell(0, "B2", 100));
    series.getDataPoints().addDataPointForFunnelSeries(wb.getCell(0, "B3", 200));
    series.getDataPoints().addDataPointForFunnelSeries(wb.getCell(0, "B4", 300));
    series.getDataPoints().addDataPointForFunnelSeries(wb.getCell(0, "B5", 400));
    series.getDataPoints().addDataPointForFunnelSeries(wb.getCell(0, "B6", 500));

    pres.save("Funnel.pptx", SaveFormat.Pptx);
} finally {
    if (pres != null) pres.dispose();
}

Создание солнечных диаграмм

Шаги: Создание солнечной диаграммы на Java | Шаги: Создание солнечной диаграммы PowerPoint на Java | Шаги: Создание солнечной диаграммы PowerPoint презентации на Java

  1. Создайте экземпляр класса Presentation.
  2. Получите ссылку на слайд по его индексу.
  3. Добавьте диаграмму с стандартными данными и желаемым типом (в данном случае, ChartType.sunburst).
  4. Запишите измененную презентацию в файл PPTX.

Этот код Java показывает, как создать солнечную диаграмму:

Presentation pres = new Presentation();
try {
    IChart chart = pres.getSlides().get_Item(0).getShapes().addChart(ChartType.Sunburst, 50, 50, 500, 400);
    chart.getChartData().getCategories().clear();
    chart.getChartData().getSeries().clear();

    IChartDataWorkbook wb = chart.getChartData().getChartDataWorkbook();
    wb.clear(0);

    //ветвь 1
    IChartCategory leaf = chart.getChartData().getCategories().add(wb.getCell(0, "C1", "Лист1"));
    leaf.getGroupingLevels().setGroupingItem(1, "Стебель1");
    leaf.getGroupingLevels().setGroupingItem(2, "Ветвь1");

    chart.getChartData().getCategories().add(wb.getCell(0, "C2", "Лист2"));

    leaf = chart.getChartData().getCategories().add(wb.getCell(0, "C3", "Лист3"));
    leaf.getGroupingLevels().setGroupingItem(1, "Стебель2");

    chart.getChartData().getCategories().add(wb.getCell(0, "C4", "Лист4"));

    //ветвь 2
    leaf = chart.getChartData().getCategories().add(wb.getCell(0, "C5", "Лист5"));
    leaf.getGroupingLevels().setGroupingItem(1, "Стебель3");
    leaf.getGroupingLevels().setGroupingItem(2, "Ветвь2");

    chart.getChartData().getCategories().add(wb.getCell(0, "C6", "Лист6"));

    leaf = chart.getChartData().getCategories().add(wb.getCell(0, "C7", "Лист7"));
    leaf.getGroupingLevels().setGroupingItem(1, "Стебель4");

    chart.getChartData().getCategories().add(wb.getCell(0, "C8", "Лист8"));

    IChartSeries series = chart.getChartData().getSeries().add(ChartType.Sunburst);
    series.getLabels().getDefaultDataLabelFormat().setShowCategoryName(true);
    series.getDataPoints().addDataPointForSunburstSeries(wb.getCell(0, "D1", 4));
    series.getDataPoints().addDataPointForSunburstSeries(wb.getCell(0, "D2", 5));
    series.getDataPoints().addDataPointForSunburstSeries(wb.getCell(0, "D3", 3));
    series.getDataPoints().addDataPointForSunburstSeries(wb.getCell(0, "D4", 6));
    series.getDataPoints().addDataPointForSunburstSeries(wb.getCell(0, "D5", 9));
    series.getDataPoints().addDataPointForSunburstSeries(wb.getCell(0, "D6", 9));
    series.getDataPoints().addDataPointForSunburstSeries(wb.getCell(0, "D7", 4));
    series.getDataPoints().addDataPointForSunburstSeries(wb.getCell(0, "D8", 3));
    
    pres.save("Sunburst.pptx", SaveFormat.Pptx);
} finally {
    if (pres != null) pres.dispose();
}

Создание гистограмм

Шаги: Создание гистограммы на Java | Шаги: Создание гистограммы PowerPoint на Java | Шаги: Создание гистограммы PowerPoint презентации на Java

  1. Создайте экземпляр класса Presentation .
  2. Получите ссылку на слайд по его индексу.
  3. Добавьте диаграмму со стандартными данными и желаемым типом (ChartType.Histogram).
  4. Получите доступ к данным диаграммы IChartDataWorkbook.
  5. Очистите стандартные ряды и категории.
  6. Добавьте новые ряды и категории.
  7. Запишите измененную презентацию в файл PPTX.

Этот код на 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.pptx", SaveFormat.Pptx);
} finally {
    if (pres != null) pres.dispose();
}

Создание радарных диаграмм

Шаги: Создание радарной диаграммы на Java | Шаги: Создание радарной диаграммы PowerPoint на Java | Шаги: Создание радарной диаграммы PowerPoint презентации на Java

  1. Создайте экземпляр класса Presentation .
  2. Получите ссылку на слайд по его индексу.
  3. Добавьте диаграмму с некоторыми данными и укажите предпочитаемый тип диаграммы (ChartType.Radar в этом случае).
  4. Запишите измененную презентацию в файл PPTX.

Этот код на Java показывает, как создать радарную диаграмму:

Presentation pres = new Presentation();
try {
    pres.getSlides().get_Item(0).getShapes().addChart(ChartType.Radar, 20, 20, 400, 300);
    pres.save("Radar-chart.pptx", SaveFormat.Pptx);
} finally {
    if (pres != null) pres.dispose();
}

Создание многокатегорийных диаграмм

Шаги: Создание многокатегорийной диаграммы на Java | Шаги: Создание многокатегорийной диаграммы PowerPoint на Java | Шаги: Создание многокатегорийной диаграммы PowerPoint презентации на Java

  1. Создайте экземпляр класса Presentation .
  2. Получите ссылку на слайд по его индексу.
  3. Добавьте диаграмму со стандартными данными и желаемым типом (ChartType.ClusteredColumn).
  4. Получите доступ к данным диаграммы IChartDataWorkbook.
  5. Очистите стандартные ряды и категории.
  6. Добавьте новые ряды и категории.
  7. Добавьте новые данные диаграммы для серий.
  8. Запишите измененную презентацию в файл.

Этот код 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, "Группа1");
    category = ch.getChartData().getCategories().add(fact.getCell(0, "c3", "B"));

    category = ch.getChartData().getCategories().add(fact.getCell(0, "c4", "C"));
    category.getGroupingLevels().setGroupingItem(1, "Группа2");
    category = ch.getChartData().getCategories().add(fact.getCell(0, "c5", "D"));

    category = ch.getChartData().getCategories().add(fact.getCell(0, "c6", "E"));
    category.getGroupingLevels().setGroupingItem(1, "Группа3");
    category = ch.getChartData().getCategories().add(fact.getCell(0, "c7", "F"));

    category = ch.getChartData().getCategories().add(fact.getCell(0, "c8", "G"));
    category.getGroupingLevels().setGroupingItem(1, "Группа4");
    category = ch.getChartData().getCategories().add(fact.getCell(0, "c9", "H"));

    // Добавление серий
    IChartSeries series = ch.getChartData().getSeries().add(fact.getCell(0, "D1", "Серия 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("AsposeChart_out.pptx", SaveFormat.Pptx);
} finally {
    if (pres != null) pres.dispose();
}

Создание карт диаграмм

Картография – это визуализация области с данными. Карты диаграмм лучше всего использовать для сравнения данных или значений по географическим регионам.

Шаги: Создание карты диаграммы на Java | Шаги: Создание карты диаграммы PowerPoint на Java | Шаги: Создание карты диаграммы PowerPoint презентации на Java

Этот код Java показывает, как создать карту диаграмму:

Presentation pres = new Presentation();
try {
    IChart chart = pres.getSlides().get_Item(0).getShapes().addChart(ChartType.Map, 50, 50, 500, 400);
    pres.save("mapChart.pptx", SaveFormat.Pptx);
} finally {
    if (pres != null) pres.dispose();
}

Создание комбинированных диаграмм

Комбинированная диаграмма (или комбо диаграмма) — это диаграмма, которая объединяет два или более графиков на одном графике. Такая диаграмма позволяет вам выделить, сравнить или просмотреть различия между двумя (или более) наборами данных. Таким образом, вы видите взаимосвязь (если таковая имеется) между наборами данных.

комбинированный-график-ppt

Этот код Java показывает, как создать комбинированную диаграмму в PowerPoint:

private static void createComboChart()
{
    Presentation pres = new Presentation();
    {
        IChart chart = createChart(pres.getSlides().get_Item(0));
        addFirstSeriesToChart(chart);
        addSecondSeriesToChart(chart);
        pres.save("combo-chart.pptx", SaveFormat.Pptx);
    }
}

private static IChart createChart(ISlide slide)
{
    IChart chart = slide.getShapes().addChart(ChartType.ClusteredColumn, 50, 50, 500, 400);
    chart.getChartData().getSeries().clear();
    chart.getChartData().getCategories().clear();

    IChartDataWorkbook workbook = chart.getChartData().getChartDataWorkbook();
    final int worksheetIndex = 0;

    chart.getChartData().getSeries().add(workbook.getCell(worksheetIndex, 0, 1, "Серия 1"), chart.getType());
    chart.getChartData().getSeries().add(workbook.getCell(worksheetIndex, 0, 2, "Серия 2"), chart.getType());

    chart.getChartData().getCategories().add(workbook.getCell(worksheetIndex, 1, 0, "Категория 1"));
    chart.getChartData().getCategories().add(workbook.getCell(worksheetIndex, 2, 0, "Категория 2"));
    chart.getChartData().getCategories().add(workbook.getCell(worksheetIndex, 3, 0, "Категория 3"));

    IChartSeries series = chart.getChartData().getSeries().get_Item(0);

    series.getDataPoints().addDataPointForBarSeries(workbook.getCell(worksheetIndex, 1, 1, 20));
    series.getDataPoints().addDataPointForBarSeries(workbook.getCell(worksheetIndex, 2, 1, 50));
    series.getDataPoints().addDataPointForBarSeries(workbook.getCell(worksheetIndex, 3, 1, 30));
    
    series = chart.getChartData().getSeries().get_Item(1);

    series.getDataPoints().addDataPointForBarSeries(workbook.getCell(worksheetIndex, 1, 2, 30));
    series.getDataPoints().addDataPointForBarSeries(workbook.getCell(worksheetIndex, 2, 2, 10));
    series.getDataPoints().addDataPointForBarSeries(workbook.getCell(worksheetIndex, 3, 2, 60));

    return chart;
}

private static void addFirstSeriesToChart(IChart chart)
{
    IChartDataWorkbook workbook = chart.getChartData().getChartDataWorkbook();
    final int worksheetIndex = 0;

    IChartSeries series = chart.getChartData().getSeries().add(workbook.getCell(worksheetIndex, 0, 3, "Серия 3"), ChartType.ScatterWithSmoothLines);

    series.getDataPoints().addDataPointForScatterSeries(
            workbook.getCell(worksheetIndex, 0, 1, 3),
            workbook.getCell(worksheetIndex, 0, 2, 5));

    series.getDataPoints().addDataPointForScatterSeries(
            workbook.getCell(worksheetIndex, 1, 3, 10),
            workbook.getCell(worksheetIndex, 1, 4, 13));

    series.getDataPoints().addDataPointForScatterSeries(
            workbook.getCell(worksheetIndex, 2, 3, 20),
            workbook.getCell(worksheetIndex, 2, 4, 15));

    series.setPlotOnSecondAxis(true);
}

private static void addSecondSeriesToChart(IChart chart)
{
    IChartDataWorkbook workbook = chart.getChartData().getChartDataWorkbook();
    final int worksheetIndex = 0;

    IChartSeries series = chart.getChartData().getSeries().add(workbook.getCell(worksheetIndex, 0, 5, "Серия 4"),
            ChartType.ScatterWithStraightLinesAndMarkers);

    series.getDataPoints().addDataPointForScatterSeries(
            workbook.getCell(worksheetIndex, 1, 3, 5),
            workbook.getCell(worksheetIndex, 1, 4, 2));

    series.getDataPoints().addDataPointForScatterSeries(
            workbook.getCell(worksheetIndex, 1, 5, 10),
            workbook.getCell(worksheetIndex, 1, 6, 7));

    series.getDataPoints().addDataPointForScatterSeries(
            workbook.getCell(worksheetIndex, 2, 5, 15),
            workbook.getCell(worksheetIndex, 2, 6, 12));

    series.getDataPoints().addDataPointForScatterSeries(
            workbook.getCell(worksheetIndex, 3, 5, 12),
            workbook.getCell(worksheetIndex, 3, 6, 9));

    series.setPlotOnSecondAxis(true);
}

Обновление диаграмм

Шаги: Обновление диаграммы PowerPoint на Java | Шаги: Обновление диаграммы презентации на Java | Шаги: Обновление диаграммы PowerPoint презентации на Java

  1. Создайте экземпляр класса Presentation, представляющий презентацию, содержащую диаграмму, которую вы хотите обновить.
  2. Получите ссылку на слайд по его индексу.
  3. Пройдитесь по всем фигурам, чтобы найти нужную диаграмму.
  4. Получите доступ к рабочему листу данных диаграммы.
  5. Измените данные серии диаграммы, изменив значения серий.
  6. Добавьте новую серию и заполните данные в ней.
  7. Запишите измененную презентацию в файл PPTX.

Этот код Java показывает, как обновить диаграмму:

Presentation pres = new Presentation();
try {
    // Получает первый слайд
    ISlide sld = pres.getSlides().get_Item(0);

    // Получает диаграмму со стандартными данными
    IChart chart = (IChart)sld.getShapes().get_Item(0);

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

    // Получает рабочий лист данных диаграммы
    IChartDataWorkbook fact = chart.getChartData().getChartDataWorkbook();

    // Изменяет имя категории диаграммы
    fact.getCell(defaultWorksheetIndex, 1, 0, "Измененная категория 1");
    fact.getCell(defaultWorksheetIndex, 2, 0, "Измененная категория 2");

    // Получает первую серию диаграммы
    IChartSeries series = chart.getChartData().getSeries().get_Item(0);

    // Теперь обновляет данные серии
    fact.getCell(defaultWorksheetIndex, 0, 1, "Новое_ИмяСерии1");// Изменяет имя серии
    series.getDataPoints().get_Item(0).getValue().setData(90);
    series.getDataPoints().get_Item(1).getValue().setData(123);
    series.getDataPoints().get_Item(2).getValue().setData(44);

    // Получает вторую серию диаграммы
    series = chart.getChartData().getSeries().get_Item(1);

    // Теперь обновляет данные серии
    fact.getCell(defaultWorksheetIndex, 0, 2, "Новое_ИмяСерии2");// Изменяет имя серии
    series.getDataPoints().get_Item(0).getValue().setData(23);
    series.getDataPoints().get_Item(1).getValue().setData(67);
    series.getDataPoints().get_Item(2).getValue().setData(99);

    // Теперь добавляет новую серию
    chart.getChartData().getSeries().add(fact.getCell(defaultWorksheetIndex, 0, 3, "Серия 3"), chart.getType());

    // Получает третью серию диаграммы
    series = chart.getChartData().getSeries().get_Item(2);

    // Теперь заполняет данные серии
    series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 1, 3, 20));
    series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 2, 3, 50));
    series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 3, 3, 30));

    chart.setType(ChartType.ClusteredCylinder);

    // Сохраняет презентацию с диаграммой
    pres.save("AsposeChartModified_out.pptx", SaveFormat.Pptx);
} finally {
    if (pres != null) pres.dispose();
}

Установка диапазона данных для диаграмм

Чтобы установить диапазон данных для диаграммы, выполните следующее:

  1. Создайте экземпляр класса Presentation, представляющий презентацию, содержащую диаграмму.
  2. Получите ссылку на слайд по его индексу.
  3. Пройдите по всем фигурам, чтобы найти нужную диаграмму.
  4. Получите доступ к данным диаграммы и установите диапазон.
  5. Сохраните измененную презентацию в файл PPTX.

Этот код Java показывает, как установить диапазон данных для диаграммы:

Presentation pres = new Presentation();
try {
    ISlide slide = pres.getSlides().get_Item(0);
    IChart chart = (IChart)slide.getShapes().get_Item(0);
    
    chart.getChartData().setRange("Sheet1!A1:B4");
    
    pres.save("SetDataRange_out.pptx", SaveFormat.Pptx);
} finally {
    if (pres != null) pres.dispose();
}
``