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

صفحهگسترده نمودار شامل نام عناصر نمودار (نام دسته: Category1، نام سری) و جدول دادههای عددی مربوط به این دستهها و سریهاست. بهصورت پیشفرض، هنگام ایجاد یک نمودار جدید—دادههای صفحهگسترده نمودار با دادههای پیشفرض تنظیم میشوند. سپس میتوانید دادههای صفحهگسترده را بهصورت دستی در کاربرگ تغییر دهید.
معمولاً نمودار دادههای پیچیدهای (مثلاً تحلیلگران مالی، تحلیلگران علمی) را نشان میدهد که شامل سلولهایی هستند که از مقادیر سلولهای دیگر یا دادههای پویا محاسبه میشوند. محاسبه دستی مقدار سلول و کدگذاری ثابت آن در سلول، تغییر آن را در آینده دشوار میکند. اگر مقدار یک سلول خاص را تغییر دهید، تمام سلولهای وابسته به آن نیز باید بهروز شوند. علاوه بر این، دادههای جدول ممکن است به دادههای جداول دیگر وابسته باشند و ساختار دادهای ارائه را پیچیده سازند که نیاز به بهروزرسانی آسان و انعطافپذیر دارد.
فرمول صفحهگسترده نمودار در ارائه یک عبارت برای محاسبه و بهروزرسانی خودکار دادههای صفحهگسترده نمودار است. فرمول صفحهگسترده منطق محاسبه داده برای یک سلول یا مجموعهای از سلولها را تعریف میکند. فرمول میتواند یک فرمول ریاضی یا منطقی باشد که از: ارجاعات سلولی، توابع ریاضی، عملگرهای منطقی، عملگرهای حسابی، توابع تبدیل، ثابتهای رشتهای و غیره استفاده میکند. تعریف فرمول در یک سلول نوشته میشود و این سلول مقدار سادهای ندارند. فرمول صفحهگسترده مقدار را محاسبه کرده و بهعنوان مقدار سلول برمیگرداند. فرمولهای صفحهگسترده در ارائهها در واقع همان فرمولهای اکسل هستند و توابع، عملگرها و ثابتهای پیشفرض یکسانی برای پیادهسازی آنها پشتیبانی میشود.
در Aspose.Slides صفحهگسترده نمودار با Chart.getChartData.getChartDataWorkbook متد IChartDataWorkbook نشان داده میشود. فرمول صفحهگسترده میتواند با IChartDataCell.setFormula متد اختصاص و تغییر یابد. عملکردهای زیر برای فرمولها در Aspose.Slides پشتیبانی میشود:
- ثابتهای منطقی
- ثابتهای عددی
- ثابتهای رشتهای
- ثابتهای خطا
- عملگرهای حسابی
- عملگرهای مقایسهای
- ارجاعات سلولی سبک A1
- ارجاعات سلولی سبک R1C1
- توابع پیشتعریفشده
معمولاً صفحهگستردهها آخرین مقادیر محسابی فرمولها را ذخیره میکنند. اگر پس از بارگذاری ارائه، دادههای نمودار تغییر نکرده باشد—متد IChartDataCell.getValue آن مقادیر را هنگام خواندن برمیگرداند. اما اگر دادههای صفحهگسترده تغییر کرده باشد، هنگام خواندن خصوصیت ChartDataCell.Value استثنای CellUnsupportedDataException برای فرمولهای پشتیبانینشده پرتاب میشود. این به این دلیل است که وقتی فرمولها با موفقیت تجزیه میشوند، وابستگیهای سلول تعیین میشود و صحت مقادیر آخرین محاسبه تأیید میشود. اما اگر فرمول قابل تجزیه نباشد، صحت مقدار سلول نمیتواند تضمین شود.
افزودن یک فرمول صفحهگسترده نمودار به یک ارائه
ابتدا یک نمودار به اسلاید اول یک ارائه جدید اضافه کنید با IShapeCollection.getShapes.addChart. کاربرگ نمودار بهصورت خودکار ساخته میشود و میتوانید از طریق Chart.getChartData.getChartDataWorkbook به آن دسترسی پیدا کنید:
Presentation pres = new Presentation();
try {
IChart chart = pres.getSlides().get_Item(0).getShapes().addChart(ChartType.ClusteredColumn, 150, 150, 500, 300);
IChartDataWorkbook workbook = chart.getChartData().getChartDataWorkbook();
// ...
} finally {
if (pres != null) pres.dispose();
}
بیایید برخی مقادیر را در سلولها با IChartDataCell.setValue خصوصیت از نوع Object بنویسیم، که به این معناست میتوانید هر مقداری را به این خصوصیت اختصاص دهید:
workbook.getCell(0, "F2").setValue(-2.5);
workbook.getCell(0, "G3").setValue(6.3);
workbook.getCell(0, "H4").setValue(3);
حال برای نوشتن فرمول در سلول، میتوانید از IChartDataCell.setFormula متد استفاده کنید:
Note: متد IChartDataCell.setFormula برای تنظیم ارجاعات سلولی سبک A1 استفاده میشود.
برای تنظیم ارجاع سلولی R1C1Formula میتوانید از متد IChartDataCell.setR1C1Formula استفاده کنید:
سپس اگر مقادیر سلولهای B2 و C2 را بخوانید، محاسبه میشوند:
Object value1 = cell1.getValue(); // 7.8
Object value2 = cell2.getValue(); // 2.1
ثابتهای منطقی
میتوانید در فرمولهای سلول از ثابتهای منطقی مانند FALSE و TRUE استفاده کنید:
workbook.getCell(0, "A2").setValue(false);
IChartDataCell cell = workbook.getCell(0, "B2");
cell.setFormula("A2 = TRUE");
Object value = cell.getValue(); // مقدار شامل بولی "false" است
ثابتهای عددی
اعداد را میتوان در قالبهای اعشاری یا علمی برای ایجاد فرمول صفحهگسترده نمودار بهکار برد:
workbook.getCell(0, "A2").setFormula("1 + 0.5");
workbook.getCell(0, "B2").setFormula(".3 * 1E-2");
ثابتهای رشتهای
ثابت رشتهای (یا عددی) مقداری خاص است که همانگونه استفاده میشود و تغییر نمیکند. ثابتهای رشتهای میتوانند شامل: تاریخها، متنها، اعداد و غیره باشند:
workbook.getCell(0, "A2").setFormula("\"abc\"");
workbook.getCell(0, "B2").setFormula("\"2/3/2020 12:00\"");
ثابتهای خطا
گاهی محاسبه نتیجه توسط فرمول امکانپذیر نیست. در این حالت کد خطا بهجای مقدار در سلول نمایش داده میشود. هر نوع خطا کد خاص خود را دارد:
- #DIV/0! - فرمول سعی میکند بر صفر تقسیم کند.
- #GETTING_DATA - ممکن است در سلول نمایش داده شود در حالی که مقدار آن هنوز در حال محاسبه است.
- #N/A - اطلاعات موجود نیست یا در دسترس نیست. برخی دلایل میتوانند شامل: سلولهای استفادهشده در فرمول خالی باشند، کاراکتر فضای اضافه، املای اشتباه و غیره.
- #NAME? - سلول یا شیء فرمول دیگری بهنام خود پیدا نمیشود.
- #NULL! - ممکن است وقتی در فرمول اشتباهی مانند (,) یا استفاده از کاراکتر فاصله بهجای دو نقطه (:) وجود داشته باشد ظاهر شود.
- #NUM! - عدد داخل فرمول نامعتبر، بیش از حد بزرگ یا کوچک است.
- #REF! - ارجاع سلولی نامعتبر.
- #VALUE! - نوع مقدار غیرمنتظره. برای مثال، مقدار رشتهای بهسلول عددی اختصاص داده شده است.
IChartDataCell cell = workbook.getCell(0, "A2");
cell.setFormula("2 / 0");
Object value = cell.getValue(); // مقدار شامل رشته "#DIV/0!" است
عملگرهای حسابی
میتوانید تمام عملگرهای حسابی را در فرمولهای کاربرگ نمودار استفاده کنید:
| اپراتور | معنی | مثال |
|---|---|---|
| + (نشان مثبت) | جمع یا مثبت یکتایی | 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 در فرمول آورده شده است:
workbook.getCell(0, "A2").setFormula("C3 + SUM(F2:H5)");
ارجاعات سلولی سبک 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] |
در اینجا یک مثال برای استفاده از ارجاع سلولی سبک A1 در فرمول آورده شده است:
workbook.getCell(0, "A2").setR1C1Formula("R2C4 + SUM(R5C6:R7C9)");
توابع پیشتعریفشده
توابع پیشتعریفشدهای وجود دارند که میتوانند در فرمولها بهکار گرفته شوند تا پیادهسازی آنها ساده شود. این توابع رایجترین عملیاتها را در بر میگیرند، مانند:
- ABS
- AVERAGE
- CEILING
- CHOOSE
- CONCAT
- CONCATENATE
- DATE (سیستم تاریخ 1900)
- DAYS
- FIND
- FINDB
- IF
- INDEX (فرم ارجاع)
- LOOKUP (فرم برداری)
- MATCH (فرم برداری)
- MAX
- SUM
- VLOOKUP
سؤالهای متداول
آیا فایلهای Excel خارجی بهعنوان منبع داده برای نمودار با فرمولها پشتیبانی میشوند؟
بله. Aspose.Slides از کتابکارهای خارجی بهعنوان منبع داده نمودار پشتیبانی میکند که به شما امکان استفاده از فرمولهای یک فایل XLSX خارج از ارائه را میدهد.
آیا فرمولهای نمودار میتوانند به شیتهای داخل همان کتابکار با نام شیت ارجاع دهند؟
بله. فرمولها مدل ارجاع استاندارد اکسل را دنبال میکنند، بنابراین میتوانید به شیتهای دیگر داخل همان کتابکار یا کتابکار خارجی ارجاع دهید. برای ارجاعهای خارجی، مسیر و نام کتابکار را با استفاده از نحو اکسل وارد کنید.