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

Обзор

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

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

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

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

Диаграмма: Карта дерева

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

Диаграмма: Коробка и усы

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

Диаграмма: Солнечный всплеск

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

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

Диаграмма: Мультикатегория

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

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

Создать диаграмму

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

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

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

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

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

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

Шаги: Создать диаграмму

Код шагов:

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

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

  # Создает экземпляр класса презентации, представляющего файл PPTX
  $pres = new Presentation();
  try {
    # Получает первый слайд
    $sld = $pres->getSlides()->get_Item(0);
    # Добавляет диаграмму с её стандартными данными
    $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);
    # Устанавливает индекс для рабочей таблицы данных диаграммы
    $defaultWorksheetIndex = 0;
    # Получает рабочий лист данных диаграммы
    $fact = $chart->getChartData()->getChartDataWorkbook();
    # Удаляет стандартные сгенерированные серии и категории
    $chart->getChartData()->getSeries()->clear();
    $chart->getChartData()->getCategories()->clear();
    $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"));
    # Берет первую серию диаграммы
    $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(java("java.awt.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(java("java.awt.Color")->GREEN);
    # Создает пользовательские метки для каждой категории для новой серии
    # Устанавливает первую метку для отображения названия категории
    $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 (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

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

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

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

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

Шаги: Создать разбросанную диаграмму | Шаги: Создать разбросанную диаграмму PowerPoint | Шаги: Создать разбросанную диаграмму презентации PowerPoint

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

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

  # Создает экземпляр класса презентации, представляющего файл PPTX
  $pres = new Presentation();
  try {
    # Получает первый слайд
    $slide = $pres->getSlides()->get_Item(0);
    # Создает стандартную диаграмму
    $chart = $slide->getShapes()->addChart(ChartType::ScatterWithSmoothLines, 0, 0, 400, 400);
    # Получает индекс рабочего листа данных диаграммы по умолчанию
    $defaultWorksheetIndex = 0;
    # Получает рабочий лист данных диаграммы
    $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());
    # Берет первую серию диаграммы
    $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 (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

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

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

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

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

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

  # Создает экземпляр класса презентации, представляющего файл PPTX
  $pres = new Presentation();
  try {
    # Получает первый слайд
    $slides = $pres->getSlides()->get_Item(0);
    # Добавляет диаграмму со стандартными данными
    $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);
    # Устанавливает индекс для рабочей таблицы данных диаграммы
    $defaultWorksheetIndex = 0;
    # Получает рабочий лист данных диаграммы
    $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, "2-й квт"));
    $chart->getChartData()->getCategories()->add($fact->getCell(0, 3, 0, "3-й квт"));
    # Добавляет новые серии
    $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);
    $point = $series->getDataPoints()->get_Item(0);
    $point->getFormat()->getFill()->setFillType(FillType::Solid);
    $point->getFormat()->getFill()->getSolidFillColor()->setColor(java("java.awt.Color")->CYAN);
    # Устанавливает границу сектора
    $point->getFormat()->getLine()->getFillFormat()->setFillType(FillType::Solid);
    $point->getFormat()->getLine()->getFillFormat()->getSolidFillColor()->setColor(java("java.awt.Color")->GRAY);
    $point->getFormat()->getLine()->setWidth(3.0);
    $point->getFormat()->getLine()->setStyle(LineStyle->ThinThick);
    $point->getFormat()->getLine()->setDashStyle(LineDashStyle->DashDot);
    $point1 = $series->getDataPoints()->get_Item(1);
    $point1->getFormat()->getFill()->setFillType(FillType::Solid);
    $point1->getFormat()->getFill()->getSolidFillColor()->setColor(java("java.awt.Color")->ORANGE);
    # Устанавливает границу сектора
    $point1->getFormat()->getLine()->getFillFormat()->setFillType(FillType::Solid);
    $point1->getFormat()->getLine()->getFillFormat()->getSolidFillColor()->setColor(java("java.awt.Color")->BLUE);
    $point1->getFormat()->getLine()->setWidth(3.0);
    $point1->getFormat()->getLine()->setStyle(LineStyle->Single);
    $point1->getFormat()->getLine()->setDashStyle(LineDashStyle->LargeDashDot);
    $point2 = $series->getDataPoints()->get_Item(2);
    $point2->getFormat()->getFill()->setFillType(FillType::Solid);
    $point2->getFormat()->getFill()->getSolidFillColor()->setColor(java("java.awt.Color")->YELLOW);
    # Устанавливает границу сектора
    $point2->getFormat()->getLine()->getFillFormat()->setFillType(FillType::Solid);
    $point2->getFormat()->getLine()->getFillFormat()->getSolidFillColor()->setColor(java("java.awt.Color")->RED);
    $point2->getFormat()->getLine()->setWidth(2.0);
    $point2->getFormat()->getLine()->setStyle(LineStyle->ThinThin);
    $point2->getFormat()->getLine()->setDashStyle(LineDashStyle->LargeDashDotDot);
    # Создает пользовательские метки для каждой категории для новой серии
    $lbl1 = $series->getDataPoints()->get_Item(0)->getLabel();
    # lbl.ShowCategoryName = true;
    $lbl1->getDataLabelFormat()->setShowValue(true);
    $lbl2 = $series->getDataPoints()->get_Item(1)->getLabel();
    $lbl2->getDataLabelFormat()->setShowValue(true);
    $lbl2->getDataLabelFormat()->setShowLegendKey(true);
    $lbl2->getDataLabelFormat()->setShowPercentage(true);
    $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 (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

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

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

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

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

  $pres = new Presentation();
  try {
    $lineChart = $pres->getSlides()->get_Item(0)->getShapes()->addChart(ChartType::Line, 10, 50, 600, 350);
    $pres->save("lineChart.pptx", SaveFormat::Pptx);
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

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

  $lineChart = $pres->getSlides()->get_Item(0)->getShapes()->addChart(ChartType::Line, 10, 50, 600, 350);
  foreach($lineChart->getChartData()->getSeries() as $series) {
    $series->getFormat()->getLine()->setDashStyle(LineDashStyle->Dash);
  }

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

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

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

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

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

  $pres = new Presentation();
  try {
    $chart = $pres->getSlides()->get_Item(0)->getShapes()->addChart(ChartType::Treemap, 50, 50, 500, 400);
    $chart->getChartData()->getCategories()->clear();
    $chart->getChartData()->getSeries()->clear();
    $wb = $chart->getChartData()->getChartDataWorkbook();
    $wb->clear(0);
    # ветка 1
    $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"));
    $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 (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

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

Шаги: Создать фондовую диаграмму | Шаги: Создать фондовую диаграмму PowerPoint | Шаги: Создать фондовую диаграмму презентации PowerPoint

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

Пример PHP кода, используемого для создания фондовой диаграммы:

  $pres = new Presentation();
  try {
    $chart = $pres->getSlides()->get_Item(0)->getShapes()->addChart(ChartType::OpenHighLowClose, 50, 50, 600, 400, false);
    $chart->getChartData()->getSeries()->clear();
    $chart->getChartData()->getCategories()->clear();
    $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, "Открыть"), $chart->getType());
    $chart->getChartData()->getSeries()->add($wb->getCell(0, 0, 2, "Высокий"), $chart->getType());
    $chart->getChartData()->getSeries()->add($wb->getCell(0, 0, 3, "Низкий"), $chart->getType());
    $chart->getChartData()->getSeries()->add($wb->getCell(0, 0, 4, "Закрыть"), $chart->getType());
    $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);
    foreach($chart->getChartData()->getSeries() as $ser) {
      $ser->getFormat()->getLine()->getFillFormat()->setFillType(FillType::NoFill);
    }
    $pres->save("output.pptx", SaveFormat::Pptx);
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

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

Шаги: Создать диаграмму коробки и усов | Шаги: Создать диаграмму коробки и усов PowerPoint | Шаги: Создать диаграмму коробки и усов презентации PowerPoint

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

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

  $pres = new Presentation();
  try {
    $chart = $pres->getSlides()->get_Item(0)->getShapes()->addChart(ChartType::BoxAndWhisker, 50, 50, 500, 400);
    $chart->getChartData()->getCategories()->clear();
    $chart->getChartData()->getSeries()->clear();
    $wb = $chart->getChartData()->getChartDataWorkbook();
    $wb->clear(0);
    $chart->getChartData()->getCategories()->add($wb->getCell(0, "A1", "Категория 1"));
    $chart->getChartData()->getCategories()->add($wb->getCell(0, "A2", "Категория 1"));
    $chart->getChartData()->getCategories()->add($wb->getCell(0, "A3", "Категория 1"));
    $chart->getChartData()->getCategories()->add($wb->getCell(0, "A4", "Категория 1"));
    $chart->getChartData()->getCategories()->add($wb->getCell(0, "A5", "Категория 1"));
    $chart->getChartData()->getCategories()->add($wb->getCell(0, "A6", "Категория 1"));
    $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 (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

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

Шаги: Создать воронкообразную диаграмму | Шаги: Создать воронкообразную диаграмму PowerPoint | Шаги: Создать воронкообразную диаграмму презентации PowerPoint

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

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

  $pres = new Presentation();
  try {
    $chart = $pres->getSlides()->get_Item(0)->getShapes()->addChart(ChartType::Funnel, 50, 50, 500, 400);
    $chart->getChartData()->getCategories()->clear();
    $chart->getChartData()->getSeries()->clear();
    $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"));
    $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 (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

Создание диаграмм солнечного всплеска

Шаги: Создать диаграмму солнечного всплеска | Шаги: Создать диаграмму солнечного всплеска PowerPoint | Шаги: Создать диаграмму солнечного всплеска презентации PowerPoint

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

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

  $pres = new Presentation();
  try {
    $chart = $pres->getSlides()->get_Item(0)->getShapes()->addChart(ChartType::Sunburst, 50, 50, 500, 400);
    $chart->getChartData()->getCategories()->clear();
    $chart->getChartData()->getSeries()->clear();
    $wb = $chart->getChartData()->getChartDataWorkbook();
    $wb->clear(0);
    # ветка 1
    $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"));
    $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 (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

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

Шаги: Создать гистограммную диаграмму | Шаги: Создать гистограммную диаграмму PowerPoint | Шаги: Создать гистограммную диаграмму презентации PowerPoint

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

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

  $pres = new Presentation();
  $chart = $pres->getSlides()->get_Item(0)->getShapes()->addChart(ChartType::Histogram, 50, 50, 500, 400);
  $chart->getChartData()->getCategories()->clear();
  $chart->getChartData()->getSeries()->clear();
  $wb = $chart->getChartData()->getChartDataWorkbook();
  $wb->clear(0);
  $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);

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

Шаги: Создать радарную диаграмму | Шаги: Создать радарную диаграмму PowerPoint | Шаги: Создать радарную диаграмму презентации PowerPoint

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

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

  $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 (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

Создание мультикатегориальных диаграмм

Шаги: Создать мультикатегориальную диаграмму | Шаги: Создать мультикатегориальную диаграмму PowerPoint | Шаги: Создать мультикатегориальную диаграмму презентации PowerPoint

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

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

  $pres = new Presentation();
  try {
    $ch = $pres->getSlides()->get_Item(0)->getShapes()->addChart(ChartType::ClusteredColumn, 100, 100, 600, 450);
    $ch->getChartData()->getSeries()->clear();
    $ch->getChartData()->getCategories()->clear();
    $fact = $ch->getChartData()->getChartDataWorkbook();
    $fact->clear(0);
    $defaultWorksheetIndex = 0;
    $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"));
    # Добавление серий
    $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 (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

Создание картографических диаграмм

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

Шаги: Создать картографическую диаграмму | Шаги: Создать картографическую диаграмму PowerPoint | Шаги: Создать картографическую диаграмму презентации PowerPoint

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

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

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

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

combination-chart-ppt

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


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

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

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

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

  $pres = new Presentation();
  try {
    # Получает первый слайд
    $sld = $pres->getSlides()->get_Item(0);
    # Получает диаграмму со стандартными данными
    $chart = $sld->getShapes()->get_Item(0);
    # Устанавливает индекс рабочей таблицы данных диаграммы
    $defaultWorksheetIndex = 0;
    # Получает рабочий лист данных диаграммы
    $fact = $chart->getChartData()->getChartDataWorkbook();
    # Изменяет название категории диаграммы
    $fact->getCell($defaultWorksheetIndex, 1, 0, "Измененная категория 1");
    $fact->getCell($defaultWorksheetIndex, 2, 0, "Измененная категория 2");
    # Берет первую серию диаграммы
    $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 (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

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

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

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

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

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

Использование стандартных маркеров в диаграммах

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

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

  $pres = new Presentation();
  try {
    $slide = $pres->getSlides()->get_Item(0);
    $chart = $slide->getShapes()->addChart(ChartType::LineWithMarkers, 10, 10, 400, 400);
    $chart->getChartData()->getSeries()->clear();
    $chart->