# @univerjs/engine-formula

- Human documentation: [https://docs.univer.ai/reference/packages/plugins/univerjs/engine-formula](https://docs.univer.ai/reference/packages/plugins/univerjs/engine-formula)

- Agent Markdown: [https://docs.univer.ai/reference/packages/plugins/univerjs/engine-formula.md](https://docs.univer.ai/reference/packages/plugins/univerjs/engine-formula.md)

- Requested language: `en-US`

- Content language: `en-US`

- Documentation version: `1.0.0-rc.0`

- Source: [packages/plugins/univerjs/engine-formula.mdx](https://github.com/dream-num/documentation/blob/dev/content/reference/packages/plugins/univerjs/engine-formula.mdx)

---

Formula parsing, dependency management, and calculation engine for Univer.

```typescript
// [!code word:UniverFormulaEnginePlugin]
// [!code word:IUniverEngineFormulaConfig]
import { UniverFormulaEnginePlugin } from '@univerjs/engine-formula'

univer.registerPlugin(UniverFormulaEnginePlugin, IUniverEngineFormulaConfig)
```

## Entry Points

* Facade: `@univerjs/engine-formula/facade`

## IUniverEngineFormulaConfig

```ts
import type { Ctor } from '@univerjs/core'
import type { IFunctionNames } from '../basics/function'
import type { BaseFunction } from '../functions/base-function'

export interface IUniverEngineFormulaConfig {
  notExecuteFormula?: boolean
  function?: Array<[Ctor<BaseFunction>, IFunctionNames]>

  /**
   * The formula calculation quantity interval for waiting for the main thread message in the worker. Each time the formula calculates the `intervalCount` quantity, it will receive a main thread message to support stopping the calculation. Default is 500
   */
  intervalCount?: number

}
```
