Optimalizace výpočtů grafů pro prezentace v C++

Přehled

Aspose.Slides poskytuje rozhraní API pro práci s výpočty grafů a daty rozložení v prezentacích. Tento článek ukazuje, jak získat skutečné hodnoty prvků grafu, včetně skutečné polohy a velikosti prvků, které implementují IActualLayout, a skutečné hodnoty os grafu. Také vysvětluje, že tyto hodnoty jsou vyplněny po ověření rozložení grafu.

Kromě toho článek ukazuje, jak získat skutečnou polohu nadřazených prvků grafu a jak skrýt komponenty grafu, jako jsou název, osy, legenda a mřížkové čáry. Společně tyto příklady pomáhají kontrolovat informace o rozložení grafu a programově řídit viditelnost prvků grafu v prezentacích PowerPoint.

Vypočítat skutečné hodnoty prvků grafu

Aspose.Slides for C++ poskytuje jednoduché API pro získání těchto vlastností. To vám pomůže vypočítat skutečné hodnoty prvků grafu. Skutečné hodnoty zahrnují polohu prvků, které implementují rozhraní IActualLayout (IActualLayout::get_ActualX(), IActualLayout::get_ActualY(), IActualLayout::get_ActualWidth(), IActualLayout::get_ActualHeight()) a skutečné hodnoty os (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();

// Ukládání prezentace
pres->Save(u"Result.pptx", SaveFormat::Pptx);

Vypočítat skutečnou polohu nadřazených prvků grafu

Aspose.Slides for C++ poskytuje jednoduché API pro získání těchto vlastností. Metody IActualLayout poskytují informace o skutečné poloze nadřazeného prvku grafu. Je nutné předem zavolat metodu IChart::ValidateChartLayout(), aby se vlastnosti naplnily skutečnými hodnotami.

// Vytvoření prázdné prezentace
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();

Skrýt prvky grafu

Tato téma vám pomůže pochopit, jak skrýt informace v grafu. Pomocí Aspose.Slides for C++ můžete skrýt Název, svislou osu, vodorovnou osu a Mřížkové čáry v grafu. Níže uvedený příklad kódu ukazuje, jak tyto vlastnosti použít.

Nastavit datový rozsah pro graf

Aspose.Slides for C++ poskytuje nejjednodušší API pro nastavení datového rozsahu grafu co nejjednodušším způsobem. Pro nastavení datového rozsahu grafu:

  • Otevřete instanci třídy Presentation obsahující graf.
  • Získejte odkaz na snímek pomocí jeho Indexu.
  • Projděte všechny tvary a najděte požadovaný graf.
  • Přistupte k datům grafu a nastavte rozsah.
  • Uložte upravenou prezentaci jako soubor PPTX.

Následující ukázky kódu ukazují, jak aktualizovat graf.

Často kladené otázky

Fungují externí sešity Excelu jako zdroj dat a jak to ovlivňuje přepočet?

Ano. Graf může odkazovat na externí sešit: když připojíte nebo obnovíte externí zdroj, vzorce a hodnoty jsou převzaty z tohoto sešitu a graf odráží aktualizace během operací otevření/úpravy. API vám umožní specifikovat externí sešit cestu a spravovat propojená data.

Mohu vypočítat a zobrazit čáry trendu bez implementace regrese sami?

Ano. Čáry trendu (lineární, exponenciální a další) jsou přidávány a aktualizovány pomocí Aspose.Slides; jejich parametry jsou automaticky přepočítány z dat řady, takže není nutné implementovat vlastní výpočty.

Pokud má prezentace několik grafů s externími odkazy, mohu ovládat, který sešit každý graf používá pro vypočítané hodnoty?

Ano. Každý graf může odkazovat na svůj vlastní externí sešit, nebo můžete pro každý graf vytvořit/nahradit externí sešit nezávisle na ostatních.