Оптимизация вычислений диаграмм для презентаций на C++

Вычисление фактических значений элементов диаграммы

Aspose.Slides for C++ предоставляет простой API для получения этих свойств. Это поможет вам вычислить фактические значения элементов диаграммы. Фактические значения включают позицию элементов, реализующих интерфейс IActualLayout (IActualLayout::get_ActualX(), IActualLayout::get_ActualY(), IActualLayout::get_ActualWidth(), IActualLayout::get_ActualHeight()) и фактические значения осей (IAxis::get_ActualMaxValue(), IAxis::get_ActualMinValue(), IAxis::get_ActualMajorUnit(), IAxis::get_ActualMinorUnit(), IAxis::get_ActualMajorUnitScale(), IAxis::get_ActualMinorUnitScale()).

auto pres = System::MakeObject<Presentation>(u"test.pptx");
    
auto chart = System::ExplicitCast<Chart>(pres->get_Slides()->idx_get(0)->get_Shapes()->AddChart(ChartType::ClusteredColumn, 100.0f, 100.0f, 500.0f, 350.0f));
chart->ValidateChartLayout();

double x = chart->get_PlotArea()->get_ActualX();
double y = chart->get_PlotArea()->get_ActualY();
double w = chart->get_PlotArea()->get_ActualWidth();
double h = chart->get_PlotArea()->get_ActualHeight();

// Сохранение презентации
pres->Save(u"Result.pptx", SaveFormat::Pptx);

Вычисление фактической позиции родительских элементов диаграммы

Aspose.Slides for C++ предоставляет простой API для получения этих свойств. Методы IActualLayout предоставляют информацию о фактической позиции родительского элемента диаграммы. Необходимо предварительно вызвать метод IChart::ValidateChartLayout(), чтобы заполнить свойства фактическими значениями.

// Создание пустой презентации
auto pres = System::MakeObject<Presentation>();

auto chart = System::ExplicitCast<Chart>(pres->get_Slides()->idx_get(0)->get_Shapes()->AddChart(ChartType::ClusteredColumn, 100.0f, 100.0f, 500.0f, 350.0f));
chart->ValidateChartLayout();

double x = chart->get_PlotArea()->get_ActualX();
double y = chart->get_PlotArea()->get_ActualY();
double w = chart->get_PlotArea()->get_ActualWidth();
double h = chart->get_PlotArea()->get_ActualHeight();

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

Эта тема поможет вам понять, как скрыть информацию в диаграмме. С помощью Aspose.Slides for C++ вы можете скрыть Заголовок, Вертикальную ось, Горизонтальную ось и Линии сетки в диаграмме. Ниже приведён пример кода, показывающий, как использовать эти свойства.

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

Aspose.Slides for C++ предоставил самый простой API для установки диапазона данных диаграммы самым удобным способом. Чтобы установить диапазон данных для диаграммы:

  • Откройте экземпляр класса Presentation, содержащий диаграмму.
  • Получите ссылку на слайд, используя его Index.
  • Пройдитесь по всем фигурам, чтобы найти нужную диаграмму.
  • Получите доступ к данным диаграммы и задайте диапазон.
  • Сохраните изменённую презентацию в файл PPTX.

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

FAQ

Работают ли внешние рабочие книги Excel в качестве источника данных и как это влияет на пересчёт?

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

Могу ли я вычислять и отображать линии тренда без самостоятельной реализации регрессии?

Да. Линии тренда (линейные, экспоненциальные и другие) добавляются и обновляются Aspose.Slides; их параметры автоматически пересчитываются из данных рядов, поэтому вам не требуется реализовывать собственные расчёты.

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

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