Управление формулами файлов Excel

Введение

Одним из убедительных функций Microsoft Excel является его возможность обработки данных с помощью формул и функций. Microsoft Excel предоставляет набор встроенных функций и формул, которые помогают пользователям быстро выполнять сложные вычисления. Aspose.Cells также предоставляет огромный набор встроенных функций и формул, которые помогают разработчикам легко вычислять значения. Aspose.Cells также поддерживает дополнительные функции. Более того, Aspose.Cells поддерживает массивные и R1C1 формулы в Aspose.Cells.

Как использовать формулы и функции

Aspose.Cells предоставляет класс Workbook, который представляет файл Microsoft Excel. Класс Workbook содержит коллекцию Worksheets, которая позволяет получить доступ к каждому рабочему листу в файле Excel. Рабочий лист представлен классом Worksheet. Класс Worksheet предоставляет коллекцию Cells. Каждый элемент в коллекции Cells представляет объект класса Cell.

Можно применять формулы к ячейкам, используя свойства и методы, предлагаемые классом Cell, подробно обсуждаемым ниже.

  • Использование встроенных функций.
  • Использование функций дополнений.
  • Работа с массивными формулами.
  • Создание формулы R1C1.

Как использовать встроенные функции

Встроенные функции или формулы предоставляются в виде готовых функций для уменьшения усилий и времени разработчиков. См. список встроенных функций, поддерживаемых Aspose.Cells. Функции перечислены в алфавитном порядке. В будущем будут добавлены новые функции.

Aspose.Cells поддерживает большинство формул или функций, предлагаемых Microsoft Excel. Разработчики могут использовать эти формулы через API или электронные таблицы дизайнера. Aspose.Cells поддерживает обширный набор математических, строковых, логических, даты/времени, статистических, баз данных, лукап и ссылочных формул.

Используйте свойство Formula класса Cell для добавления формулы в ячейку. Сложные формулы, например

 = H7*(1+IF(P7 = $L$3,$M$3, (IF(P7=$L$4,$M$4,0))))

, также поддерживаются в Aspose.Cells. Применяя формулу к ячейке, всегда начинайте строку с знака равенства (=), как при создании формулы в Microsoft Excel, и используйте запятую (,) для разделения параметров функции.

В приведенном ниже примере к первой ячейке каталога Cells применяется сложная формула. Формула использует встроенную Функцию IF, предоставленную Aspose.Cells.

Как использовать функции дополнений

Может быть необходимо включить в excel пользовательские формулы, которые мы хотим включить в виде добавления. При установке функции cell.Formula встроенные функции работают хорошо, однако требуется установить пользовательские функции или формулы, используя функции дополнений.

Aspose.Cells предоставляет возможности для регистрации функций добавления с помощью Worksheets.RegisterAddInFunction(). После этого, когда мы устанавливаем cell.Formula = anyFunctionFromAddIn, итоговый файл Excel содержит вычисленное значение из функции AddIn.

Для регистрации функции добавления в приведенном ниже образце кода следует загрузить файл XLAM. Аналогично, файл вывода “test_udf.xlsx” можно загрузить для проверки вывода.

TestUDF.xlam

test_udf.xlsx

Как использовать массивную формулу

Массивные формулы – это формулы, которые принимают массивы в качестве аргументов для функций, составляющих формулу. Когда массивная формула отображается, она окружена фигурными скобками ({}).

Некоторые функции Microsoft Excel возвращают массивы значений. Для вычисления нескольких результатов с помощью массивной формулы введите массив в диапазон ячеек с тем же количеством строк и столбцов, что и аргументы массива.

Возможно применить массивную формулу к ячейке, вызвав метод класса Cell SetArrayFormula. Метод SetArrayFormula принимает следующие параметры:

  • Массивная Формула, массивная формула.
  • Количество строк, количество строк для заполнения результата массивной формулы.
  • Количество столбцов, количество столбцов для заполнения результата массивной формулы.

Как использовать формулу R1C1

Добавить формулу со ссылкой стиля R1C1 в ячейку с помощью свойства R1C1Formula класса Cell.

Продвинутые темы