Создание или обновление диаграмм PowerPoint в PHP
Обзор
В этой статье описывается, как создавать диаграммы PowerPoint Presentation на Java. Вы также можете обновлять диаграммы. Рассмотрены следующие темы.
Диаграмма: Normal
- Java Create PowerPoint Chart
- Java Create Presentation Chart
- Java Create PowerPoint Presentation Chart
Диаграмма: Scattered
- Java Create Scattered Chart
- Java Create PowerPoint Scattered Chart
- Java Create PowerPoint Presentation Scattered Chart
Диаграмма: Pie
- Java Create Pie Chart
- Java Create PowerPoint Pie Chart
- Java Create PowerPoint Presentation Pie Chart
Диаграмма: Tree Map
- Java Create Tree Map Chart
- Java Create PowerPoint Tree Map Chart
- Java Create PowerPoint Presentation Tree Map Chart
Диаграмма: Stock
- Java Create Stock Chart
- Java Create PowerPoint Stock Chart
- Java Create PowerPoint Presentation Stock Chart
Диаграмма: Box and Whisker
- Java Create Box and Whisker Chart
- Java Create PowerPoint Box and Whisker Chart
- Java Create PowerPoint Presentation Box and Whisker Chart
Диаграмма: Funnel
- Java Create Funnel Chart
- Java Create PowerPoint Funnel Chart
- Java Create PowerPoint Presentation Funnel Chart
Диаграмма: Sunburst
- Java Create Sunburst Chart
- Java Create PowerPoint Sunburst Chart
- Java Create PowerPoint Presentation Sunburst Chart
Диаграмма: Histogram
- Java Create Histogram Chart
- Java Create PowerPoint Histogram Chart
- Java Create PowerPoint Presentation Histogram Chart
Диаграмма: Radar
- Java Create Radar Chart
- Java Create PowerPoint Radar Chart
- Java Create PowerPoint Presentation Radar Chart
Диаграмма: Multi Category
- Java Create Multi Category Chart
- Java Create PowerPoint Multi Category Chart
- Java Create PowerPoint Presentation Multi Category Chart
Диаграмма: Map
- Java Create Map Chart
- Java Create PowerPoint Map Chart
- Java Create PowerPoint Presentation Map Chart
Действие: Update Chart
- Java Update PowerPoint Chart
- Java Update Presentation Chart
- Java Update PowerPoint Presentation Chart
Создание диаграммы
Диаграммы помогают быстро визуализировать данные и получать инсайты, которые могут быть не очевидны из таблицы или электронной таблицы.
Зачем создавать диаграммы?
Используя диаграммы, вы можете
- агрегировать, уплотнять или суммировать большие объёмы данных на одном слайде презентации
- выявлять шаблоны и тенденции в данных
- определять направление и динамику данных во времени или относительно конкретной единицы измерения
- обнаруживать выбросы, аномалии, отклонения, ошибки, бессмысленные данные и т.д.
- эффективно передавать или представлять сложные данные
В PowerPoint диаграммы создаются через функцию вставки, которая предоставляет шаблоны для построения множества типов диаграмм. С помощью Aspose.Slides вы можете создавать обычные диаграммы (на основе популярных типов) и пользовательские диаграммы.
Создание обычных диаграмм
Шаги: Создать диаграмму
- Шаги: Создать диаграмму PowerPoint
- Шаги: Создать диаграмму Presentation
- Шаги: Создать диаграмму PowerPoint Presentation
Кодовые шаги:
- Создать экземпляр класса Presentation.
- Получить ссылку на слайд по его индексу.
- Добавить диаграмму с некоторыми данными и указать предпочтительный тип диаграммы.
- Добавить заголовок к диаграмме.
- Доступ к рабочему листу данных диаграммы.
- Очистить все серии и категории по умолчанию.
- Добавить новые серии и категории.
- Добавить новые данные к сериям диаграммы.
- Указать цвет заливки для серии.
- Добавить подписи к сериям.
- Сохранить изменённую презентацию как файл 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("Sample Title");
$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, "Series 1"), $chart->getType());
$chart->getChartData()->getSeries()->add($fact->getCell($defaultWorksheetIndex, 0, 2, "Series 2"), $chart->getType());
# Добавляет новые категории
$chart->getChartData()->getCategories()->add($fact->getCell($defaultWorksheetIndex, 1, 0, "Caetegoty 1"));
$chart->getChartData()->getCategories()->add($fact->getCell($defaultWorksheetIndex, 2, 0, "Caetegoty 2"));
$chart->getChartData()->getCategories()->add($fact->getCell($defaultWorksheetIndex, 3, 0, "Caetegoty 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();
}
}
Создание разбросанных диаграмм
Разбросанные диаграммы (также известные как scatter‑plots или графики x‑y) часто используются для проверки шаблонов или демонстрации корреляций между двумя переменными.
Вы можете использовать разбросанную диаграмму, когда
- у вас есть парные числовые данные
- у вас есть 2 переменные, хорошо сочетающиеся друг с другом
- вы хотите определить, связаны ли 2 переменные
- у вас есть независимая переменная с множеством значений для зависимой переменной
Шаги: Создать разбросанную диаграмму | Шаги: Создать разбросанную диаграмму PowerPoint | Шаги: Создать разбросанную диаграмму PowerPoint Presentation
- Пожалуйста, следуйте шагам, описанным выше в разделе Создание обычных диаграмм
- На третьем шаге добавьте диаграмму с данными и укажите тип диаграммы как один из следующих
- ChartType::ScatterWithMarkers - Представляет разбросанную диаграмму с маркерами.
- ChartType::ScatterWithSmoothLinesAndMarkers - Разбросанная диаграмма, соединённая кривыми, с маркерами данных.
- ChartType::ScatterWithSmoothLines - Разбросанная диаграмма, соединённая кривыми, без маркеров данных.
- ChartType::ScatterWithStraightLinesAndMarkers - Разбросанная диаграмма, соединённая прямыми линиями, с маркерами данных.
- 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, "Series 1"), $chart->getType());
$chart->getChartData()->getSeries()->add($fact->getCell($defaultWorksheetIndex, 1, 3, "Series 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 Presentation
- Создать экземпляр класса Presentation.
- Получить ссылку на слайд по его индексу.
- Добавить диаграмму с данными по умолчанию и нужным типом (в данном случае ChartType.Pie).
- Доступ к ChartDataWorkbook.
- Очистить серии и категории по умолчанию.
- Добавить новые серии и категории.
- Добавить новые данные к сериям.
- Добавить новые точки и задать пользовательские цвета секторов круговой диаграммы.
- Установить подписи для серий.
- Установить линии‑выноски для подписей серий.
- Установить угол поворота для слайдов с круговой диаграммой.
- Сохранить изменённую презентацию в файл 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("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);
# Устанавливает индекс листа данных диаграммы
$defaultWorksheetIndex = 0;
# Получает лист данных диаграммы
$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"));
# Добавляет новые серии
$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));
# Не работает в новой версии
# Добавление новых точек и задание цвета секторов
# 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();
}
}
Создание линейных диаграмм
Линейные диаграммы (также известные как линейные графики) лучше всего подходят для демонстрации изменений значения во времени. С их помощью можно сравнивать большие объёмы данных, отслеживать изменения и тенденции, выделять аномалии в рядах данных и т.д.
- Создать экземпляр класса Presentation.
- Получить ссылку на слайд по его индексу.
- Добавить диаграмму с данными по умолчанию и типом
ChartType::Line. - Доступ к IChartDataWorkbook.
- Очистить серии и категории по умолчанию.
- Добавить новые серии и категории.
- Добавить новые данные к сериям.
- Сохранить изменённую презентацию в файл 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);
}
Создание диаграмм Tree Map
Диаграммы Tree Map лучше всего подходят для данных продаж, когда необходимо показать относительный размер категорий и одновременно быстро привлечь внимание к крупным вносителям в каждой категории.
Шаги: Создать диаграмму Tree Map | Шаги: Создать диаграмму Tree Map PowerPoint | Шаги: Создать диаграмму Tree Map PowerPoint Presentation
- Создать экземпляр класса Presentation .
- Получить ссылку на слайд по его индексу.
- Добавить диаграмму с данными по умолчанию и типом ChartType.TreeMap.
- Доступ к ChartDataWorkbook.
- Очистить серии и категории по умолчанию.
- Добавить новые серии и категории.
- Добавить новые данные к сериям.
- Сохранить изменённую презентацию в файл PPTX.
Этот PHP‑код демонстрирует, как создать диаграмму Tree Map:
$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", "Leaf1"));
$leaf->getGroupingLevels()->setGroupingItem(1, "Stem1");
$leaf->getGroupingLevels()->setGroupingItem(2, "Branch1");
$chart->getChartData()->getCategories()->add($wb->getCell(0, "C2", "Leaf2"));
$leaf = $chart->getChartData()->getCategories()->add($wb->getCell(0, "C3", "Leaf3"));
$leaf->getGroupingLevels()->setGroupingItem(1, "Stem2");
$chart->getChartData()->getCategories()->add($wb->getCell(0, "C4", "Leaf4"));
# ветка 2
$leaf = $chart->getChartData()->getCategories()->add($wb->getCell(0, "C5", "Leaf5"));
$leaf->getGroupingLevels()->setGroupingItem(1, "Stem3");
$leaf->getGroupingLevels()->setGroupingItem(2, "Branch2");
$chart->getChartData()->getCategories()->add($wb->getCell(0, "C6", "Leaf6"));
$leaf = $chart->getChartData()->getCategories()->add($wb->getCell(0, "C7", "Leaf7"));
$leaf->getGroupingLevels()->setGroupingItem(1, "Stem4");
$chart->getChartData()->getCategories()->add($wb->getCell(0, "C8", "Leaf8"));
$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();
}
}
Создание диаграмм Stock
Шаги: Создать диаграмму Stock | Шаги: Создать диаграмму Stock PowerPoint | Шаги: Создать диаграмму Stock PowerPoint Presentation
- Создать экземпляр класса Presentation .
- Получить ссылку на слайд по его индексу.
- Добавить диаграмму с данными по умолчанию и типом (ChartType.OpenHighLowClose).
- Доступ к ChartDataWorkbook.
- Очистить серии и категории по умолчанию.
- Добавить новые серии и категории.
- Добавить новые данные к сериям.
- Указать формат HiLowLines.
- Сохранить изменённую презентацию в файл PPTX.
Пример PHP‑кода для создания диаграммы Stock:
$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, "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());
$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();
}
}
Создание диаграмм Box and Whisker
Шаги: Создать диаграмму Box and Whisker | Шаги: Создать диаграмму Box and Whisker PowerPoint | Шаги: Создать диаграмму Box and Whisker PowerPoint Presentation
- Создать экземпляр класса Presentation .
- Получить ссылку на слайд по его индексу.
- Добавить диаграмму с данными по умолчанию и типом (ChartType.BoxAndWhisker).
- Доступ к ChartDataWorkbook.
- Очистить серии и категории по умолчанию.
- Добавить новые серии и категории.
- Добавить новые данные к сериям.
- Сохранить изменённую презентацию в файл PPTX.
Этот PHP‑код демонстрирует, как создать диаграмму Box and Whisker:
$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", "Category 1"));
$chart->getChartData()->getCategories()->add($wb->getCell(0, "A2", "Category 1"));
$chart->getChartData()->getCategories()->add($wb->getCell(0, "A3", "Category 1"));
$chart->getChartData()->getCategories()->add($wb->getCell(0, "A4", "Category 1"));
$chart->getChartData()->getCategories()->add($wb->getCell(0, "A5", "Category 1"));
$chart->getChartData()->getCategories()->add($wb->getCell(0, "A6", "Category 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();
}
}
Создание диаграмм Funnel
Шаги: Создать диаграмму Funnel | Шаги: Создать диаграмму Funnel PowerPoint | Шаги: Создать диаграмму Funnel PowerPoint Presentation
- Создать экземпляр класса Presentation .
- Получить ссылку на слайд по его индексу.
- Добавить диаграмму с данными по умолчанию и типом (ChartType.Funnel).
- Сохранить изменённую презентацию в файл PPTX.
PHP‑код, показывающий, как создать диаграмму Funnel:
$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", "Category 1"));
$chart->getChartData()->getCategories()->add($wb->getCell(0, "A2", "Category 2"));
$chart->getChartData()->getCategories()->add($wb->getCell(0, "A3", "Category 3"));
$chart->getChartData()->getCategories()->add($wb->getCell(0, "A4", "Category 4"));
$chart->getChartData()->getCategories()->add($wb->getCell(0, "A5", "Category 5"));
$chart->getChartData()->getCategories()->add($wb->getCell(0, "A6", "Category 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();
}
}
Создание диаграмм Sunburst
Шаги: Создать диаграмму Sunburst | Шаги: Создать диаграмму Sunburst PowerPoint | Шаги: Создать диаграмму Sunburst PowerPoint Presentation
- Создать экземпляр класса Presentation .
- Получить ссылку на слайд по его индексу.
- Добавить диаграмму с данными по умолчанию и типом (в данном случае ChartType.sunburst).
- Сохранить изменённую презентацию в файл PPTX.
Этот PHP‑код демонстрирует, как создать диаграмму Sunburst:
$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", "Leaf1"));
$leaf->getGroupingLevels()->setGroupingItem(1, "Stem1");
$leaf->getGroupingLevels()->setGroupingItem(2, "Branch1");
$chart->getChartData()->getCategories()->add($wb->getCell(0, "C2", "Leaf2"));
$leaf = $chart->getChartData()->getCategories()->add($wb->getCell(0, "C3", "Leaf3"));
$leaf->getGroupingLevels()->setGroupingItem(1, "Stem2");
$chart->getChartData()->getCategories()->add($wb->getCell(0, "C4", "Leaf4"));
# ветка 2
$leaf = $chart->getChartData()->getCategories()->add($wb->getCell(0, "C5", "Leaf5"));
$leaf->getGroupingLevels()->setGroupingItem(1, "Stem3");
$leaf->getGroupingLevels()->setGroupingItem(2, "Branch2");
$chart->getChartData()->getCategories()->add($wb->getCell(0, "C6", "Leaf6"));
$leaf = $chart->getChartData()->getCategories()->add($wb->getCell(0, "C7", "Leaf7"));
$leaf->getGroupingLevels()->setGroupingItem(1, "Stem4");
$chart->getChartData()->getCategories()->add($wb->getCell(0, "C8", "Leaf8"));
$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 Presentation
- Создать экземпляр класса Presentation .
- Получить ссылку на слайд по его индексу.
- Добавить диаграмму с данными по умолчанию и типом (ChartType.Histogram).
- Доступ к ChartDataWorkbook.
- Очистить серии и категории по умолчанию.
- Добавить новые серии и категории.
- Сохранить изменённую презентацию в файл 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 Presentation
- Создать экземпляр класса Presentation .
- Получить ссылку на слайд по его индексу.
- Добавить диаграмму с данными и указать тип
ChartType::Radar. - Сохранить изменённую презентацию в файл 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 Presentation
- Создать экземпляр класса Presentation .
- Получить ссылку на слайд по его индексу.
- Добавить диаграмму с данными по умолчанию и типом (ChartType.ClusteredColumn).
- Доступ к ChartDataWorkbook.
- Очистить серии и категории по умолчанию.
- Добавить новые серии и категории.
- Добавить новые данные к сериям.
- Сохранить изменённую презентацию в файл 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, "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"));
# Добавление серии
$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("AsposeChart_out.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
Создание картографических диаграмм
Картографическая диаграмма визуализирует область, содержащую данные. Такие диаграммы лучше всего использовать для сравнения данных или значений по географическим регионам.
Шаги: Создать картографическую диаграмму | Шаги: Создать картографическую диаграмму PowerPoint | Шаги: Создать картографическую диаграмму PowerPoint Presentation
Этот 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();
}
}
Создание комбинированных диаграмм
Комбинированная диаграмма (или combo‑chart) объединяет два или более типов диаграмм в одном графике. Такая диаграмма позволяет выделять, сравнивать или изучать различия между несколькими наборами данных, помогая выявлять взаимосвязи.

Следующий PHP‑код показывает, как создать комбинированную диаграмму, показанную выше, в презентации PowerPoint:
function createComboChart() {
$presentation = new Presentation();
$slide = $presentation->getSlides()->get_Item(0);
try {
$chart = createChartWithFirstSeries($slide);
addSecondSeriesToChart($chart);
addThirdSeriesToChart($chart);
setPrimaryAxesFormat($chart);
setSecondaryAxesFormat($chart);
$presentation->save("combo-chart.pptx", SaveFormat::Pptx);
} finally {
$presentation->dispose();
}
}
function createChartWithFirstSeries($slide) {
$chart = $slide->getShapes()->addChart(ChartType::ClusteredColumn, 50, 50, 600, 400);
// Установить заголовок диаграммы.
$chart->setTitle(true);
$chart->getChartTitle()->addTextFrameForOverriding("Chart Title");
$chart->getChartTitle()->setOverlay(false);
$titleParagraph = $chart->getChartTitle()->getTextFrameForOverriding()->getParagraphs()->get_Item(0);
$titleFormat = $titleParagraph->getParagraphFormat()->getDefaultPortionFormat();
$titleFormat->setFontBold(NullableBool::False);
$titleFormat->setFontHeight(18);
// Установить легенду диаграммы.
$chart->getLegend()->setPosition(LegendPositionType::Bottom);
$chart->getLegend()->getTextFormat()->getPortionFormat()->setFontHeight(12);
// Удалить автоматически сгенерированные серии и категории.
$chart->getChartData()->getSeries()->clear();
$chart->getChartData()->getCategories()->clear();
$worksheetIndex = 0;
$workbook = $chart->getChartData()->getChartDataWorkbook();
// Добавить новые категории.
$chart->getChartData()->getCategories()->add($workbook->getCell($worksheetIndex, 1, 0, "Category 1"));
$chart->getChartData()->getCategories()->add($workbook->getCell($worksheetIndex, 2, 0, "Category 2"));
$chart->getChartData()->getCategories()->add($workbook->getCell($worksheetIndex, 3, 0, "Category 3"));
$chart->getChartData()->getCategories()->add($workbook->getCell($worksheetIndex, 4, 0, "Category 4"));
// Добавить первую серию.
$seriesNameCell = $workbook->getCell($worksheetIndex, 0, 1, "Series 1");
$series = $chart->getChartData()->getSeries()->add($seriesNameCell, $chart->getType());
$series->getParentSeriesGroup()->setOverlap(-25);
$series->getParentSeriesGroup()->setGapWidth(220);
$series->getDataPoints()->addDataPointForBarSeries($workbook->getCell($worksheetIndex, 1, 1, 4.3));
$series->getDataPoints()->addDataPointForBarSeries($workbook->getCell($worksheetIndex, 2, 1, 2.5));
$series->getDataPoints()->addDataPointForBarSeries($workbook->getCell($worksheetIndex, 3, 1, 3.5));
$series->getDataPoints()->addDataPointForBarSeries($workbook->getCell($worksheetIndex, 4, 1, 4.5));
return $chart;
}
function addSecondSeriesToChart($chart) {
$workbook = $chart->getChartData()->getChartDataWorkbook();
$worksheetIndex = 0;
$seriesNameCell = $workbook->getCell($worksheetIndex, 0, 2, "Series 2");
$series = $chart->getChartData()->getSeries()->add($seriesNameCell, ChartType::ClusteredColumn);
$series->getParentSeriesGroup()->setOverlap(-25);
$series->getParentSeriesGroup()->setGapWidth(220);
$series->getDataPoints()->addDataPointForBarSeries($workbook->getCell($worksheetIndex, 1, 2, 2.4));
$series->getDataPoints()->addDataPointForBarSeries($workbook->getCell($worksheetIndex, 2, 2, 4.4));
$series->getDataPoints()->addDataPointForBarSeries($workbook->getCell($worksheetIndex, 3, 2, 1.8));
$series->getDataPoints()->addDataPointForBarSeries($workbook->getCell($worksheetIndex, 4, 2, 2.8));
}
function addThirdSeriesToChart($chart) {
$workbook = $chart->getChartData()->getChartDataWorkbook();
$worksheetIndex = 0;
$seriesNameCell = $workbook->getCell($worksheetIndex, 0, 3, "Series 3");
$series = $chart->getChartData()->getSeries()->add($seriesNameCell, ChartType::Line);
$series->getDataPoints()->addDataPointForLineSeries($workbook->getCell($worksheetIndex, 1, 3, 2.0));
$series->getDataPoints()->addDataPointForLineSeries($workbook->getCell($worksheetIndex, 2, 3, 2.0));
$series->getDataPoints()->addDataPointForLineSeries($workbook->getCell($worksheetIndex, 3, 3, 3.0));
$series->getDataPoints()->addDataPointForLineSeries($workbook->getCell($worksheetIndex, 4, 3, 5.0));
$series->setPlotOnSecondAxis(true);
}
function setPrimaryAxesFormat($chart) {
// Установить горизонтальную ось.
$horizontalAxis = $chart->getAxes()->getHorizontalAxis();
$horizontalAxis->getTextFormat()->getPortionFormat()->setFontHeight(12);
$horizontalAxis->getFormat()->getLine()->getFillFormat()->setFillType(FillType::NoFill);
setAxisTitle($horizontalAxis, "X Axis");
// Установить вертикальную ось.
$verticalAxis = $chart->getAxes()->getVerticalAxis();
$verticalAxis->getTextFormat()->getPortionFormat()->setFontHeight(12);
$verticalAxis->getFormat()->getLine()->getFillFormat()->setFillType(FillType::NoFill);
setAxisTitle($verticalAxis, "Y Axis 1");
// Установить цвет основных линий сетки по вертикали.
$majorGridLinesFormat = $verticalAxis->getMajorGridLinesFormat()->getLine()->getFillFormat();
$majorGridLinesFormat->setFillType(FillType::Solid);
$majorGridLinesFormat->getSolidFillColor()->setColor(new java("java.awt.Color", 217, 217, 217));
}
function setSecondaryAxesFormat($chart) {
// Установить вторичную горизонтальную ось.
$secondaryHorizontalAxis = $chart->getAxes()->getSecondaryHorizontalAxis();
$secondaryHorizontalAxis->setPosition(AxisPositionType::Bottom);
$secondaryHorizontalAxis->setCrossType(CrossesType::Maximum);
$secondaryHorizontalAxis->setVisible(false);
$secondaryHorizontalAxis->getMajorGridLinesFormat()->getLine()->getFillFormat()->setFillType(FillType::NoFill);
$secondaryHorizontalAxis->getMinorGridLinesFormat()->getLine()->getFillFormat()->setFillType(FillType::NoFill);
// Установить вторичную вертикальную ось.
$secondaryVerticalAxis = $chart->getAxes()->getSecondaryVerticalAxis();
$secondaryVerticalAxis->setPosition(AxisPositionType::Right);
$secondaryVerticalAxis->getTextFormat()->getPortionFormat()->setFontHeight(12);
$secondaryVerticalAxis->getFormat()->getLine()->getFillFormat()->setFillType(FillType::NoFill);
$secondaryVerticalAxis->getMajorGridLinesFormat()->getLine()->getFillFormat()->setFillType(FillType::NoFill);
$secondaryVerticalAxis->getMinorGridLinesFormat()->getLine()->getFillFormat()->setFillType(FillType::NoFill);
setAxisTitle($secondaryVerticalAxis, "Y Axis 2");
}
function setAxisTitle($axis, $axisTitle) {
$axis->setTitle(true);
$axis->getTitle()->setOverlay(false);
$titleParagraph = $axis->getTitle()->addTextFrameForOverriding($axisTitle)->getParagraphs()->get_Item(0);
$titleFormat = $titleParagraph->getParagraphFormat()->getDefaultPortionFormat();
$titleFormat->setFontBold(NullableBool::False);
$titleFormat->setFontHeight(12);
}
Обновление диаграмм
Шаги: Обновить диаграмму PowerPoint | Шаги: Обновить диаграмму Presentation | Шаги: Обновить диаграмму PowerPoint Presentation
- Создать экземпляр класса Presentation, представляющего презентацию, содержащую диаграмму, которую необходимо обновить.
- Получить ссылку на нужный слайд, используя его индекс.
- Пройтись по всем фигурам, чтобы найти требуемую диаграмму.
- Доступ к рабочему листу данных диаграммы.
- Изменить данные серии, изменив значения серии.
- Добавить новую серию и заполнить её данными.
- Сохранить изменённую презентацию в файл 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, "Modified Category 1");
$fact->getCell($defaultWorksheetIndex, 2, 0, "Modified Category 2");
# Выбор первой серии диаграммы
$series = $chart->getChartData()->getSeries()->get_Item(0);
# Обновление данных серии
$fact->getCell($defaultWorksheetIndex, 0, 1, "New_Series1");// Изменение имени серии
$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, "New_Series2");// Изменение имени серии
$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, "Series 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();
}
}
Установка диапазона данных для диаграммы
Чтобы установить диапазон данных для диаграммы, выполните следующее:
- Создать экземпляр класса Presentation, представляющего презентацию с диаграммой.
- Получить ссылку на слайд по его индексу.
- Пройтись по всем фигурам, чтобы найти требуемую диаграмму.
- Доступ к данным диаграммы и установка диапазона.
- Сохранить изменённую презентацию в файл 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->getChartData()->getCategories()->clear();
$fact = $chart->getChartData()->getChartDataWorkbook();
$chart->getChartData()->getSeries()->add($fact->getCell(0, 0, 1, "Series 1"), $chart->getType());
$series = $chart->getChartData()->getSeries()->get_Item(0);
$chart->getChartData()->getCategories()->add($fact->getCell(0, 1, 0, "C1"));
$series->getDataPoints()->addDataPointForLineSeries($fact->getCell(0, 1, 1, 24));
$chart->getChartData()->getCategories()->add($fact->getCell(0, 2, 0, "C2"));
$series->getDataPoints()->addDataPointForLineSeries($fact->getCell(0, 2, 1, 23));
$chart->getChartData()->getCategories()->add($fact->getCell(0, 3, 0, "C3"));
$series->getDataPoints()->addDataPointForLineSeries($fact->getCell(0, 3, 1, -10));
$chart->getChartData()->getCategories()->add($fact->getCell(0, 4, 0, "C4"));
$series->getDataPoints()->addDataPointForLineSeries($fact->getCell(0, 4, 1, null));
$chart->getChartData()->getSeries()->add($fact->getCell(0, 0, 2, "Series 2"), $chart->getType());
# Выбираем вторую серию диаграммы
$series2 = $chart->getChartData()->getSeries()->get_Item(1);
# Теперь заполняем данные серии
$series2->getDataPoints()->addDataPointForLineSeries($fact->getCell(0, 1, 2, 30));
$series2->getDataPoints()->addDataPointForLineSeries($fact->getCell(0, 2, 2, 10));
$series2->getDataPoints()->addDataPointForLineSeries($fact->getCell(0, 3, 2, 60));
$series2->getDataPoints()->addDataPointForLineSeries($fact->getCell(0, 4, 2, 40));
$chart->setLegend(true);
$chart->getLegend()->setOverlay(false);
$pres->save("DefaultMarkersInChart.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
FAQ
Какие типы диаграмм поддерживает Aspose.Slides?
Aspose.Slides поддерживает широкий спектр типов диаграмм, включая столбчатые, линейные, круговые, областные, разбросанные, гистограммы, радиальные и многие другие. Это позволяет выбрать оптимальный тип диаграммы для ваших задач визуализации данных.
Как добавить новую диаграмму на слайд?
Чтобы добавить диаграмму, сначала создайте экземпляр класса Presentation, получите нужный слайд по индексу, а затем вызовите метод добавления диаграммы, указав тип диаграммы и начальные данные. Таким образом диаграмма интегрируется непосредственно в вашу презентацию.
Как обновить данные, отображаемые в диаграмме?
Вы можете обновить данные диаграммы, получив доступ к её рабочему листу (ChartDataWorkbook), очистив любые серии и категории по умолчанию и добавив свои собственные данные. Это позволяет освежить диаграмму в соответствии с актуальными данными.
Можно ли настроить внешний вид диаграммы?
Да, Aspose.Slides предоставляет обширные возможности настройки. Вы можете менять цвета, шрифты, подписи, легенды и другие элементы форматирования, адаптируя внешний вид диаграммы под конкретные требования дизайна.