图表计算
Contents
[
Hide
]
计算图表元素的实际值
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++,您可以从图表中隐藏 标题、纵轴、横轴 和 网格线。以下代码示例显示了如何使用这些属性。
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// 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); | |
为图表设置数据范围
Aspose.Slides for C++ 提供了最简单的 API,以最简单的方式为图表设置数据范围。要为图表设置数据范围:
- 打开包含图表的 Presentation 类的实例。
- 通过使用其索引获取幻灯片的引用。
- 遍历所有形状以找到所需的图表。
- 访问图表数据并设置范围。
- 将修改后的演示文稿保存为 PPTX 文件。
以下代码示例展示了如何更新图表。
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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); | |