كيفية إنشاء رسم بياني ديناميكي مع قائمة منسدلة
سيناريوهات الاستخدام المحتملة
رسم بياني ديناميكي مع قائمة منسدلة في إكسل هو أداة قوية تتيح للمستخدمين إنشاء رسوم بيانية تفاعلية يمكن تحديثها بناءً على البيانات المحددة. تكون هذه الميزة مفيدة بشكل خاص في الحالات التي تحتاج فيها إلى تحليل مجموعات بيانات متعددة أو مقارنة سيناريوات مختلفة.
تطبيق شائع آخر لرسم بياني ديناميكي بقائمة منسدلة في التحليل المالي. على سبيل المثال ، قد تحتوي شركة على مجموعات متعددة من البيانات المالية لسنوات أو أقسام مختلفة. من خلال استخدام قائمة منسدلة ، يمكن للمستخدمين تحديد مجموعة البيانات المحددة التي يرغبون في تحليلها ، وسيتم تحديث الرسم البياني تلقائيًا لعرض المعلومات المقابلة. يُسمح بذلك بسهولة المقارنة والتعرف على الاتجاهات أو الأنماط.
تطبيق آخر هو في المبيعات والتسويق. قد تحتوي شركة على بيانات مبيعات لمنتجات أو مناطق مختلفة. باستخدام رسم بياني ديناميكي مع قائمة منسدلة ، يمكن للمستخدمين اختيار منتج محدد أو منطقة من القائمة المنسدلة ، وسيتم تحديث الرسم البياني بشكل ديناميكي لعرض أداء المبيعات للاختيار المحدد. يساعد ذلك في تحديد المناطق أو المنتجات الأكثر أداءً واتخاذ قرارات تستند إلى البيانات.
باختصار ، يوفر رسم بياني ديناميكي مع قائمة منسدلة في إكسل وسيلة مرنة وتفاعلية لتصور وتحليل البيانات. إنه قيم في الحالات التي تحتاج فيها إلى مقارنة مجموعات بيانات متعددة أو استكشاف سيناريوات مختلفة ، مما يجعله أداة متعددة الاستخدامات للتحليل المالي والمبيعات والتسويق والعديد من التطبيقات الأخرى.
استخدم Aspose Cells لإنشاء رسم بياني ديناميكي مع قائمة منسدلة
في الفقرات التالية، سنريك كيفية إنشاء رسم بياني ديناميكي مع قائمة منسدلة باستخدام Aspose.Cells. سنريك الكود للمثال، وكذلك ملف Excel الذي تم إنشاؤه بهذا الكود.
الكود المثالي
سيقوم الكود العيني التالي بتوليد ملف رسم بياني ديناميكي مع قائمة منسدلة.
//How to Create a Dynamic Chart with Dropdownlist | |
//Your local test path | |
string LocalPath = @""; | |
//Create a new workbook and access the first worksheet. | |
Workbook workbook = new Workbook(); | |
WorksheetCollection sheets = workbook.Worksheets; | |
Worksheet sheet = sheets[0]; | |
//Populate the data for the chart. Add values to cells and set series names. | |
sheet.Cells["A3"].PutValue("Tea"); | |
sheet.Cells["A4"].PutValue("Coffee"); | |
sheet.Cells["A5"].PutValue("Sugar"); | |
//In this example, we will add 12 months of data | |
sheet.Cells["B2"].PutValue("Jan"); | |
sheet.Cells["C2"].PutValue("Feb"); | |
sheet.Cells["D2"].PutValue("Mar"); | |
sheet.Cells["E2"].PutValue("Apr"); | |
sheet.Cells["F2"].PutValue("May"); | |
sheet.Cells["G2"].PutValue("Jun"); | |
sheet.Cells["H2"].PutValue("Jul"); | |
sheet.Cells["I2"].PutValue("Aug"); | |
sheet.Cells["J2"].PutValue("Sep"); | |
sheet.Cells["K2"].PutValue("Oct"); | |
sheet.Cells["L2"].PutValue("Nov"); | |
sheet.Cells["M2"].PutValue("Dec"); | |
int allMonths = 12; | |
int iCount = 3; | |
for (int i = 0; i < iCount; i++) | |
{ | |
for (int j = 0; j < allMonths; j++) | |
{ | |
int _row = i + 2; | |
int _column = j + 1; | |
sheet.Cells[_row, _column].PutValue(50 * (i % 2) + 20 * (j % 3) + 10 * (i / 3) + 10); | |
} | |
} | |
//This is the Dropdownlist for Dynamic Data | |
CellArea ca = new CellArea(); | |
ca.StartRow = 9; | |
ca.EndRow = 9; | |
ca.StartColumn = 0; | |
ca.EndColumn = 0; | |
int _index = sheet.Validations.Add(ca); | |
Validation _va = sheet.Validations[_index]; | |
_va.Type = Aspose.Cells.ValidationType.List; | |
_va.InCellDropDown = true; | |
_va.Formula1 = "=$B$2:$M$2"; | |
sheet.Cells["A9"].PutValue("Current Month"); | |
sheet.Cells["A10"].PutValue("Jan"); | |
Style _style = sheet.Cells["A10"].GetStyle(); | |
_style.Font.IsBold = true; | |
_style.Pattern = BackgroundType.Solid; | |
_style.ForegroundColor = Color.Yellow; | |
sheet.Cells["A10"].SetStyle(_style); | |
//Set the dynamic range for the chart's data source. | |
int index = sheets.Names.Add("Sheet1!ChtMonthData"); | |
sheets.Names[index].RefersTo = "=OFFSET(Sheet1!$A$3,0,MATCH($A$10, $B$2:$M$2, 0),3,1)"; | |
//Set the dynamic range for the chart's data labels. | |
index = sheets.Names.Add("Sheet1!ChtXLabels"); | |
sheets.Names[index].RefersTo = "=Sheet1!$A$3:$A$5"; | |
//Create a chart object and set its data source. | |
int chartIndex = sheet.Charts.Add(ChartType.Column, 8, 2, 20, 8); | |
Chart chart = sheet.Charts[chartIndex]; | |
chart.NSeries.Add("month", true); | |
chart.NSeries[0].Name = "=Sheet1!$A$10"; | |
chart.NSeries[0].Values = "Sheet1!ChtMonthData"; | |
chart.NSeries[0].XValues = "Sheet1!ChtXLabels"; | |
//Save the workbook as an Excel file. | |
workbook.Save(LocalPath + "DynamicChartWithDropdownlist.xlsx"); |
ملاحظات
في الملف الذي تم إنشاؤه، سيقوم الرسم البياني بحساب البيانات ديناميكيًا بالنسبة للشهر المحدد. يتم ذلك باستخدام صيغة “OFFSET” في الكود العيني:
"=OFFSET(Sheet1!$A$3,0,MATCH($A$10, $B$2:$M$2, 0),3,1)"
يمكنك محاولة تغيير قيمة القائمة المنسدلة في الخلية “Sheet1!$A$10”، وسوف ترى التغيير الديناميكي في الرسم البياني. الآن لقد قمنا بإنشاء رسم بياني ديناميكي مع قائمة منسدلة باستخدام Aspose.Cells بنجاح.