إنشاء OOXML الرسوم البيانية من الصفر

إنشاء OOXML مخططات من البداية باستخدام Aspose.Words

Aspose.Words يوفر طريقة InsertChart التي تمت إضافتها إلى فئة DocumentBuilder. لذلك، دعونا نرى كيفية إدراج مخطط عمود بسيط في المستند باستخدام طريقة DocumentBuilder->InsertChart:

كيفية إدراج مخطط العمود

يوضح مثال الكود الموضح أدناه كيفية إدراج مخطط عمود.

For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-C
System::SharedPtr<Document> doc = System::MakeObject<Document>();
System::SharedPtr<DocumentBuilder> builder = System::MakeObject<DocumentBuilder>(doc);
// Add chart with default data. You can specify different chart types and sizes.
System::SharedPtr<Shape> shape = builder->InsertChart(ChartType::Column, 432, 252);
// Chart property of Shape contains all chart related options.
System::SharedPtr<Chart> chart = shape->get_Chart();
// Get chart series collection.
System::SharedPtr<ChartSeriesCollection> seriesColl = chart->get_Series();
// Check series count.
std::cout << seriesColl->get_Count() << std::endl;
// Delete default generated series.
seriesColl->Clear();
// Create category names array, in this example we have two categories.
System::ArrayPtr<System::String> categories = System::MakeArray<System::String>({u"AW Category 1", u"AW Category 2"});
// Adding new series. Please note, data arrays must not be empty and arrays must be the same size.
seriesColl->Add(u"AW Series 1", categories, System::MakeArray<double>({1, 2}));
seriesColl->Add(u"AW Series 2", categories, System::MakeArray<double>({3, 4}));
seriesColl->Add(u"AW Series 3", categories, System::MakeArray<double>({5, 6}));
seriesColl->Add(u"AW Series 4", categories, System::MakeArray<double>({7, 8}));
seriesColl->Add(u"AW Series 5", categories, System::MakeArray<double>({9, 10}));
System::String outputPath = outputDataDir + u"CreateColumnChart.InsertSimpleColumnChart.doc";
doc->Save(outputPath);

ينتج الكود النتيجة التالية:

insert-column-chart-aspose-words-cpp-1

هناك أربعة أحمال زائدة مختلفة لطريقة إضافة السلسلة، والتي تم الكشف عنها لتغطية جميع المتغيرات الممكنة لمصادر البيانات لجميع أنواع المخططات:

For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-C
System::SharedPtr<Document> doc = System::MakeObject<Document>();
System::SharedPtr<DocumentBuilder> builder = System::MakeObject<DocumentBuilder>(doc);
// Insert Column chart.
System::SharedPtr<Shape> shape = builder->InsertChart(ChartType::Column, 432, 252);
System::SharedPtr<Chart> chart = shape->get_Chart();
// Use this overload to add series to any type of Bar, Column, Line and Surface charts.
chart->get_Series()->Add(u"AW Series 1", System::MakeArray<System::String>({u"AW Category 1", u"AW Category 2"}), System::MakeArray<double>({1, 2}));
System::String outputPath = outputDataDir + u"CreateColumnChart.InsertColumnChart.doc";
doc->Save(outputPath);

ينتج الكود النتيجة التالية:

insert-column-chart-aspose-words-cpp-2

كيفية InsertScatterChart

يوضح مثال الكود الموضح أدناه كيفية إدراج مخطط مبعثر.

For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-C
// The path to the documents directory.
System::String outputDataDir = GetOutputDataDir_WorkingWithCharts();
System::SharedPtr<Document> doc = System::MakeObject<Document>();
System::SharedPtr<DocumentBuilder> builder = System::MakeObject<DocumentBuilder>(doc);
// Insert Scatter chart.
System::SharedPtr<Shape> shape = builder->InsertChart(ChartType::Scatter, 432, 252);
System::SharedPtr<Chart> chart = shape->get_Chart();
// Use this overload to add series to any type of Scatter charts.
chart->get_Series()->Add(u"AW Series 1", System::MakeArray<double>({0.7, 1.8, 2.6}), System::MakeArray<double>({2.7, 3.2, 0.8}));
System::String outputPath = outputDataDir + u"InsertScatterChart.docx";
doc->Save(outputPath);

ينتج الكود النتيجة التالية:

insert-scatter-chart-aspose-words-cpp-1

كيفية إدراج مخطط المنطقة

يوضح مثال الكود الموضح أدناه كيفية إدراج مخطط منطقة.

For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-C
// The path to the documents directory.
System::String outputDataDir = GetOutputDataDir_WorkingWithCharts();
System::SharedPtr<Document> doc = System::MakeObject<Document>();
System::SharedPtr<DocumentBuilder> builder = System::MakeObject<DocumentBuilder>(doc);
// Insert Area chart.
System::SharedPtr<Shape> shape = builder->InsertChart(ChartType::Area, 432, 252);
System::SharedPtr<Chart> chart = shape->get_Chart();
// Use this overload to add series to any type of Area, Radar and Stock charts.
chart->get_Series()->Add(u"AW Series 1",
System::MakeArray<System::DateTime>({System::DateTime(2002, 5, 1), System::DateTime(2002, 6, 1), System::DateTime(2002, 7, 1), System::DateTime(2002, 8, 1), System::DateTime(2002, 9, 1)}),
System::MakeArray<double>({32, 32, 28, 12, 15}));
System::String outputPath = outputDataDir + u"TestInsertAreaChart.docx";
doc->Save(outputPath);

ينتج الكود النتيجة التالية:

insert-area-chart-aspose-words-cpp-1

كيفية إدراج الرسم البياني فقاعة

يوضح مثال الكود الموضح أدناه كيفية إدراج مخطط فقاعي.

For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-C
// The path to the documents directory.
System::String outputDataDir = GetOutputDataDir_WorkingWithCharts();
System::SharedPtr<Document> doc = System::MakeObject<Document>();
System::SharedPtr<DocumentBuilder> builder = System::MakeObject<DocumentBuilder>(doc);
// Insert Bubble chart.
System::SharedPtr<Shape> shape = builder->InsertChart(ChartType::Bubble, 432, 252);
System::SharedPtr<Chart> chart = shape->get_Chart();
// Use this overload to add series to any type of Bubble charts.
chart->get_Series()->Add(u"AW Series 1",
System::MakeArray<double>({0.7, 1.8, 2.6}),
System::MakeArray<double>({2.7, 3.2, 0.8}),
System::MakeArray<double>({10, 4, 8}));
System::String outputPath = outputDataDir + u"InsertBubbleChart.docx";
doc->Save(outputPath);

ينتج الكود النتيجة التالية:

insert-bubble-chart-aspose-words-cpp-1