Calculs de Diagrammes

Calculer les Valeurs Réelles des Éléments du Diagramme

Aspose.Slides pour C++ fournit une API simple pour obtenir ces propriétés. Cela vous aidera à calculer les valeurs réelles des éléments du diagramme. Les valeurs réelles incluent la position des éléments qui mettent en œuvre l’interface IActualLayout (IActualLayout::get_ActualX(), IActualLayout::get_ActualY(), IActualLayout::get_ActualWidth(), IActualLayout::get_ActualHeight()) et les valeurs d’axes réelles (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();

// Enregistrement de la présentation
pres->Save(u"Result.pptx", SaveFormat::Pptx);

Calculer la Position Réelle des Éléments Parent du Diagramme

Aspose.Slides pour C++ fournit une API simple pour obtenir ces propriétés. Les méthodes de IActualLayout fournissent des informations sur la position réelle de l’élément parent du diagramme. Il est nécessaire d’appeler la méthode IChart::ValidateChartLayout() au préalable pour remplir les propriétés avec des valeurs réelles.

// Création d'une présentation vide
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();

Masquer des Informations du Diagramme

Ce sujet vous aide à comprendre comment masquer des informations du diagramme. En utilisant Aspose.Slides pour C++, vous pouvez masquer Titre, Axe Vertical, Axe Horizontal et Lignes de Grille du diagramme. L’exemple de code ci-dessous montre comment utiliser ces propriétés.

// The path to the documents directory.
const String outPath = u"../out/HideInformationFromChart.pptx";
// Load the desired the presentation
SharedPtr<Presentation> pres = MakeObject<Presentation>();
SharedPtr<IChart> chart = pres->get_Slides()->idx_get(0)->get_Shapes()->AddChart(ChartType::LineWithMarkers, 140, 118, 320, 370);
//Hiding chart Title
chart->set_HasTitle(false);
///Hiding Values axis
chart->get_Axes()->get_VerticalAxis()->set_IsVisible(false);
//Category Axis visibility
chart->get_Axes()->get_HorizontalAxis()->set_IsVisible(false);
//Hiding Legend
chart->set_HasLegend(false);
//Hiding MajorGridLines
chart->get_Axes()->get_HorizontalAxis()->get_MajorGridLinesFormat()->get_Line()->get_FillFormat()->set_FillType(FillType::NoFill);
for (int i = 0; i < chart->get_ChartData()->get_Series()->get_Count(); i++)
{
chart->get_ChartData()->get_Series()->RemoveAt(i);
}
SharedPtr<IChartSeries> series = chart->get_ChartData()->get_Series()->idx_get(0);
series->get_Marker()->set_Symbol(MarkerStyleType::Circle);
series->get_Labels()->get_DefaultDataLabelFormat()->set_ShowValue(true);
series->get_Labels()->get_DefaultDataLabelFormat()->set_Position(LegendDataLabelPosition::Top);
series->get_Marker()->set_Size(15);
//Setting series line color
series->get_Format()->get_Line()->get_FillFormat()->set_FillType(FillType::Solid);
series->get_Format()->get_Line()->get_FillFormat()->get_SolidFillColor()->set_Color(Color::get_Magenta());
series->get_Format()->get_Line()->set_DashStyle(LineDashStyle::Solid);
//Write the PPTX to Disk
pres->Save(outPath, Aspose::Slides::Export::SaveFormat::Pptx);

Définir la Plage de Données pour le Diagramme

Aspose.Slides pour C++ a fourni l’API la plus simple pour définir la plage de données pour le diagramme de la manière la plus simple. Pour définir la plage de données pour le diagramme :

  • Ouvrez une instance de la classe Presentation contenant le diagramme.
  • Obtenez la référence d’une diapositive en utilisant son index.
  • Parcourez toutes les formes pour trouver le diagramme désiré.
  • Accédez aux données du diagramme et définissez la plage.
  • Enregistrez la présentation modifiée en tant que fichier PPTX.

Les exemples de code suivants montrent comment mettre à jour un diagramme.

For complete examples and data files, please go to https://github.com/aspose-slides/Aspose.Slides-for-C
// The path to the documents directory.
const String templatePath = u"../templates/ExistingChart.pptx";
const String outPath = u"../out/DataRange_out.pptx";
//Instantiate Presentation class that represents PPTX file
SharedPtr<Presentation> pres = MakeObject<Presentation>(templatePath);
//Access first slide
SharedPtr<ISlide> slide = pres->get_Slides()->idx_get(0);
// Add chart with default data
// SharedPtr<IChart> chart = DynamicCast<Aspose::Slides::Charts::IChart>(slide->get_Shapes()->idx_get(0));
auto chart = DynamicCast<Aspose::Slides::Charts::Chart>(slide->get_Shapes()->idx_get(0));
//Not working
//Set data range
// chart->get_ChartData()->SetRange("Sheet1!A1:B4");
// Write the presentation file to disk
pres->Save(outPath, Aspose::Slides::Export::SaveFormat::Pptx);