# اعمال فرمول‌های کاربرگ نمودار در ارائه‌ها بر روی Android

> اعمال فرمول‌های سبک‑Excel در Aspose.Slides برای Android از طریق کاربرگ‌های نمودار جاوا و خودکارسازی گزارش‌ها در فایل‌های PPT و PPTX.

Source: https://docs.aspose.com/slides/fa/androidjava/chart-worksheet-formulas/
Updated: 2026-06-13

## **مرور کلی**

یک کاربرگ نمودار منبع داده‌ای است که پشت نمودار در یک ارائه قرار دارد. این کاربرگ شامل نام دسته‌ها و سری‌ها همراه با مقادیر عددی نمایش داده‌شده توسط نمودار است. در Aspose.Slides، این کاربرگ از طریق کتاب‌کار داده نمودار قابل دسترسی است که به شما امکان کار برنامه‌نویسی با داده‌های نمودار را می‌دهد.

این مقاله توضیح می‌دهد چگونه از فرمول‌های کاربرگ در داده‌های نمودار استفاده کنید تا مقادیر سلول به‌صورت خودکار محاسبه و به‌روز شوند به‌جای ورود دستی. نشان می‌دهد چگونه فرمول‌ها را اختصاص دهید، از ارجاعات سبک A1 و R1C1 استفاده کنید، فرمول‌های کتاب‌کار را مجدداً محاسبه کنید، و با ثابت‌ها، عملگرها، ارجاعات سلولی و توابع پیش‌تعریف‌شده‌ای که برای کاربرگ‌های نمودار در ارائه‌ها پشتیبانی می‌شوند کار کنید.

## **درباره فرمول‌های صفحه‌گسترده نمودار در ارائه‌ها**
**صفحه‌گسترده نمودار** (یا کاربرگ نمودار) در یک ارائه منبع داده‌ای نمودار است. صفحه‌گسترده نمودار شامل داده‌هایی است که به‌صورت گرافیکی بر روی نمودار نمایش داده می‌شوند. هنگامی که در PowerPoint یک نمودار ایجاد می‌کنید، کاربرگی که به این نمودار مرتبط است نیز به‌صورت خودکار ساخته می‌شود. کاربرگ برای همه انواع نمودارها ایجاد می‌شود: نمودار خطی، نمودار میله‌ای، نمودار خورشیدی، نمودار دایره‌ای و غیره. برای مشاهده صفحه‌گسترده نمودار در PowerPoint باید روی نمودار دوبار کلیک کنید:

![todo:image_alt_text](chart-worksheet-formulas_1.png)


صفحه‌گسترده نمودار شامل نام عناصر نمودار (نام دسته: *Category1*، نام سری) و جدول داده‌های عددی مربوط به این دسته‌ها و سری‌هاست. به‌صورت پیش‌فرض، هنگام ایجاد یک نمودار جدید—داده‌های صفحه‌گسترده نمودار با داده‌های پیش‌فرض تنظیم می‌شوند. سپس می‌توانید داده‌های صفحه‌گسترده را به‌صورت دستی در کاربرگ تغییر دهید.

معمولاً نمودار داده‌های پیچیده‌ای (مثلاً تحلیل‌گران مالی، تحلیل‌گران علمی) را نشان می‌دهد که شامل سلول‌هایی هستند که از مقادیر سلول‌های دیگر یا داده‌های پویا محاسبه می‌شوند. محاسبه دستی مقدار سلول و کدگذاری ثابت آن در سلول، تغییر آن را در آینده دشوار می‌کند. اگر مقدار یک سلول خاص را تغییر دهید، تمام سلول‌های وابسته به آن نیز باید به‌روز شوند. علاوه بر این، داده‌های جدول ممکن است به داده‌های جداول دیگر وابسته باشند و ساختار داده‌ای ارائه را پیچیده سازند که نیاز به به‌روزرسانی آسان و انعطاف‌پذیر دارد.

**فرمول صفحه‌گسترده نمودار** در ارائه یک عبارت برای محاسبه و به‌روزرسانی خودکار داده‌های صفحه‌گسترده نمودار است. فرمول صفحه‌گسترده منطق محاسبه داده برای یک سلول یا مجموعه‌ای از سلول‌ها را تعریف می‌کند. فرمول می‌تواند یک فرمول ریاضی یا منطقی باشد که از: ارجاعات سلولی، توابع ریاضی، عملگرهای منطقی، عملگرهای حسابی، توابع تبدیل، ثابت‌های رشته‌ای و غیره استفاده می‌کند. تعریف فرمول در یک سلول نوشته می‌شود و این سلول مقدار ساده‌ای ندارند. فرمول صفحه‌گسترده مقدار را محاسبه کرده و به‌عنوان مقدار سلول برمی‌گرداند. فرمول‌های صفحه‌گسترده در ارائه‌ها در واقع همان فرمول‌های اکسل هستند و توابع، عملگرها و ثابت‌های پیش‌فرض یکسانی برای پیاده‌سازی آنها پشتیبانی می‌شود.

در [**Aspose.Slides**](https://products.aspose.com/slides/fa/androidjava/) صفحه‌گسترده نمودار با
[**Chart.getChartData.getChartDataWorkbook**](https://reference.aspose.com/slides/fa/androidjava/com.aspose.slides/IChartData#getChartDataWorkbook--) متد
[**IChartDataWorkbook**](https://reference.aspose.com/slides/fa/androidjava/com.aspose.slides/IChartDataWorkbook) نشان داده می‌شود.
فرمول صفحه‌گسترده می‌تواند با
[**IChartDataCell.setFormula**](https://reference.aspose.com/slides/fa/androidjava/com.aspose.slides/IChartDataCell#setFormula-java.lang.String-) متد اختصاص و تغییر یابد.
عملکردهای زیر برای فرمول‌ها در Aspose.Slides پشتیبانی می‌شود:

- ثابت‌های منطقی
- ثابت‌های عددی
- ثابت‌های رشته‌ای
- ثابت‌های خطا
- عملگرهای حسابی
- عملگرهای مقایسه‌ای
- ارجاعات سلولی سبک A1
- ارجاعات سلولی سبک R1C1
- توابع پیش‌تعریف‌شده


معمولاً صفحه‌گسترده‌ها آخرین مقادیر محسابی فرمول‌ها را ذخیره می‌کنند. اگر پس از بارگذاری ارائه، داده‌های نمودار تغییر نکرده باشد—متد [**IChartDataCell.getValue**](https://reference.aspose.com/slides/fa/androidjava/com.aspose.slides/IChartDataCell#getValue--) آن مقادیر را هنگام خواندن برمی‌گرداند. اما اگر داده‌های صفحه‌گسترده تغییر کرده باشد، هنگام خواندن خصوصیت **ChartDataCell.Value** استثنای [**CellUnsupportedDataException**](https://reference.aspose.com/slides/fa/androidjava/com.aspose.slides/CellUnsupportedDataException) برای فرمول‌های پشتیبانی‌نشده پرتاب می‌شود. این به این دلیل است که وقتی فرمول‌ها با موفقیت تجزیه می‌شوند، وابستگی‌های سلول تعیین می‌شود و صحت مقادیر آخرین محاسبه تأیید می‌شود. اما اگر فرمول قابل تجزیه نباشد، صحت مقدار سلول نمی‌تواند تضمین شود.

## **افزودن یک فرمول صفحه‌گسترده نمودار به یک ارائه**
ابتدا یک نمودار به اسلاید اول یک ارائه جدید اضافه کنید با
[IShapeCollection.getShapes.addChart](https://reference.aspose.com/slides/fa/androidjava/com.aspose.slides/IShapeCollection#addChart-int-float-float-float-float-).
کاربرگ نمودار به‌صورت خودکار ساخته می‌شود و می‌توانید از طریق
[**Chart.getChartData.getChartDataWorkbook**](https://reference.aspose.com/slides/fa/androidjava/com.aspose.slides/IChartData#getChartDataWorkbook--) به آن دسترسی پیدا کنید:

```java
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**](https://reference.aspose.com/slides/fa/androidjava/com.aspose.slides/IChartDataCell#setValue-java.lang.Object-) خصوصیت
از نوع **Object** بنویسیم، که به این معناست می‌توانید هر مقداری را به این خصوصیت اختصاص دهید:

```java
workbook.getCell(0, "F2").setValue(-2.5);

workbook.getCell(0, "G3").setValue(6.3);

workbook.getCell(0, "H4").setValue(3);
```

حال برای نوشتن فرمول در سلول، می‌توانید از
[**IChartDataCell.setFormula**](https://reference.aspose.com/slides/fa/androidjava/com.aspose.slides/IChartDataCell#setFormula-java.lang.String-) متد استفاده کنید:

*Note*: متد [**IChartDataCell.setFormula**](https://reference.aspose.com/slides/fa/androidjava/com.aspose.slides/IChartDataCell#setFormula-java.lang.String-) برای تنظیم ارجاعات سلولی سبک A1 استفاده می‌شود.

برای تنظیم ارجاع سلولی [R1C1Formula](https://reference.aspose.com/slides/fa/androidjava/com.aspose.slides/IChartDataCell#getR1C1Formula--) می‌توانید از متد [**IChartDataCell.setR1C1Formula**](https://reference.aspose.com/slides/fa/androidjava/com.aspose.slides/IChartDataCell#setR1C1Formula-java.lang.String-) استفاده کنید:

سپس اگر مقادیر سلول‌های B2 و C2 را بخوانید، محاسبه می‌شوند:

```java
Object value1 = cell1.getValue(); // 7.8

Object value2 = cell2.getValue(); // 2.1
```

## **ثابت‌های منطقی**
می‌توانید در فرمول‌های سلول از ثابت‌های منطقی مانند *FALSE* و *TRUE* استفاده کنید:

```java
workbook.getCell(0, "A2").setValue(false);
IChartDataCell cell = workbook.getCell(0, "B2");
cell.setFormula("A2 = TRUE");
Object value = cell.getValue(); // مقدار شامل بولی "false" است
```

## **ثابت‌های عددی**
اعداد را می‌توان در قالب‌های اعشاری یا علمی برای ایجاد فرمول صفحه‌گسترده نمودار به‌کار برد:

```java
workbook.getCell(0, "A2").setFormula("1 + 0.5");
workbook.getCell(0, "B2").setFormula(".3 * 1E-2");
```

## **ثابت‌های رشته‌ای**
ثابت رشته‌ای (یا عددی) مقداری خاص است که همان‌گونه استفاده می‌شود و تغییر نمی‌کند. ثابت‌های رشته‌ای می‌توانند شامل: تاریخ‌ها، متن‌ها، اعداد و غیره باشند:

```java
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! - نوع مقدار غیرمنتظره. برای مثال، مقدار رشته‌ای به‌سلول عددی اختصاص داده شده است.

```java
IChartDataCell cell = workbook.getCell(0, "A2");
cell.setFormula("2 / 0");
Object value = cell.getValue(); // مقدار شامل رشته "#DIV/0!" است
```

## **عملگرهای حسابی**
می‌توانید تمام عملگرهای حسابی را در فرمول‌های کاربرگ نمودار استفاده کنید:

|**اپراتور**|**معنی**|**مثال**|
| :- | :- | :- |
|+ (نشان مثبت) |جمع یا مثبت یکتایی|2 + 3|
|- (نشان منفی) |تفریق یا منفی یکتایی|2 - 3<br>-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|<p>A$2</p><p>$A2</p>|
|سطر|$2:$2|2:2|-|
|ستون|$A:$A|A:A|-|
|محدوده|$A$2:$C$4|A2:C4|<p>$A$2:C4</p><p>A$2:$C4</p>|

در اینجا یک مثال برای استفاده از ارجاع سلولی سبک A1 در فرمول آورده شده است:

```java
workbook.getCell(0, "A2").setFormula("C3 + SUM(F2:H5)");
```

## **ارجاعات سلولی سبک R1C1**
**ارجاعات سلولی سبک R1C1** برای کاربرگ‌هایی استفاده می‌شوند که هم ردیف و هم ستون دارای شناسه عددی هستند. ارجاعات سبک R1C1 می‌توانند به‌صورت زیر استفاده شوند:

|**مرجع سلول**|**مثال**|||
| :- | :- | :- | :- |
||مطلق|نسبی|مختلط|
|سلول|R2C3|R[2]C[3]|R2C[3]<br>R[2]C3|
|سطر|R2|R[2]|-|
|ستون|C3|C[3]|-|
|محدوده|R2C3:R5C7|R[2]C[3]:R[5]C[7]|R2C3:R[5]C[7]<br>R[2]C3:R5C[7]|

در اینجا یک مثال برای استفاده از ارجاع سلولی سبک A1 در فرمول آورده شده است:

```java
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 از کتاب‌کارهای خارجی به‌عنوان [منبع داده نمودار](https://reference.aspose.com/slides/fa/androidjava/com.aspose.slides/chartdatasourcetype/) پشتیبانی می‌کند که به شما امکان استفاده از فرمول‌های یک فایل XLSX خارج از ارائه را می‌دهد.

**آیا فرمول‌های نمودار می‌توانند به شیت‌های داخل همان کتاب‌کار با نام شیت ارجاع دهند؟**

بله. فرمول‌ها مدل ارجاع استاندارد اکسل را دنبال می‌کنند، بنابراین می‌توانید به شیت‌های دیگر داخل همان کتاب‌کار یا کتاب‌کار خارجی ارجاع دهید. برای ارجاع‌های خارجی، مسیر و نام کتاب‌کار را با استفاده از نحو اکسل وارد کنید.
