استفاده از فرمولهای کاربرگ نمودار در ارائهها با استفاده از С++
نمای کلی
یک کاربرگ نمودار منبع دادهای است که پشت یک نمودار در یک ارائه قرار دارد. این کاربرگ نامهای دسته و سریها را همراه با مقادیر عددی که توسط نمودار نمایش داده میشود، ذخیره میکند. در Aspose.Slides، این کاربرگ از طریق کتاب کار دادههای نمودار در دسترس است که به شما اجازه میدهد با دادههای نمودار بهصورت برنامهنویسی کار کنید.
این مقاله توضیح میدهد که چگونه از فرمولهای کاربرگ در دادههای نمودار استفاده کنید تا مقادیر سلولها بهصورت خودکار محاسبه و بهروز شوند، بهجای ورود دستی آنها. نحوه اختصاص فرمولها، استفاده از ارجاعهای سبک A1 و R1C1، بازمحاسبه فرمولهای کتاب کار و کار با ثابتها، عملگرها، ارجاعهای سلولی و توابع پیشتعریف شدهٔ پشتیبانی شده برای کاربرگهای نمودار در ارائهها را نشان میدهد.
درباره فرمولهای صفحهگشتنمودار در ارائهها
صفحهگشتنمودار (یا کاربرگ نمودار) در ارائه منبع دادهٔ نمودار است. صفحهگشتنمودار شامل دادههایی است که بهصورت گرافیکی در نمودار نمایش داده میشوند. هنگامی که در PowerPoint یک نمودار ایجاد میکنید، کاربرگ مرتبط با این نمودار بهصورت خودکار نیز ساخته میشود. کاربرگ برای تمام انواع نمودارها ایجاد میشود: نمودار خطی، میلهای، خورشیدگرد، دایرهای و غیره. برای مشاهدهٔ صفحهگشتنمودار در PowerPoint باید دوبار روی نمودار کلیک کنید:

صفحهگشتنمودار شامل نام عناصر نمودار (نام دسته: Category1، نام سری) و جدولی با دادههای عددی مربوط به این دستهها و سریها است. بهصورت پیشفرض، هنگام ایجاد یک نمودار جدید، دادههای صفحهگشتنمودار با دادههای پیشفرض تنظیم میشوند. سپس میتوانید دادههای صفحهگشتنمودار را بهصورت دستی در کاربرگ تغییر دهید.
معمولاً نمودار دادههای پیچیدهای (مانند تحلیلهای مالی، علمی) را نشان میدهد که سلولهای آن از مقادیر سلولهای دیگر یا دادههای پویا محاسبه میشوند. محاسبهٔ مقدار سلول بهصورت دستی و کدگذاری ثابت آن در سلول، باعث میشود در آینده تغییر آن دشوار شود. اگر مقدار یک سلول خاص را تغییر دهید، تمام سلولهای وابسته به آن نیز نیاز به بهروزرسانی خواهند داشت. همچنین دادههای جدول ممکن است به دادههای جداول دیگر وابسته باشند و یک طرح دادهای پیچیدهٔ ارائه ایجاد کنند که نیاز به بهروزرسانی آسان و انعطافپذیر دارد.
فرمول صفحهگشتنمودار در ارائه عبارت است از یک بیان برای محاسبه و بهروزرسانی خودکار دادههای صفحهگشتنمودار. فرمول صفحهگشتنمودار منطق محاسبه داده برای یک سلول یا مجموعهای از سلولها را تعریف میکند. فرمول میتواند یک فرمول ریاضی یا منطقی باشد که از ارجاعهای سلولی، توابع ریاضی، عملگرهای منطقی، عملگرهای حسابی، توابع تبدیل، ثابتهای رشتهای و غیره استفاده میکند. تعریف فرمول در یک سلول نوشته میشود و این سلول مقدار سادهای ندارد. فرمول صفحهگشتنمودار مقدار را محاسبه و باز میگرداند، سپس این مقدار به سلول اختصاص مییابد. فرمولهای صفحهگشتنمودار در ارائهها در واقع همان فرمولهای اکسل هستند و توابع، عملگرها و ثابتهای پیشفرض یکسانی برای پیادهسازی آنها پشتیبانی میشود.
در Aspose.Slides صفحهگشتنمودار با متد ChartData::get_ChartDataWorkbook() از نوع IChartDataWorkbook نمایش داده میشود. فرمول صفحهگشتنمودار میتواند با متد IChartDataCell::set_Formula() اختصاص و تغییر یابد. قابلیتهای زیر برای فرمولها در Aspose.Slides پشتیبانی میشود:
- ثابتهای منطقی
- ثابتهای عددی
- ثابتهای رشتهای
- ثابتهای خطا
- عملگرهای حسابی
- عملگرهای مقایسهای
- ارجاعهای سلولی سبک A1
- ارجاعهای سلولی سبک R1C1
- توابع پیشتعریف شده
به طور معمول، صفحهگشتنمودارها آخرین مقادیر محاسبهشدهٔ فرمولها را ذخیره میکنند. اگر پس از بارگذاری ارائه، دادههای نمودار تغییر نکرده باشند، متد IChartDataCell.get_Value() آن مقادیر را هنگام خواندن برمیگرداند. اما اگر دادههای صفحهگشتنمودار تغییر کرده باشند، هنگام خواندن ChartDataCell.get_Value() استثنای CellUnsupportedDataException برای فرمولهای پشتیبانینشده پرتاب میشود. این به این دلیل است که وقتی فرمولها با موفقیت تجزیه شوند، وابستگیهای سلول تعیین میشود و صحت مقادیر اخیر بررسی میشود. اما اگر فرمول قابل تجزیه نباشد، صحت مقدار سلول تضمین نمیشود.
افزودن فرمول صفحهگشتنمودار به یک ارائه
اولین اسلاید یک ارائهٔ جدید را با IShapeCollection::AddChart() یک نمودار اضافه کنید. کاربرگ نمودار بهصورت خودکار ایجاد میشود و میتوان با متد ChartData::get_ChartDataWorkbook() به آن دسترسی پیدا کرد:
auto presentation = System::MakeObject<Presentation>();
auto chart = presentation->get_Slides()->idx_get(0)->get_Shapes()->AddChart(ChartType::ClusteredColumn, 150.0f, 150.0f, 500.0f, 300.0f);
auto workbook = chart->get_ChartData()->get_ChartDataWorkbook();
// ...
مقدارهایی را در سلولها با متد IChartDataCell.set_Value() از نوع Object بنویسید، به این معنا که میتوانید هر مقداری را به این متد پاس بدهید:
workbook->GetCell(0, u"F2")->set_Value(System::ObjectExt::Box<double>(-2.5));
workbook->GetCell(0, u"G3")->set_Value(System::ObjectExt::Box<double>(6.3));
workbook->GetCell(0, u"H4")->set_Value(System::ObjectExt::Box<int32_t>(3));
حالا برای نوشتن فرمول در سلول، میتوانید از متد IChartDataCell::set_Formula() استفاده کنید:
Note: متد IChartDataCell::set_Formula() برای تنظیم ارجاع سلولی سبک A1 بهکار میرود.
برای تنظیم ارجاع سلولی R1C1Formula میتوانید از متد IChartDataCell::set_R1C1Formula() استفاده کنید:
سپس اگر مقدارهای سلولهای B2 و C2 را بخوانید، محاسبه میشوند:
auto value1 = cell1->get_Value(); // 7.8
auto value2 = cell2->get_Value(); // 2.1
ثابتهای منطقی
میتوانید در فرمولهای سلول از ثابتهای منطقی مانند FALSE و TRUE استفاده کنید:
ثابتهای عددی
اعداد میتوانند بهصورت عادی یا علمی برای ایجاد فرمول صفحهگشتنمودار استفاده شوند:
ثابتهای رشتهای
ثابت رشتهای (یا لغوی) مقداری خاص است که همانطور که هست استفاده میشود و تغییر نمیکند. ثابتهای رشتهای میتوانند شامل: تاریخها، متنها، اعداد و غیره باشند:
ثابتهای خطا
گاهی ممکن است نتیجه توسط فرمول محاسبه نشود. در این صورت، کد خطا بهجای مقدار در سلول نمایش داده میشود. هر نوع خطا کد خاص خود را دارد:
- #DIV/0! – فرمول سعی میکند بر صفر تقسیم شود.
- #GETTING_DATA – ممکن است روی یک سلول نشان داده شود در حالی که مقدار آن هنوز در حال محاسبه است.
- #N/A – اطلاعات موجود نیست یا قابل دسترسی نیست. برخی دلایل ممکن است شامل: سلولهای استفادهشده در فرمول خالی باشند، وجود یک کاراکتر فضای اضافی، املای اشتباه و غیره.
- #NAME? – یک سلول یا شیء فرمول دیگر نمیتواند با نام آن یافت شود.
- #NULL! – ممکن است زمانی ظاهر شود که در فرمول اشتباهی وجود داشته باشد، مثل: (,) یا استفاده از کاراکتر فضای خالی بهجای دو نقطه (:).
- #NUM! – عدد داخل فرمول نامعتبر، بسیار طولانی یا بسیار کوتاه باشد.
- #REF! – ارجاع سلول نامعتبرباشد.
- #VALUE! – نوع مقدار غیرمنتظره. برای مثال مقدار رشتهای در یک سلول عددی تنظیم شده باشد.
عملگرهای حسابی
میتوانید تمام عملگرهای حسابی را در فرمولهای کاربرگ نمودار بهکار ببرید:
| عملگر | معنی | مثال |
|---|---|---|
| + (علامت جمع) | جمع یا جمع یکنقش | 2 + 3 |
| - (علامت منفی) | تفریق یا منفی کردن | 2 - 3 -3 |
| * (ستاره) | ضرب | 2 * 3 |
| / (خط مورب) | تقسیم | 2 / 3 |
| % (علامت درصد) | درصد | 30% |
| ^ (caret) | توان | 2 ^ 3 |
Note: برای تغییر ترتیب ارزیابی، بخش موردنظر فرمول را با پرانتز بغل کنید.
عملگرهای مقایسهای
میتوانید مقادیر سلولها را با عملگرهای مقایسهای مقایسه کنید. وقتی دو مقدار با این عملگرها مقایسه شوند، نتیجه یک مقدار منطقی TRUE یا FALSE است:
| عملگر | معنی | معنی |
|---|---|---|
| = (علامت مساوی) | مساوی با | A2 = 3 |
| <> (علامت نابرابری) | نابرابر با | A2 <> 3 |
| > (علامت بزرگتر) | بزرگتر از | A2 > 3 |
| >= (علامت بزرگتر یا مساوی) | بزرگتر یا مساوی با | A2 >= 3 |
| < (علامت کوچکتر) | کوچکتر از | A2 < 3 |
| <= (علامت کوچکتر یا مساوی) | کوچکتر یا مساوی با | A2 <= 3 |
ارجاعهای سلولی سبک A1
ارجاعهای سلولی سبک A1 برای کاربرگهایی استفاده میشوند که ستون با یک شناسه حرفی (مثلاً “A") و ردیف با شناسه عددی (مثلاً “1") مشخص میشود. ارجاعهای سلولی سبک A1 میتوانند به شکل زیر استفاده شوند:
| ارجاع سلول | مثال | ||
|---|---|---|---|
| مطلق | نسبی | مختلط | |
| سلول | $A$2 | A2 | A$2 $A2 |
| ردیف | $2:$2 | 2:2 | - |
| ستون | $A:$A | A:A | - |
| بازه | $A$2:$C$4 | A2:C4 | $A$2:C4 A$2:$C4 |
در اینجا نمونهای از استفاده از ارجاع سلولی سبک A1 در فرمول آمده است:
ارجاعهای سلولی سبک R1C1
ارجاعهای سلولی سبک R1C1 برای کاربرگهایی استفاده میشوند که هم ردیف و هم ستون دارای شناسه عددی هستند. ارجاعهای سلولی سبک R1C1 میتوانند به شکل زیر استفاده شوند:
| ارجاع سلول | مثال | ||
|---|---|---|---|
| مطلق | نسبی | مختلط | |
| سلول | R2C3 | R[2]C[3] | R2C[3] R[2]C3 |
| ردیف | R2 | R[2] | - |
| ستون | C3 | C[3] | - |
| بازه | R2C3:R5C7 | R[2]C[3]:R[5]C[7] | R2C3:R[5]C[7] R[2]C3:R5C[7] |
در اینجا نمونهای از استفاده از ارجاع سلولی سبک R1C1 در فرمول آمده است:
توابع پیشتعریف شده
توابع پیشتعریف شدهای وجود دارند که میتوانند در فرمولها برای سادهسازی پیادهسازی استفاده شوند. این توابع شامل متداولترین عملیاتها هستند، مانند:
- ABS
- AVERAGE
- CEILING
- CHOOSE
- CONCAT
- CONCATENATE
- DATE (سیستم تاریخ 1900)
- DAYS
- FIND
- FINDB
- IF
- INDEX (فرم ارجاع)
- LOOKUP (فرم بردار)
- MATCH (فرم بردار)
- MAX
- SUM
- VLOOKUP
سؤالات متداول
آیا فایلهای اکسل خارجی بهعنوان منبع داده برای نموداری با فرمولها پشتیبانی میشوند؟
بله. Aspose.Slides فایلهای کار کتاب کار خارجی را بهعنوان منبع دادهٔ نمودار پشتیبانی میکند که به شما امکان میدهد از فرمولهای یک XLSX خارج از ارائه استفاده کنید.
آیا فرمولهای نمودار میتوانند به برگههای دیگر در همان کتاب کار با نام برگه ارجاع دهند؟
بله. فرمولها از مدل مرجعگذاری استاندارد اکسل پیروی میکنند، بنابراین میتوانید به برگههای دیگر در همان کتاب کار یا یک کتاب کار خارجی ارجاع دهید. برای ارجاعهای خارجی، مسیر و نام کتاب کار را با استفاده از نحو اکسل درج کنید.