إنشاء الرسوم البيانية وتخصيصها

سيناريوهات الاستخدام الممكنة

الرسم البياني هو عرض مرئي للمعلومات. Aspose.Cells يسمح للمطورين بتصور المعلومات في المخططات تمامًا كما يفعل Microsoft Excel. دائمًا ما يكون تقديم المعلومات في الرسوم البيانية مفيدًا لصانعي القرار لاتخاذ قرارات سريعة وفي الوقت المناسب. من السهل رؤية المقارنات والأنماط والاتجاهات في البيانات باستخدام المخططات بدلاً من الأرقام الأولية بسرعة. يعد إنشاء المخططات في وقت التشغيل ، استنادًا إلى البيانات الموجودة في جدول بيانات ، أحد ميزات Aspose.Cells المفيدة. يدعم Aspose.Cells تكوين كل من المخططات القياسية والمخصصة. أدناه ، سنعرض بعض الأمثلة مع ملفات نموذجية حول كيفية إنشاء بعض أنواع مخططات MS-Excel الشائعة باستخدام Aspose.Cells API.

مخطط هرمي

عند تنفيذ رمز المثال ، تتم إضافة مخطط هرمي إلى ورقة العمل. الرجاء مراجعةإخراج ملف Excel من نموذج التعليمات البرمجية التالي.

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-C
// Output directory path
StringPtr outDir = new String("..\\Data\\02_OutputDirectory\\");
// Path of output excel file
StringPtr outputChartTypePyramid = outDir->StringAppend(new String("outputChartTypePyramid.xlsx"));
// Create a new workbook
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook();
// Get first worksheet which is created by default
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);
// Adding sample values to cells
worksheet->GetICells()->GetObjectByIndex(new String("A1"))->PutValue(50);
worksheet->GetICells()->GetObjectByIndex(new String("A2"))->PutValue(100);
worksheet->GetICells()->GetObjectByIndex(new String("A3"))->PutValue(150);
worksheet->GetICells()->GetObjectByIndex(new String("B1"))->PutValue(4);
worksheet->GetICells()->GetObjectByIndex(new String("B2"))->PutValue(20);
worksheet->GetICells()->GetObjectByIndex(new String("B3"))->PutValue(50);
// Adding a chart to the worksheet
int chartIndex = worksheet->GetICharts()->Add(Aspose::Cells::Charts::ChartType::ChartType_Pyramid, 5, 0, 20, 8);
// Accessing the instance of the newly added chart
intrusive_ptr<Aspose::Cells::Charts::IChart> chart = worksheet->GetICharts()->GetObjectByIndex(chartIndex);
// Adding SeriesCollection (chart data source) to the chart ranging from "A1" cell to "B3"
chart->GetNISeries()->Add(new String("A1:B3"), true);
// Saving the Excel file
workbook->Save(outputChartTypePyramid);

خط الرسم البياني

في المثال أعلاه ، قم ببساطة بتغيير ملفنوع التخطيطإلىنوع المخطط_الخطينشئ مخططًا خطيًا. يتم توفير المصدر الكامل أدناه. عند تنفيذ الكود ، يتم إضافة مخطط خطي إلى ورقة العمل. الرجاء مراجعةإخراج ملف Excel من نموذج التعليمات البرمجية التالي.

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-C
// Output directory path
StringPtr outDir = new String("..\\Data\\02_OutputDirectory\\");
// Path of output excel file
StringPtr outputChartTypeLine = outDir->StringAppend(new String("outputChartTypeLine.xlsx"));
// Create a new workbook
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook();
// Get first worksheet which is created by default
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);
// Adding sample values to cells
worksheet->GetICells()->GetObjectByIndex(new String("A1"))->PutValue(50);
worksheet->GetICells()->GetObjectByIndex(new String("A2"))->PutValue(100);
worksheet->GetICells()->GetObjectByIndex(new String("A3"))->PutValue(150);
worksheet->GetICells()->GetObjectByIndex(new String("B1"))->PutValue(4);
worksheet->GetICells()->GetObjectByIndex(new String("B2"))->PutValue(20);
worksheet->GetICells()->GetObjectByIndex(new String("B3"))->PutValue(50);
// Adding a chart to the worksheet
int chartIndex = worksheet->GetICharts()->Add(Aspose::Cells::Charts::ChartType::ChartType_Line, 5, 0, 20, 8);
// Accessing the instance of the newly added chart
intrusive_ptr<Aspose::Cells::Charts::IChart> chart = worksheet->GetICharts()->GetObjectByIndex(chartIndex);
// Adding SeriesCollection (chart data source) to the chart ranging from "A1" cell to "B3"
chart->GetNISeries()->Add(new String("A1:B3"), true);
// Saving the Excel file
workbook->Save(outputChartTypeLine);

مخطط فقاعي

من أجل إنشاء مخطط فقاعي ، فإن ملفنوع التخطيط يجب ضبطه علىنوع المخطط_فقاعة وبعض الخصائص الإضافية مثلSetBubbleSizes & SetXValues تحتاج إلى تعيين وفقا لذلك. عند تنفيذ التعليمات البرمجية التالية ، تتم إضافة مخطط فقاعي إلى ورقة العمل. الرجاء مراجعةإخراج ملف Excel من نموذج التعليمات البرمجية التالي.

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-C
// Output directory path
StringPtr outDir = new String("..\\Data\\02_OutputDirectory\\");
// Path of output excel file
StringPtr outputChartTypeBubble = outDir->StringAppend(new String("outputChartTypeBubble.xlsx"));
// Create a new workbook
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook();
// Get first worksheet which is created by default
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);
// Fill in data for chart's series
// Y Values
worksheet->GetICells()->GetObjectByIndex(0, 0)->PutValue((StringPtr)new String("Y Values"));
worksheet->GetICells()->GetObjectByIndex(0, 1)->PutValue(2);
worksheet->GetICells()->GetObjectByIndex(0, 2)->PutValue(4);
worksheet->GetICells()->GetObjectByIndex(0, 3)->PutValue(6);
// Bubble Size
worksheet->GetICells()->GetObjectByIndex(1, 0)->PutValue((StringPtr)new String("Bubble Size"));
worksheet->GetICells()->GetObjectByIndex(1, 1)->PutValue(2);
worksheet->GetICells()->GetObjectByIndex(1, 2)->PutValue(3);
worksheet->GetICells()->GetObjectByIndex(1, 3)->PutValue(1);
// X Values
worksheet->GetICells()->GetObjectByIndex(2, 0)->PutValue((StringPtr)new String("X Values"));
worksheet->GetICells()->GetObjectByIndex(2, 1)->PutValue(1);
worksheet->GetICells()->GetObjectByIndex(2, 2)->PutValue(2);
worksheet->GetICells()->GetObjectByIndex(2, 3)->PutValue(3);
// Set first column width
worksheet->GetICells()->SetColumnWidth(0, 12);
// Adding a chart to the worksheet
int chartIndex = worksheet->GetICharts()->Add(Aspose::Cells::Charts::ChartType::ChartType_Bubble, 5, 0, 20, 8);
// Accessing the instance of the newly added chart
intrusive_ptr<Aspose::Cells::Charts::IChart> chart = worksheet->GetICharts()->GetObjectByIndex(chartIndex);
// Adding SeriesCollection (chart data source) to the chart ranging from B1 to D1
chart->GetNISeries()->Add(new String("B1:D1"), true);
// Set bubble sizes
chart->GetNISeries()->GetObjectByIndex(0)->SetBubbleSizes(new String("B2:D2"));
// Set X axis values
chart->GetNISeries()->GetObjectByIndex(0)->SetXValues(new String("B3:D3"));
// Set Y axis values
chart->GetNISeries()->GetObjectByIndex(0)->SetValues(new String("B1:D1"));
// Saving the Excel file
workbook->Save(outputChartTypeBubble);

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

حتى الآن ، عندما ناقشنا المخططات ، نظرنا إلى المخططات القياسية التي لها إعدادات التنسيق القياسية الخاصة بها. نحن نحدد مصدر البيانات فقط ، ونضع بعض الخصائص ويتم إنشاء المخطط باستخدام إعدادات التنسيق الافتراضية الخاصة به. لكن Aspose.Cells APIs تدعم أيضًا إنشاء مخططات مخصصة تسمح للمطورين بإنشاء مخططات باستخدام إعدادات التنسيق الخاصة بهم. يمكن للمطورين إنشاء مخططات مخصصة في وقت التشغيل باستخدام Aspose.Cells.

يتكون المخطط من سلسلة بيانات. عند إنشاء مخطط مخصص ، يتمتع المطورون بحرية استخدام أنواع مختلفة من المخططات لسلسلة بيانات مختلفة.

يوضح رمز المثال أدناه كيفية إنشاء مخططات مخصصة. في هذا المثال ، سنستخدم مخططًا عموديًا لسلسلة البيانات الأولى ومخطط خطي للسلسلة الثانية. والنتيجة هي أننا نضيف مخططًا عموديًا ، جنبًا إلى جنب مع مخطط خطي ، إلى ورقة العمل. الرجاء مراجعةإخراج ملف Excel من نموذج التعليمات البرمجية التالي.

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-C
// Output directory path
StringPtr outDir = new String("..\\Data\\02_OutputDirectory\\");
// Path of output excel file
StringPtr outputChartTypeCustom = outDir->StringAppend(new String("outputChartTypeCustom.xlsx"));
// Create a new workbook
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook();
// Get first worksheet which is created by default
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);
// Adding sample values to cells
worksheet->GetICells()->GetObjectByIndex(new String("A1"))->PutValue(50);
worksheet->GetICells()->GetObjectByIndex(new String("A2"))->PutValue(100);
worksheet->GetICells()->GetObjectByIndex(new String("A3"))->PutValue(150);
worksheet->GetICells()->GetObjectByIndex(new String("A4"))->PutValue(110);
worksheet->GetICells()->GetObjectByIndex(new String("B1"))->PutValue(260);
worksheet->GetICells()->GetObjectByIndex(new String("B2"))->PutValue(12);
worksheet->GetICells()->GetObjectByIndex(new String("B3"))->PutValue(50);
worksheet->GetICells()->GetObjectByIndex(new String("B4"))->PutValue(100);
// Adding a chart to the worksheet
int chartIndex = worksheet->GetICharts()->Add(Aspose::Cells::Charts::ChartType::ChartType_Column, 5, 0, 20, 8);
// Accessing the instance of the newly added chart
intrusive_ptr<Aspose::Cells::Charts::IChart> chart = worksheet->GetICharts()->GetObjectByIndex(chartIndex);
// Adding SeriesCollection (chart data source) to the chart ranging from A1 to B4
chart->GetNISeries()->Add(new String("A1:B4"), true);
// Setting the chart type of 2nd NSeries to display as line chart
chart->GetNISeries()->GetObjectByIndex(1)->SetType(Aspose::Cells::Charts::ChartType::ChartType_Line);
// Saving the Excel file
workbook->Save(outputChartTypeCustom);