PHPackages                             sobolevwladimir/vexcel - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [PDF &amp; Document Generation](/categories/documents)
4. /
5. sobolevwladimir/vexcel

ActiveLibrary[PDF &amp; Document Generation](/categories/documents)

sobolevwladimir/vexcel
======================

Parse excel formula to syntax tree

v1.1.1(2y ago)78.1k↓37.5%MITPHPPHP &gt;=8.1.0

Since Aug 24Pushed 2y ago2 watchersCompare

[ Source](https://github.com/SobolevWladimir/vexcel)[ Packagist](https://packagist.org/packages/sobolevwladimir/vexcel)[ Docs](https://github.com/SobolevWladimir/vexcel)[ RSS](/packages/sobolevwladimir-vexcel/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependencies (4)Versions (7)Used By (0)

 [![vexcel](./logo.png)](./logo.png)
====================================

[](#--)

 Позволяет использовать формулы excel в вашем приложении. Описание:
---------

[](#описание)

Формулы в эксель - это прекрасное изобретение,которое позволяет пользователям производить рассчеты без (помощи) программистов. Нередко возникают ситуации, когда такой функционал нужен в вашем приложении! Эта библиотека позволит вам использовать выражения, синтаксически похожие на формулы из excel, с той лишь разницей, что вместо координат ячеек вы сможете использовать свои переменные.

Демо
----

[](#демо)

[http://vexcel.vladimir-sobolev.ru](http://vexcel.vladimir-sobolev.ru/#/)

Особенности:
------------

[](#особенности)

- Excel подобный синтаксис.
- Поддержка переменных, задаваемых извне.
- Математический порядок действий (Пример: 2+2\*3 получим 8).
- Поддерживает функции (ЕСЛИ, НЕ, ОКРУГЛИТЬ и т.д.).
- Возможность добавлять свои функции.
- Преобразование синтаксического дерева в json и обратно.
- Хранение переменных в синтаксическом дереве в виде идентификаторов.
- Возможность преобразовать синтаксическое дерево обратно в формулу. (Полезно, если возможно изменение названий переменных со временем).

Синтаксис
---------

[](#синтаксис)

### Строка

[](#строка)

Начинается и заканчивается одинарными или двойными кавычками. Пример: *"моя строка"*, *'моя строка'*

### Число

[](#число)

Число бывает двух видов: Обычное и дробное. Дробные числа пишутся через точку.

Пример целого числа: *1200*

Пример дробного числа: *3.2*

### Переменная

[](#переменная)

Название переменной должно начинаться с буквы и может содержать в своем названии буквы, цифры и нижнее подчеркивание. Пример: *Вася*, *Моя\_ПЕР*

Переменные также могут включать любые символы включая пробел, если название переменной обернуто в '$' или ''. Пример: *$Моя ПЕР$*, \*\\Моя ПЕР\*

### Функция

[](#функция)

Название переменной должно начинаться с буквы и может содержать в своем названии буквы, цифры и нижнее подчеркивание. В конце названия функции идет круглая скобка, после которой передаются аргументы этой функции, разделенные знаком: точка с запятой. Функция заканчивается после закрывающей скобки. Пример: *МОЯ\_ФУНКЦИЯ(ПЕР1; ПЕР2)*

Установка
---------

[](#установка)

```
composer require sobolevwladimir/vexcel
```

Начало работы
-------------

[](#начало-работы)

Подключение:

```
