Формулы листа диаграммы
О Формуле Таблицы Диаграммы в Презентации
Таблица диаграммы (или лист диаграммы) в презентации является источником данных для диаграммы. Таблица диаграммы содержит данные, которые отображаются на диаграмме графически. При создании диаграммы в PowerPoint автоматически создаётся и лист, связанный с этой диаграммой. Лист создаётся для всех типов диаграмм: линейных, столбчатых, радиальных, круговых и т.д. Чтобы увидеть таблицу диаграммы в PowerPoint, дважды щёлкните по диаграмме:

Таблица диаграммы содержит имена элементов диаграммы (Category Name: Category1, Serie Name) и таблицу с числовыми данными, соответствующими этим категориям и сериям. По умолчанию, при создании новой диаграммы данные таблицы заполняются значениями по умолчанию. Затем вы можете изменить данные вручную в листе.
Обычно диаграмма представляет сложные данные (например, финансовые аналитики, научные аналитики), где ячейки рассчитываются из значений других ячеек или из динамических данных. Ручной расчёт значения ячейки и его «жёсткое» внесение в ячейку усложняет дальнейшее изменение. Если изменить значение определённой ячейки, все зависящие от неё ячейки также потребуют обновления. Более того, данные таблицы могут зависеть от данных из других таблиц, создавая сложную схему данных презентации, которую необходимо легко и гибко обновлять.
Формула таблицы диаграммы в презентации — это выражение для автоматического расчёта и обновления данных таблицы диаграммы. Формула определяет логику расчёта данных для одной ячейки или набора ячеек. Формула может быть математической или логической, используя ссылки на ячейки, математические функции, логические и арифметические операторы, функции преобразования, строковые константы и т.п. Определение формулы записывается в ячейку, и эта ячейка не содержит простого значения. Формула рассчитывает значение и возвращает его, после чего значение присваивается ячейке. Формулы таблиц диаграмм в презентациях фактически такие же, как формулы Excel, и поддерживают те же стандартные функции, операторы и константы.
В Aspose.Slides таблица диаграммы представлена методом Chart.getChartData.getChartDataWorkbook типа ChartDataWorkbook. Формулу можно задать и изменить с помощью ChartDataCell.setFormula метода. Поддерживается следующая функциональность формул в Aspose.Slides:
- Логические константы
- Числовые константы
- Строковые константы
- Константы ошибок
- Арифметические операторы
- Операторы сравнения
- Ссылки на ячейки в стиле A1
- Ссылки на ячейки в стиле R1C1
- Предопределённые функции
Обычно листы хранят последние вычисленные значения формул. Если после загрузки презентации данные диаграммы не изменялись, метод ChartDataCell.getValue возвращает эти значения при чтении. Но если данные листа были изменены, при чтении свойства ChartDataCell.Value будет выброшено исключение CellUnsupportedDataException для неподдерживаемых формул. Это происходит потому, что при успешном разборе формул определяются зависимости ячеек и проверяется корректность последних значений. Если формулу нельзя разобрать, корректность значения ячейки гарантировать нельзя.
Добавление Формулы Таблицы Диаграммы в Презентацию
Сначала добавьте диаграмму на первый слайд новой презентации с помощью ShapeCollection.getShapes.addChart. Лист диаграммы создаётся автоматически и к нему можно обратиться методом Chart.getChartData.getChartDataWorkbook:
var pres = new aspose.slides.Presentation();
try {
var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 150, 150, 500, 300);
var workbook = chart.getChartData().getChartDataWorkbook();
// ...
} finally {
if (pres != null) {
pres.dispose();
}
}
Запишем некоторые значения в ячейки с помощью свойства ChartDataCell.setValue типа Object, что означает возможность установить любое значение:
workbook.getCell(0, "F2").setValue(-2.5);
workbook.getCell(0, "G3").setValue(6.3);
workbook.getCell(0, "H4").setValue(3);
Чтобы записать формулу в ячейку, используйте метод ChartDataCell.setFormula:
Примечание: метод ChartDataCell.setFormula используется для задания ссылок в стиле A1.
Чтобы задать ссылку в виде R1C1Formula, используйте метод ChartDataCell.setR1C1Formula:
Тогда, если вы попытаетесь прочитать значения из ячеек B2 и C2, они будут вычислены:
var value1 = cell1.getValue();// 7.8
var value2 = cell2.getValue();// 2.1
Логические Константы
Вы можете использовать логические константы, такие как FALSE и TRUE, в формулах ячеек:
workbook.getCell(0, "A2").setValue(false);
var cell = workbook.getCell(0, "B2");
cell.setFormula("A2 = TRUE");
var 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! — неожиданный тип значения. Например, строковое значение в числовой ячейке.
var cell = workbook.getCell(0, "A2");
cell.setFormula("2 / 0");
var value = cell.getValue();// значение содержит строку "#DIV/0!"
Арифметические Операторы
Вы можете использовать все арифметические операторы в формулах листа диаграммы:
| Оператор | Значение | Пример |
|---|---|---|
| + (плюс) | Сложение или унарный плюс | 2 + 3 |
| - (минус) | Вычитание или отрицание | 2 - 3 -3 |
| * (звёздочка) | Умножение | 2 * 3 |
| / (слеш) | Деление | 2 / 3 |
| % (процент) | Процент | 30% |
| ^ (карет) | Возведение в степень | 2 ^ 3 |
Примечание: чтобы изменить порядок вычисления, заключите часть формулы, которую нужно вычислить первой, в скобки.
Операторы Сравнения
Вы можете сравнивать значения ячеек с помощью операторов сравнения. При сравнении двух значений результатом будет логическое значение 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] |
Пример использования ссылки в стиле R1C1 в формуле:
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
FAQ
Поддерживаются ли внешние файлы Excel в качестве источника данных для диаграммы с формулами?
Да. Aspose.Slides поддерживает внешние книги как источник данных диаграммы, что позволяет использовать формулы из XLSX-файла вне презентации.
Могут ли формулы диаграммы ссылаться на листы внутри той же книги по имени листа?
Да. Формулы следуют стандартной модели ссылок Excel, поэтому вы можете ссылаться на другие листы внутри той же книги или внешней книги. Для внешних ссылок указывайте путь и имя книги, используя синтаксис Excel.