# HyperFormula Documentation
> Full documentation corpus for LLM consumption.
> Each page below is also served as clean Markdown — append `.md` to a docs page URL.
---
## /api-ref-readme.html
URL: https://hyperformula.handsontable.com/docs/api-ref-readme
Welcome to the HyperFormula `v3.4.0` API!
The API reference documentation provides detailed information for methods, error types, event types, and all the configuration options available in HyperFormula.
Current build: 17/09/2026 22:09:05
### API reference index
The following sections explain shortly what can be found in the left sidebar navigation menu.
#### HyperFormula
This section contains information about the class for creating HyperFormula instance. It enlists all available public methods alongside their descriptions, parameter types, and examples.
The snippet shows an example how to use `buildFromArray` which is one of [three static methods](https://hyperformula.handsontable.com/docs/api/classes/hyperformula.html#factories) for creating an instance of HyperFormula:
```javascript
const sheetData = [
['0', '=SUM(1, 2, 3)', '52'],
['=SUM(A1:C1)', '', '=A1'],
['2', '=SUM(A1:C1)', '91'],
];
const hfInstance = HyperFormula.buildFromArray(sheetData, options);
```
#### ConfigParams
This section contains information about options that allow you to configure the instance of HyperFormula.
An example set of options:
```javascript
const options = {
licenseKey: 'gpl-v3',
nullDate: { year: 1900, month: 1, day: 1 },
functionArgSeparator: '.'
};
```
#### Listeners
In this section, you can find information about all events you can subscribe to.
For example, subscribing to `sheetAdded` event:
```javascript
const hfInstance = HyperFormula.buildFromSheets({
MySheet1: [ ['1'] ],
MySheet2: [ ['10'] ],
});
const handler = ( ) => { console.log('baz') }
hfInstance.on('sheetAdded', handler);
const nameProvided = hfInstance.addSheet('MySheet3');
```
---
## API Reference Overview
URL: https://hyperformula.handsontable.com/docs/api/
# API Reference Overview
Welcome to the HyperFormula `v3.4.0` API!
The API reference documentation provides detailed information for methods, error types, event types, and all the configuration options available in HyperFormula.
Current build: 17/09/2026 22:09:05
### API reference index
The following sections explain shortly what can be found in the left sidebar navigation menu.
#### HyperFormula
This section contains information about the class for creating HyperFormula instance. It enlists all available public methods alongside their descriptions, parameter types, and examples.
The snippet shows an example how to use `buildFromArray` which is one of [three static methods](https://hyperformula.handsontable.com/docs/api/classes/hyperformula.html#factories) for creating an instance of HyperFormula:
```javascript
const sheetData = [
['0', '=SUM(1, 2, 3)', '52'],
['=SUM(A1:C1)', '', '=A1'],
['2', '=SUM(A1:C1)', '91'],
];
const hfInstance = HyperFormula.buildFromArray(sheetData, options);
```
#### ConfigParams
This section contains information about options that allow you to configure the instance of HyperFormula.
An example set of options:
```javascript
const options = {
licenseKey: 'gpl-v3',
nullDate: { year: 1900, month: 1, day: 1 },
functionArgSeparator: '.'
};
```
#### Listeners
In this section, you can find information about all events you can subscribe to.
For example, subscribing to `sheetAdded` event:
```javascript
const hfInstance = HyperFormula.buildFromSheets({
MySheet1: [ ['1'] ],
MySheet2: [ ['10'] ],
});
const handler = ( ) => { console.log('baz') }
hfInstance.on('sheetAdded', handler);
const nameProvided = hfInstance.addSheet('MySheet3');
```
---
## AbsoluteColumnRange
URL: https://hyperformula.handsontable.com/docs/api/classes/absolutecolumnrange
# AbsoluteColumnRange
## Constructors
### constructor
\+ **new AbsoluteColumnRange**(`sheet`: number, `columnStart`: number, `columnEnd`: number): *[AbsoluteColumnRange](https://hyperformula.handsontable.com/docs/api/classes/absolutecolumnrange.md)*
*Defined in [src/AbsoluteCellRange.ts:441](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L441)*
**Parameters:**
Name | Type |
------ | ------ |
`sheet` | number |
`columnStart` | number |
`columnEnd` | number |
**Returns:** *[AbsoluteColumnRange](https://hyperformula.handsontable.com/docs/api/classes/absolutecolumnrange.md)*
## Properties
### end
• **end**: *[SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)*
*Defined in [src/AbsoluteCellRange.ts:47](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L47)*
___
### start
• **start**: *[SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)*
*Defined in [src/AbsoluteCellRange.ts:46](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L46)*
## Accessors
### sheet
• **get sheet**(): *number*
*Defined in [src/AbsoluteCellRange.ts:60](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L60)*
**Returns:** *number*
## Methods
### addressInRange
▸ **addressInRange**(`address`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)): *boolean*
*Defined in [src/AbsoluteCellRange.ts:157](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L157)*
**Parameters:**
Name | Type |
------ | ------ |
`address` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) |
**Returns:** *boolean*
___
### addresses
▸ **addresses**(`dependencyGraph`: DependencyGraph): *[SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)[]*
*Defined in [src/AbsoluteCellRange.ts:315](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L315)*
**Parameters:**
Name | Type |
------ | ------ |
`dependencyGraph` | DependencyGraph |
**Returns:** *[SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)[]*
___
### addressesArrayMap
▸ **addressesArrayMap**‹**T**›(`dependencyGraph`: DependencyGraph, `op`: function): *T[][]*
*Defined in [src/AbsoluteCellRange.ts:299](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L299)*
**Type parameters:**
▪ **T**
**Parameters:**
▪ **dependencyGraph**: *DependencyGraph*
▪ **op**: *function*
▸ (`arg`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)): *T*
**Parameters:**
Name | Type |
------ | ------ |
`arg` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) |
**Returns:** *T[][]*
___
### addressesWithDirection
▸ **addressesWithDirection**(`right`: number, `bottom`: number, `dependencyGraph`: DependencyGraph): *IterableIterator‹[SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)›*
*Defined in [src/AbsoluteCellRange.ts:331](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L331)*
**Parameters:**
Name | Type |
------ | ------ |
`right` | number |
`bottom` | number |
`dependencyGraph` | DependencyGraph |
**Returns:** *IterableIterator‹[SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)›*
___
### arrayOfAddressesInRange
▸ **arrayOfAddressesInRange**(): *[SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)[][]*
*Defined in [src/AbsoluteCellRange.ts:275](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L275)*
**Returns:** *[SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)[][]*
___
### columnInRange
▸ **columnInRange**(`address`: [SimpleColumnAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecolumnaddress.md)): *boolean*
*Defined in [src/AbsoluteCellRange.ts:168](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L168)*
**Parameters:**
Name | Type |
------ | ------ |
`address` | [SimpleColumnAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecolumnaddress.md) |
**Returns:** *boolean*
___
### containsRange
▸ **containsRange**(`range`: [AbsoluteCellRange](https://hyperformula.handsontable.com/docs/api/classes/absolutecellrange.md)): *boolean*
*Defined in [src/AbsoluteCellRange.ts:182](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L182)*
**Parameters:**
Name | Type |
------ | ------ |
`range` | [AbsoluteCellRange](https://hyperformula.handsontable.com/docs/api/classes/absolutecellrange.md) |
**Returns:** *boolean*
___
### doesOverlap
▸ **doesOverlap**(`other`: [AbsoluteCellRange](https://hyperformula.handsontable.com/docs/api/classes/absolutecellrange.md)): *boolean*
*Defined in [src/AbsoluteCellRange.ts:144](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L144)*
**Parameters:**
Name | Type |
------ | ------ |
`other` | [AbsoluteCellRange](https://hyperformula.handsontable.com/docs/api/classes/absolutecellrange.md) |
**Returns:** *boolean*
___
### effectiveEndColumn
▸ **effectiveEndColumn**(`_dependencyGraph`: DependencyGraph): *number*
*Defined in [src/AbsoluteCellRange.ts:390](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L390)*
**Parameters:**
Name | Type |
------ | ------ |
`_dependencyGraph` | DependencyGraph |
**Returns:** *number*
___
### effectiveEndRow
▸ **effectiveEndRow**(`dependencyGraph`: DependencyGraph): *number*
*Defined in [src/AbsoluteCellRange.ts:482](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L482)*
**Parameters:**
Name | Type |
------ | ------ |
`dependencyGraph` | DependencyGraph |
**Returns:** *number*
___
### effectiveHeight
▸ **effectiveHeight**(`dependencyGraph`: DependencyGraph): *number*
*Defined in [src/AbsoluteCellRange.ts:486](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L486)*
**Parameters:**
Name | Type |
------ | ------ |
`dependencyGraph` | DependencyGraph |
**Returns:** *number*
___
### effectiveWidth
▸ **effectiveWidth**(`_dependencyGraph`: DependencyGraph): *number*
*Defined in [src/AbsoluteCellRange.ts:398](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L398)*
**Parameters:**
Name | Type |
------ | ------ |
`_dependencyGraph` | DependencyGraph |
**Returns:** *number*
___
### exceedsSheetSizeLimits
▸ **exceedsSheetSizeLimits**(`maxColumns`: number, `_maxRows`: number): *boolean*
*Defined in [src/AbsoluteCellRange.ts:478](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L478)*
**Parameters:**
Name | Type |
------ | ------ |
`maxColumns` | number |
`_maxRows` | number |
**Returns:** *boolean*
___
### expandByColumns
▸ **expandByColumns**(`numberOfColumns`: number): *void*
*Defined in [src/AbsoluteCellRange.ts:230](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L230)*
**Parameters:**
Name | Type |
------ | ------ |
`numberOfColumns` | number |
**Returns:** *void*
___
### expandByRows
▸ **expandByRows**(`_numberOfRows`: number): *void*
*Defined in [src/AbsoluteCellRange.ts:466](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L466)*
**Parameters:**
Name | Type |
------ | ------ |
`_numberOfRows` | number |
**Returns:** *void*
___
### getAddress
▸ **getAddress**(`col`: number, `row`: number): *[SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)*
*Defined in [src/AbsoluteCellRange.ts:379](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L379)*
**Parameters:**
Name | Type |
------ | ------ |
`col` | number |
`row` | number |
**Returns:** *[SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)*
___
### height
▸ **height**(): *number*
*Defined in [src/AbsoluteCellRange.ts:267](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L267)*
**Returns:** *number*
___
### includesColumn
▸ **includesColumn**(`column`: number): *boolean*
*Defined in [src/AbsoluteCellRange.ts:208](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L208)*
**Parameters:**
Name | Type |
------ | ------ |
`column` | number |
**Returns:** *boolean*
___
### includesRow
▸ **includesRow**(`row`: number): *boolean*
*Defined in [src/AbsoluteCellRange.ts:204](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L204)*
**Parameters:**
Name | Type |
------ | ------ |
`row` | number |
**Returns:** *boolean*
___
### intersectionWith
▸ **intersectionWith**(`other`: [AbsoluteCellRange](https://hyperformula.handsontable.com/docs/api/classes/absolutecellrange.md)): *[Maybe](https://hyperformula.handsontable.com/docs/api/globals.md#maybe)‹[AbsoluteCellRange](https://hyperformula.handsontable.com/docs/api/classes/absolutecellrange.md)›*
*Defined in [src/AbsoluteCellRange.ts:186](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L186)*
**Parameters:**
Name | Type |
------ | ------ |
`other` | [AbsoluteCellRange](https://hyperformula.handsontable.com/docs/api/classes/absolutecellrange.md) |
**Returns:** *[Maybe](https://hyperformula.handsontable.com/docs/api/globals.md#maybe)‹[AbsoluteCellRange](https://hyperformula.handsontable.com/docs/api/classes/absolutecellrange.md)›*
___
### isFinite
▸ **isFinite**(): *boolean*
*Defined in [src/AbsoluteCellRange.ts:140](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L140)*
**Returns:** *boolean*
___
### moveToSheet
▸ **moveToSheet**(`toSheet`: number): *void*
*Defined in [src/AbsoluteCellRange.ts:234](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L234)*
**Parameters:**
Name | Type |
------ | ------ |
`toSheet` | number |
**Returns:** *void*
___
### rangeWithSameHeight
▸ **rangeWithSameHeight**(`startColumn`: number, `numberOfColumns`: number): *[AbsoluteCellRange](https://hyperformula.handsontable.com/docs/api/classes/absolutecellrange.md)*
*Defined in [src/AbsoluteCellRange.ts:474](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L474)*
**Parameters:**
Name | Type |
------ | ------ |
`startColumn` | number |
`numberOfColumns` | number |
**Returns:** *[AbsoluteCellRange](https://hyperformula.handsontable.com/docs/api/classes/absolutecellrange.md)*
___
### rangeWithSameWidth
▸ **rangeWithSameWidth**(`startRow`: number, `numberOfRows`: number): *[AbsoluteCellRange](https://hyperformula.handsontable.com/docs/api/classes/absolutecellrange.md)*
*Defined in [src/AbsoluteCellRange.ts:251](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L251)*
**Parameters:**
Name | Type |
------ | ------ |
`startRow` | number |
`numberOfRows` | number |
**Returns:** *[AbsoluteCellRange](https://hyperformula.handsontable.com/docs/api/classes/absolutecellrange.md)*
___
### removeSpan
▸ **removeSpan**(`span`: [Span](https://hyperformula.handsontable.com/docs/api/globals.md#span)): *void*
*Defined in [src/AbsoluteCellRange.ts:239](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L239)*
**Parameters:**
Name | Type |
------ | ------ |
`span` | [Span](https://hyperformula.handsontable.com/docs/api/globals.md#span) |
**Returns:** *void*
___
### rowInRange
▸ **rowInRange**(`address`: [SimpleRowAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplerowaddress.md)): *boolean*
*Defined in [src/AbsoluteCellRange.ts:175](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L175)*
**Parameters:**
Name | Type |
------ | ------ |
`address` | [SimpleRowAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplerowaddress.md) |
**Returns:** *boolean*
___
### sameAs
▸ **sameAs**(`other`: [AbsoluteCellRange](https://hyperformula.handsontable.com/docs/api/classes/absolutecellrange.md)): *boolean*
*Defined in [src/AbsoluteCellRange.ts:295](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L295)*
**Parameters:**
Name | Type |
------ | ------ |
`other` | [AbsoluteCellRange](https://hyperformula.handsontable.com/docs/api/classes/absolutecellrange.md) |
**Returns:** *boolean*
___
### sameDimensionsAs
▸ **sameDimensionsAs**(`other`: [AbsoluteCellRange](https://hyperformula.handsontable.com/docs/api/classes/absolutecellrange.md)): *boolean*
*Defined in [src/AbsoluteCellRange.ts:291](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L291)*
**Parameters:**
Name | Type |
------ | ------ |
`other` | [AbsoluteCellRange](https://hyperformula.handsontable.com/docs/api/classes/absolutecellrange.md) |
**Returns:** *boolean*
___
### shiftByColumns
▸ **shiftByColumns**(`numberOfColumns`: number): *void*
*Defined in [src/AbsoluteCellRange.ts:221](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L221)*
**Parameters:**
Name | Type |
------ | ------ |
`numberOfColumns` | number |
**Returns:** *void*
___
### shiftByRows
▸ **shiftByRows**(`_numberOfRows`: number): *void*
*Defined in [src/AbsoluteCellRange.ts:462](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L462)*
**Parameters:**
Name | Type |
------ | ------ |
`_numberOfRows` | number |
**Returns:** *void*
___
### shifted
▸ **shifted**(`byCols`: number, `_byRows`: number): *[AbsoluteCellRange](https://hyperformula.handsontable.com/docs/api/classes/absolutecellrange.md)*
*Defined in [src/AbsoluteCellRange.ts:470](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L470)*
**Parameters:**
Name | Type |
------ | ------ |
`byCols` | number |
`_byRows` | number |
**Returns:** *[AbsoluteCellRange](https://hyperformula.handsontable.com/docs/api/classes/absolutecellrange.md)*
___
### shouldBeRemoved
▸ **shouldBeRemoved**(): *boolean*
*Defined in [src/AbsoluteCellRange.ts:458](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L458)*
**Returns:** *boolean*
___
### size
▸ **size**(): *number*
*Defined in [src/AbsoluteCellRange.ts:271](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L271)*
**Returns:** *number*
___
### toString
▸ **toString**(): *string*
*Defined in [src/AbsoluteCellRange.ts:259](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L259)*
**Returns:** *string*
___
### width
▸ **width**(): *number*
*Defined in [src/AbsoluteCellRange.ts:263](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L263)*
**Returns:** *number*
___
### withStart
▸ **withStart**(`newStart`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)): *[AbsoluteCellRange](https://hyperformula.handsontable.com/docs/api/classes/absolutecellrange.md)*
*Defined in [src/AbsoluteCellRange.ts:287](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L287)*
**Parameters:**
Name | Type |
------ | ------ |
`newStart` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) |
**Returns:** *[AbsoluteCellRange](https://hyperformula.handsontable.com/docs/api/classes/absolutecellrange.md)*
___
### fromAst
▸ **fromAst**(`ast`: CellRangeAst | ColumnRangeAst | RowRangeAst, `baseAddress`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)): *[AbsoluteCellRange](https://hyperformula.handsontable.com/docs/api/classes/absolutecellrange.md)*
*Defined in [src/AbsoluteCellRange.ts:83](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L83)*
**Parameters:**
Name | Type |
------ | ------ |
`ast` | CellRangeAst | ColumnRangeAst | RowRangeAst |
`baseAddress` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) |
**Returns:** *[AbsoluteCellRange](https://hyperformula.handsontable.com/docs/api/classes/absolutecellrange.md)*
___
### fromAstOrUndef
▸ **fromAstOrUndef**(`ast`: CellRangeAst | ColumnRangeAst | RowRangeAst, `baseAddress`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)): *[Maybe](https://hyperformula.handsontable.com/docs/api/globals.md#maybe)‹[AbsoluteCellRange](https://hyperformula.handsontable.com/docs/api/classes/absolutecellrange.md)›*
*Defined in [src/AbsoluteCellRange.ts:93](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L93)*
**Parameters:**
Name | Type |
------ | ------ |
`ast` | CellRangeAst | ColumnRangeAst | RowRangeAst |
`baseAddress` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) |
**Returns:** *[Maybe](https://hyperformula.handsontable.com/docs/api/globals.md#maybe)‹[AbsoluteCellRange](https://hyperformula.handsontable.com/docs/api/classes/absolutecellrange.md)›*
___
### fromCellRange
▸ **fromCellRange**(`x`: [CellRange](https://hyperformula.handsontable.com/docs/api/interfaces/cellrange.md), `baseAddress`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)): *[AbsoluteCellRange](https://hyperformula.handsontable.com/docs/api/classes/absolutecellrange.md)*
*Defined in [src/AbsoluteCellRange.ts:101](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L101)*
**Parameters:**
Name | Type |
------ | ------ |
`x` | [CellRange](https://hyperformula.handsontable.com/docs/api/interfaces/cellrange.md) |
`baseAddress` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) |
**Returns:** *[AbsoluteCellRange](https://hyperformula.handsontable.com/docs/api/classes/absolutecellrange.md)*
___
### fromColumnRange
▸ **fromColumnRange**(`x`: ColumnRangeAst, `baseAddress`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)): *[AbsoluteColumnRange](https://hyperformula.handsontable.com/docs/api/classes/absolutecolumnrange.md)*
*Defined in [src/AbsoluteCellRange.ts:449](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L449)*
**Parameters:**
Name | Type |
------ | ------ |
`x` | ColumnRangeAst |
`baseAddress` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) |
**Returns:** *[AbsoluteColumnRange](https://hyperformula.handsontable.com/docs/api/classes/absolutecolumnrange.md)*
___
### fromCoordinates
▸ **fromCoordinates**(`sheet`: number, `x1`: number, `y1`: number, `x2`: number, `y2`: number): *[AbsoluteCellRange](https://hyperformula.handsontable.com/docs/api/classes/absolutecellrange.md)*
*Defined in [src/AbsoluteCellRange.ts:136](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L136)*
**Parameters:**
Name | Type |
------ | ------ |
`sheet` | number |
`x1` | number |
`y1` | number |
`x2` | number |
`y2` | number |
**Returns:** *[AbsoluteCellRange](https://hyperformula.handsontable.com/docs/api/classes/absolutecellrange.md)*
___
### fromSimpleCellAddresses
▸ **fromSimpleCellAddresses**(`start`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md), `end`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)): *[AbsoluteCellRange](https://hyperformula.handsontable.com/docs/api/classes/absolutecellrange.md)*
*Defined in [src/AbsoluteCellRange.ts:64](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L64)*
**Parameters:**
Name | Type |
------ | ------ |
`start` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) |
`end` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) |
**Returns:** *[AbsoluteCellRange](https://hyperformula.handsontable.com/docs/api/classes/absolutecellrange.md)*
___
### spanFrom
▸ **spanFrom**(`topLeftCorner`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md), `width`: number, `height`: number): *[AbsoluteCellRange](https://hyperformula.handsontable.com/docs/api/classes/absolutecellrange.md)*
*Defined in [src/AbsoluteCellRange.ts:108](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L108)*
**Parameters:**
Name | Type |
------ | ------ |
`topLeftCorner` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) |
`width` | number |
`height` | number |
**Returns:** *[AbsoluteCellRange](https://hyperformula.handsontable.com/docs/api/classes/absolutecellrange.md)*
___
### spanFromOrUndef
▸ **spanFromOrUndef**(`topLeftCorner`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md), `width`: number, `height`: number): *[Maybe](https://hyperformula.handsontable.com/docs/api/globals.md#maybe)‹[AbsoluteCellRange](https://hyperformula.handsontable.com/docs/api/classes/absolutecellrange.md)›*
*Defined in [src/AbsoluteCellRange.ts:116](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L116)*
**Parameters:**
Name | Type |
------ | ------ |
`topLeftCorner` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) |
`width` | number |
`height` | number |
**Returns:** *[Maybe](https://hyperformula.handsontable.com/docs/api/globals.md#maybe)‹[AbsoluteCellRange](https://hyperformula.handsontable.com/docs/api/classes/absolutecellrange.md)›*
---
## AbsoluteRowRange
URL: https://hyperformula.handsontable.com/docs/api/classes/absoluterowrange
# AbsoluteRowRange
## Constructors
### constructor
\+ **new AbsoluteRowRange**(`sheet`: number, `rowStart`: number, `rowEnd`: number): *[AbsoluteRowRange](https://hyperformula.handsontable.com/docs/api/classes/absoluterowrange.md)*
*Defined in [src/AbsoluteCellRange.ts:495](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L495)*
**Parameters:**
Name | Type |
------ | ------ |
`sheet` | number |
`rowStart` | number |
`rowEnd` | number |
**Returns:** *[AbsoluteRowRange](https://hyperformula.handsontable.com/docs/api/classes/absoluterowrange.md)*
## Properties
### end
• **end**: *[SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)*
*Defined in [src/AbsoluteCellRange.ts:47](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L47)*
___
### start
• **start**: *[SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)*
*Defined in [src/AbsoluteCellRange.ts:46](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L46)*
## Accessors
### sheet
• **get sheet**(): *number*
*Defined in [src/AbsoluteCellRange.ts:60](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L60)*
**Returns:** *number*
## Methods
### addressInRange
▸ **addressInRange**(`address`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)): *boolean*
*Defined in [src/AbsoluteCellRange.ts:157](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L157)*
**Parameters:**
Name | Type |
------ | ------ |
`address` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) |
**Returns:** *boolean*
___
### addresses
▸ **addresses**(`dependencyGraph`: DependencyGraph): *[SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)[]*
*Defined in [src/AbsoluteCellRange.ts:315](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L315)*
**Parameters:**
Name | Type |
------ | ------ |
`dependencyGraph` | DependencyGraph |
**Returns:** *[SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)[]*
___
### addressesArrayMap
▸ **addressesArrayMap**‹**T**›(`dependencyGraph`: DependencyGraph, `op`: function): *T[][]*
*Defined in [src/AbsoluteCellRange.ts:299](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L299)*
**Type parameters:**
▪ **T**
**Parameters:**
▪ **dependencyGraph**: *DependencyGraph*
▪ **op**: *function*
▸ (`arg`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)): *T*
**Parameters:**
Name | Type |
------ | ------ |
`arg` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) |
**Returns:** *T[][]*
___
### addressesWithDirection
▸ **addressesWithDirection**(`right`: number, `bottom`: number, `dependencyGraph`: DependencyGraph): *IterableIterator‹[SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)›*
*Defined in [src/AbsoluteCellRange.ts:331](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L331)*
**Parameters:**
Name | Type |
------ | ------ |
`right` | number |
`bottom` | number |
`dependencyGraph` | DependencyGraph |
**Returns:** *IterableIterator‹[SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)›*
___
### arrayOfAddressesInRange
▸ **arrayOfAddressesInRange**(): *[SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)[][]*
*Defined in [src/AbsoluteCellRange.ts:275](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L275)*
**Returns:** *[SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)[][]*
___
### columnInRange
▸ **columnInRange**(`address`: [SimpleColumnAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecolumnaddress.md)): *boolean*
*Defined in [src/AbsoluteCellRange.ts:168](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L168)*
**Parameters:**
Name | Type |
------ | ------ |
`address` | [SimpleColumnAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecolumnaddress.md) |
**Returns:** *boolean*
___
### containsRange
▸ **containsRange**(`range`: [AbsoluteCellRange](https://hyperformula.handsontable.com/docs/api/classes/absolutecellrange.md)): *boolean*
*Defined in [src/AbsoluteCellRange.ts:182](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L182)*
**Parameters:**
Name | Type |
------ | ------ |
`range` | [AbsoluteCellRange](https://hyperformula.handsontable.com/docs/api/classes/absolutecellrange.md) |
**Returns:** *boolean*
___
### doesOverlap
▸ **doesOverlap**(`other`: [AbsoluteCellRange](https://hyperformula.handsontable.com/docs/api/classes/absolutecellrange.md)): *boolean*
*Defined in [src/AbsoluteCellRange.ts:144](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L144)*
**Parameters:**
Name | Type |
------ | ------ |
`other` | [AbsoluteCellRange](https://hyperformula.handsontable.com/docs/api/classes/absolutecellrange.md) |
**Returns:** *boolean*
___
### effectiveEndColumn
▸ **effectiveEndColumn**(`dependencyGraph`: DependencyGraph): *number*
*Defined in [src/AbsoluteCellRange.ts:536](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L536)*
**Parameters:**
Name | Type |
------ | ------ |
`dependencyGraph` | DependencyGraph |
**Returns:** *number*
___
### effectiveEndRow
▸ **effectiveEndRow**(`_dependencyGraph`: DependencyGraph): *number*
*Defined in [src/AbsoluteCellRange.ts:394](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L394)*
**Parameters:**
Name | Type |
------ | ------ |
`_dependencyGraph` | DependencyGraph |
**Returns:** *number*
___
### effectiveHeight
▸ **effectiveHeight**(`_dependencyGraph`: DependencyGraph): *number*
*Defined in [src/AbsoluteCellRange.ts:402](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L402)*
**Parameters:**
Name | Type |
------ | ------ |
`_dependencyGraph` | DependencyGraph |
**Returns:** *number*
___
### effectiveWidth
▸ **effectiveWidth**(`dependencyGraph`: DependencyGraph): *number*
*Defined in [src/AbsoluteCellRange.ts:540](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L540)*
**Parameters:**
Name | Type |
------ | ------ |
`dependencyGraph` | DependencyGraph |
**Returns:** *number*
___
### exceedsSheetSizeLimits
▸ **exceedsSheetSizeLimits**(`_maxColumns`: number, `maxRows`: number): *boolean*
*Defined in [src/AbsoluteCellRange.ts:532](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L532)*
**Parameters:**
Name | Type |
------ | ------ |
`_maxColumns` | number |
`maxRows` | number |
**Returns:** *boolean*
___
### expandByColumns
▸ **expandByColumns**(`_numberOfColumns`: number): *void*
*Defined in [src/AbsoluteCellRange.ts:520](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L520)*
**Parameters:**
Name | Type |
------ | ------ |
`_numberOfColumns` | number |
**Returns:** *void*
___
### expandByRows
▸ **expandByRows**(`numberOfRows`: number): *void*
*Defined in [src/AbsoluteCellRange.ts:217](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L217)*
**Parameters:**
Name | Type |
------ | ------ |
`numberOfRows` | number |
**Returns:** *void*
___
### getAddress
▸ **getAddress**(`col`: number, `row`: number): *[SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)*
*Defined in [src/AbsoluteCellRange.ts:379](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L379)*
**Parameters:**
Name | Type |
------ | ------ |
`col` | number |
`row` | number |
**Returns:** *[SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)*
___
### height
▸ **height**(): *number*
*Defined in [src/AbsoluteCellRange.ts:267](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L267)*
**Returns:** *number*
___
### includesColumn
▸ **includesColumn**(`column`: number): *boolean*
*Defined in [src/AbsoluteCellRange.ts:208](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L208)*
**Parameters:**
Name | Type |
------ | ------ |
`column` | number |
**Returns:** *boolean*
___
### includesRow
▸ **includesRow**(`row`: number): *boolean*
*Defined in [src/AbsoluteCellRange.ts:204](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L204)*
**Parameters:**
Name | Type |
------ | ------ |
`row` | number |
**Returns:** *boolean*
___
### intersectionWith
▸ **intersectionWith**(`other`: [AbsoluteCellRange](https://hyperformula.handsontable.com/docs/api/classes/absolutecellrange.md)): *[Maybe](https://hyperformula.handsontable.com/docs/api/globals.md#maybe)‹[AbsoluteCellRange](https://hyperformula.handsontable.com/docs/api/classes/absolutecellrange.md)›*
*Defined in [src/AbsoluteCellRange.ts:186](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L186)*
**Parameters:**
Name | Type |
------ | ------ |
`other` | [AbsoluteCellRange](https://hyperformula.handsontable.com/docs/api/classes/absolutecellrange.md) |
**Returns:** *[Maybe](https://hyperformula.handsontable.com/docs/api/globals.md#maybe)‹[AbsoluteCellRange](https://hyperformula.handsontable.com/docs/api/classes/absolutecellrange.md)›*
___
### isFinite
▸ **isFinite**(): *boolean*
*Defined in [src/AbsoluteCellRange.ts:140](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L140)*
**Returns:** *boolean*
___
### moveToSheet
▸ **moveToSheet**(`toSheet`: number): *void*
*Defined in [src/AbsoluteCellRange.ts:234](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L234)*
**Parameters:**
Name | Type |
------ | ------ |
`toSheet` | number |
**Returns:** *void*
___
### rangeWithSameHeight
▸ **rangeWithSameHeight**(`startColumn`: number, `numberOfColumns`: number): *[AbsoluteCellRange](https://hyperformula.handsontable.com/docs/api/classes/absolutecellrange.md)*
*Defined in [src/AbsoluteCellRange.ts:255](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L255)*
**Parameters:**
Name | Type |
------ | ------ |
`startColumn` | number |
`numberOfColumns` | number |
**Returns:** *[AbsoluteCellRange](https://hyperformula.handsontable.com/docs/api/classes/absolutecellrange.md)*
___
### rangeWithSameWidth
▸ **rangeWithSameWidth**(`startRow`: number, `numberOfRows`: number): *[AbsoluteCellRange](https://hyperformula.handsontable.com/docs/api/classes/absolutecellrange.md)*
*Defined in [src/AbsoluteCellRange.ts:528](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L528)*
**Parameters:**
Name | Type |
------ | ------ |
`startRow` | number |
`numberOfRows` | number |
**Returns:** *[AbsoluteCellRange](https://hyperformula.handsontable.com/docs/api/classes/absolutecellrange.md)*
___
### removeSpan
▸ **removeSpan**(`span`: [Span](https://hyperformula.handsontable.com/docs/api/globals.md#span)): *void*
*Defined in [src/AbsoluteCellRange.ts:239](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L239)*
**Parameters:**
Name | Type |
------ | ------ |
`span` | [Span](https://hyperformula.handsontable.com/docs/api/globals.md#span) |
**Returns:** *void*
___
### rowInRange
▸ **rowInRange**(`address`: [SimpleRowAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplerowaddress.md)): *boolean*
*Defined in [src/AbsoluteCellRange.ts:175](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L175)*
**Parameters:**
Name | Type |
------ | ------ |
`address` | [SimpleRowAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplerowaddress.md) |
**Returns:** *boolean*
___
### sameAs
▸ **sameAs**(`other`: [AbsoluteCellRange](https://hyperformula.handsontable.com/docs/api/classes/absolutecellrange.md)): *boolean*
*Defined in [src/AbsoluteCellRange.ts:295](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L295)*
**Parameters:**
Name | Type |
------ | ------ |
`other` | [AbsoluteCellRange](https://hyperformula.handsontable.com/docs/api/classes/absolutecellrange.md) |
**Returns:** *boolean*
___
### sameDimensionsAs
▸ **sameDimensionsAs**(`other`: [AbsoluteCellRange](https://hyperformula.handsontable.com/docs/api/classes/absolutecellrange.md)): *boolean*
*Defined in [src/AbsoluteCellRange.ts:291](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L291)*
**Parameters:**
Name | Type |
------ | ------ |
`other` | [AbsoluteCellRange](https://hyperformula.handsontable.com/docs/api/classes/absolutecellrange.md) |
**Returns:** *boolean*
___
### shiftByColumns
▸ **shiftByColumns**(`_numberOfColumns`: number): *void*
*Defined in [src/AbsoluteCellRange.ts:516](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L516)*
**Parameters:**
Name | Type |
------ | ------ |
`_numberOfColumns` | number |
**Returns:** *void*
___
### shiftByRows
▸ **shiftByRows**(`numberOfRows`: number): *void*
*Defined in [src/AbsoluteCellRange.ts:212](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L212)*
**Parameters:**
Name | Type |
------ | ------ |
`numberOfRows` | number |
**Returns:** *void*
___
### shifted
▸ **shifted**(`byCols`: number, `byRows`: number): *[AbsoluteCellRange](https://hyperformula.handsontable.com/docs/api/classes/absolutecellrange.md)*
*Defined in [src/AbsoluteCellRange.ts:524](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L524)*
**Parameters:**
Name | Type |
------ | ------ |
`byCols` | number |
`byRows` | number |
**Returns:** *[AbsoluteCellRange](https://hyperformula.handsontable.com/docs/api/classes/absolutecellrange.md)*
___
### shouldBeRemoved
▸ **shouldBeRemoved**(): *boolean*
*Defined in [src/AbsoluteCellRange.ts:512](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L512)*
**Returns:** *boolean*
___
### size
▸ **size**(): *number*
*Defined in [src/AbsoluteCellRange.ts:271](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L271)*
**Returns:** *number*
___
### toString
▸ **toString**(): *string*
*Defined in [src/AbsoluteCellRange.ts:259](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L259)*
**Returns:** *string*
___
### width
▸ **width**(): *number*
*Defined in [src/AbsoluteCellRange.ts:263](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L263)*
**Returns:** *number*
___
### withStart
▸ **withStart**(`newStart`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)): *[AbsoluteCellRange](https://hyperformula.handsontable.com/docs/api/classes/absolutecellrange.md)*
*Defined in [src/AbsoluteCellRange.ts:287](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L287)*
**Parameters:**
Name | Type |
------ | ------ |
`newStart` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) |
**Returns:** *[AbsoluteCellRange](https://hyperformula.handsontable.com/docs/api/classes/absolutecellrange.md)*
___
### fromAst
▸ **fromAst**(`ast`: CellRangeAst | ColumnRangeAst | RowRangeAst, `baseAddress`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)): *[AbsoluteCellRange](https://hyperformula.handsontable.com/docs/api/classes/absolutecellrange.md)*
*Defined in [src/AbsoluteCellRange.ts:83](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L83)*
**Parameters:**
Name | Type |
------ | ------ |
`ast` | CellRangeAst | ColumnRangeAst | RowRangeAst |
`baseAddress` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) |
**Returns:** *[AbsoluteCellRange](https://hyperformula.handsontable.com/docs/api/classes/absolutecellrange.md)*
___
### fromAstOrUndef
▸ **fromAstOrUndef**(`ast`: CellRangeAst | ColumnRangeAst | RowRangeAst, `baseAddress`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)): *[Maybe](https://hyperformula.handsontable.com/docs/api/globals.md#maybe)‹[AbsoluteCellRange](https://hyperformula.handsontable.com/docs/api/classes/absolutecellrange.md)›*
*Defined in [src/AbsoluteCellRange.ts:93](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L93)*
**Parameters:**
Name | Type |
------ | ------ |
`ast` | CellRangeAst | ColumnRangeAst | RowRangeAst |
`baseAddress` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) |
**Returns:** *[Maybe](https://hyperformula.handsontable.com/docs/api/globals.md#maybe)‹[AbsoluteCellRange](https://hyperformula.handsontable.com/docs/api/classes/absolutecellrange.md)›*
___
### fromCellRange
▸ **fromCellRange**(`x`: [CellRange](https://hyperformula.handsontable.com/docs/api/interfaces/cellrange.md), `baseAddress`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)): *[AbsoluteCellRange](https://hyperformula.handsontable.com/docs/api/classes/absolutecellrange.md)*
*Defined in [src/AbsoluteCellRange.ts:101](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L101)*
**Parameters:**
Name | Type |
------ | ------ |
`x` | [CellRange](https://hyperformula.handsontable.com/docs/api/interfaces/cellrange.md) |
`baseAddress` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) |
**Returns:** *[AbsoluteCellRange](https://hyperformula.handsontable.com/docs/api/classes/absolutecellrange.md)*
___
### fromCoordinates
▸ **fromCoordinates**(`sheet`: number, `x1`: number, `y1`: number, `x2`: number, `y2`: number): *[AbsoluteCellRange](https://hyperformula.handsontable.com/docs/api/classes/absolutecellrange.md)*
*Defined in [src/AbsoluteCellRange.ts:136](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L136)*
**Parameters:**
Name | Type |
------ | ------ |
`sheet` | number |
`x1` | number |
`y1` | number |
`x2` | number |
`y2` | number |
**Returns:** *[AbsoluteCellRange](https://hyperformula.handsontable.com/docs/api/classes/absolutecellrange.md)*
___
### fromRowRangeAst
▸ **fromRowRangeAst**(`x`: RowRangeAst, `baseAddress`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)): *[AbsoluteRowRange](https://hyperformula.handsontable.com/docs/api/classes/absoluterowrange.md)*
*Defined in [src/AbsoluteCellRange.ts:503](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L503)*
**Parameters:**
Name | Type |
------ | ------ |
`x` | RowRangeAst |
`baseAddress` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) |
**Returns:** *[AbsoluteRowRange](https://hyperformula.handsontable.com/docs/api/classes/absoluterowrange.md)*
___
### fromSimpleCellAddresses
▸ **fromSimpleCellAddresses**(`start`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md), `end`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)): *[AbsoluteCellRange](https://hyperformula.handsontable.com/docs/api/classes/absolutecellrange.md)*
*Defined in [src/AbsoluteCellRange.ts:64](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L64)*
**Parameters:**
Name | Type |
------ | ------ |
`start` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) |
`end` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) |
**Returns:** *[AbsoluteCellRange](https://hyperformula.handsontable.com/docs/api/classes/absolutecellrange.md)*
___
### spanFrom
▸ **spanFrom**(`topLeftCorner`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md), `width`: number, `height`: number): *[AbsoluteCellRange](https://hyperformula.handsontable.com/docs/api/classes/absolutecellrange.md)*
*Defined in [src/AbsoluteCellRange.ts:108](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L108)*
**Parameters:**
Name | Type |
------ | ------ |
`topLeftCorner` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) |
`width` | number |
`height` | number |
**Returns:** *[AbsoluteCellRange](https://hyperformula.handsontable.com/docs/api/classes/absolutecellrange.md)*
___
### spanFromOrUndef
▸ **spanFromOrUndef**(`topLeftCorner`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md), `width`: number, `height`: number): *[Maybe](https://hyperformula.handsontable.com/docs/api/globals.md#maybe)‹[AbsoluteCellRange](https://hyperformula.handsontable.com/docs/api/classes/absolutecellrange.md)›*
*Defined in [src/AbsoluteCellRange.ts:116](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L116)*
**Parameters:**
Name | Type |
------ | ------ |
`topLeftCorner` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) |
`width` | number |
`height` | number |
**Returns:** *[Maybe](https://hyperformula.handsontable.com/docs/api/globals.md#maybe)‹[AbsoluteCellRange](https://hyperformula.handsontable.com/docs/api/classes/absolutecellrange.md)›*
---
## AddColumnsCommand
URL: https://hyperformula.handsontable.com/docs/api/classes/addcolumnscommand
# AddColumnsCommand
## Constructors
### constructor
\+ **new AddColumnsCommand**(`sheet`: number, `indexes`: [ColumnRowIndex](https://hyperformula.handsontable.com/docs/api/globals.md#columnrowindex)[]): *[AddColumnsCommand](https://hyperformula.handsontable.com/docs/api/classes/addcolumnscommand.md)*
*Defined in [src/Operations.ts:96](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Operations.ts#L96)*
**Parameters:**
Name | Type |
------ | ------ |
`sheet` | number |
`indexes` | [ColumnRowIndex](https://hyperformula.handsontable.com/docs/api/globals.md#columnrowindex)[] |
**Returns:** *[AddColumnsCommand](https://hyperformula.handsontable.com/docs/api/classes/addcolumnscommand.md)*
## Properties
### indexes
• **indexes**: *[ColumnRowIndex](https://hyperformula.handsontable.com/docs/api/globals.md#columnrowindex)[]*
*Defined in [src/Operations.ts:99](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Operations.ts#L99)*
___
### sheet
• **sheet**: *number*
*Defined in [src/Operations.ts:98](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Operations.ts#L98)*
## Methods
### columnsSpans
▸ **columnsSpans**(): *[ColumnsSpan](https://hyperformula.handsontable.com/docs/api/classes/columnsspan.md)[]*
*Defined in [src/Operations.ts:107](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Operations.ts#L107)*
**Returns:** *[ColumnsSpan](https://hyperformula.handsontable.com/docs/api/classes/columnsspan.md)[]*
___
### normalizedIndexes
▸ **normalizedIndexes**(): *[ColumnRowIndex](https://hyperformula.handsontable.com/docs/api/globals.md#columnrowindex)[]*
*Defined in [src/Operations.ts:103](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Operations.ts#L103)*
**Returns:** *[ColumnRowIndex](https://hyperformula.handsontable.com/docs/api/globals.md#columnrowindex)[]*
---
## AddNamedExpressionUndoEntry
URL: https://hyperformula.handsontable.com/docs/api/classes/addnamedexpressionundoentry
# AddNamedExpressionUndoEntry
## Constructors
### constructor
\+ **new AddNamedExpressionUndoEntry**(`name`: string, `newContent`: [RawCellContent](https://hyperformula.handsontable.com/docs/api/globals.md#rawcellcontent), `scope?`: undefined | number, `options?`: [NamedExpressionOptions](https://hyperformula.handsontable.com/docs/api/globals.md#namedexpressionoptions)): *[AddNamedExpressionUndoEntry](https://hyperformula.handsontable.com/docs/api/classes/addnamedexpressionundoentry.md)*
*Defined in [src/UndoRedo.ts:385](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L385)*
**Parameters:**
Name | Type |
------ | ------ |
`name` | string |
`newContent` | [RawCellContent](https://hyperformula.handsontable.com/docs/api/globals.md#rawcellcontent) |
`scope?` | undefined | number |
`options?` | [NamedExpressionOptions](https://hyperformula.handsontable.com/docs/api/globals.md#namedexpressionoptions) |
**Returns:** *[AddNamedExpressionUndoEntry](https://hyperformula.handsontable.com/docs/api/classes/addnamedexpressionundoentry.md)*
## Properties
### name
• **name**: *string*
*Defined in [src/UndoRedo.ts:387](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L387)*
___
### newContent
• **newContent**: *[RawCellContent](https://hyperformula.handsontable.com/docs/api/globals.md#rawcellcontent)*
*Defined in [src/UndoRedo.ts:388](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L388)*
___
### options
• **options**? : *[NamedExpressionOptions](https://hyperformula.handsontable.com/docs/api/globals.md#namedexpressionoptions)*
*Defined in [src/UndoRedo.ts:390](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L390)*
___
### scope
• **scope**? : *undefined | number*
*Defined in [src/UndoRedo.ts:389](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L389)*
## Methods
### doRedo
▸ **doRedo**(`undoRedo`: [UndoRedo](https://hyperformula.handsontable.com/docs/api/classes/undoredo.md)): *void*
*Defined in [src/UndoRedo.ts:399](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L399)*
**Parameters:**
Name | Type |
------ | ------ |
`undoRedo` | [UndoRedo](https://hyperformula.handsontable.com/docs/api/classes/undoredo.md) |
**Returns:** *void*
___
### doUndo
▸ **doUndo**(`undoRedo`: [UndoRedo](https://hyperformula.handsontable.com/docs/api/classes/undoredo.md)): *void*
*Defined in [src/UndoRedo.ts:395](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L395)*
**Parameters:**
Name | Type |
------ | ------ |
`undoRedo` | [UndoRedo](https://hyperformula.handsontable.com/docs/api/classes/undoredo.md) |
**Returns:** *void*
___
### getReferencedOldDataVersions
▸ **getReferencedOldDataVersions**(): *number[]*
*Defined in [src/UndoRedo.ts:42](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L42)*
Returns LazilyTransformingAstService version keys referenced by this entry's oldData.
Default implementation returns empty — override in entries that store oldData.
**Returns:** *number[]*
---
## AddRowsCommand
URL: https://hyperformula.handsontable.com/docs/api/classes/addrowscommand
# AddRowsCommand
## Constructors
### constructor
\+ **new AddRowsCommand**(`sheet`: number, `indexes`: [ColumnRowIndex](https://hyperformula.handsontable.com/docs/api/globals.md#columnrowindex)[]): *[AddRowsCommand](https://hyperformula.handsontable.com/docs/api/classes/addrowscommand.md)*
*Defined in [src/Operations.ts:78](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Operations.ts#L78)*
**Parameters:**
Name | Type |
------ | ------ |
`sheet` | number |
`indexes` | [ColumnRowIndex](https://hyperformula.handsontable.com/docs/api/globals.md#columnrowindex)[] |
**Returns:** *[AddRowsCommand](https://hyperformula.handsontable.com/docs/api/classes/addrowscommand.md)*
## Properties
### indexes
• **indexes**: *[ColumnRowIndex](https://hyperformula.handsontable.com/docs/api/globals.md#columnrowindex)[]*
*Defined in [src/Operations.ts:81](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Operations.ts#L81)*
___
### sheet
• **sheet**: *number*
*Defined in [src/Operations.ts:80](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Operations.ts#L80)*
## Methods
### normalizedIndexes
▸ **normalizedIndexes**(): *[ColumnRowIndex](https://hyperformula.handsontable.com/docs/api/globals.md#columnrowindex)[]*
*Defined in [src/Operations.ts:85](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Operations.ts#L85)*
**Returns:** *[ColumnRowIndex](https://hyperformula.handsontable.com/docs/api/globals.md#columnrowindex)[]*
___
### rowsSpans
▸ **rowsSpans**(): *[RowsSpan](https://hyperformula.handsontable.com/docs/api/classes/rowsspan.md)[]*
*Defined in [src/Operations.ts:89](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Operations.ts#L89)*
**Returns:** *[RowsSpan](https://hyperformula.handsontable.com/docs/api/classes/rowsspan.md)[]*
---
## AbsoluteCellRange
URL: https://hyperformula.handsontable.com/docs/api/classes/absolutecellrange
# AbsoluteCellRange
## Constructors
### constructor
\+ **new AbsoluteCellRange**(`start`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md), `end`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)): *[AbsoluteCellRange](https://hyperformula.handsontable.com/docs/api/classes/absolutecellrange.md)*
*Defined in [src/AbsoluteCellRange.ts:47](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L47)*
**Parameters:**
Name | Type |
------ | ------ |
`start` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) |
`end` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) |
**Returns:** *[AbsoluteCellRange](https://hyperformula.handsontable.com/docs/api/classes/absolutecellrange.md)*
## Properties
### end
• **end**: *[SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)*
*Defined in [src/AbsoluteCellRange.ts:47](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L47)*
___
### start
• **start**: *[SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)*
*Defined in [src/AbsoluteCellRange.ts:46](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L46)*
## Accessors
### sheet
• **get sheet**(): *number*
*Defined in [src/AbsoluteCellRange.ts:60](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L60)*
**Returns:** *number*
## Methods
### addressInRange
▸ **addressInRange**(`address`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)): *boolean*
*Defined in [src/AbsoluteCellRange.ts:157](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L157)*
**Parameters:**
Name | Type |
------ | ------ |
`address` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) |
**Returns:** *boolean*
___
### addresses
▸ **addresses**(`dependencyGraph`: DependencyGraph): *[SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)[]*
*Defined in [src/AbsoluteCellRange.ts:315](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L315)*
**Parameters:**
Name | Type |
------ | ------ |
`dependencyGraph` | DependencyGraph |
**Returns:** *[SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)[]*
___
### addressesArrayMap
▸ **addressesArrayMap**‹**T**›(`dependencyGraph`: DependencyGraph, `op`: function): *T[][]*
*Defined in [src/AbsoluteCellRange.ts:299](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L299)*
**Type parameters:**
▪ **T**
**Parameters:**
▪ **dependencyGraph**: *DependencyGraph*
▪ **op**: *function*
▸ (`arg`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)): *T*
**Parameters:**
Name | Type |
------ | ------ |
`arg` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) |
**Returns:** *T[][]*
___
### addressesWithDirection
▸ **addressesWithDirection**(`right`: number, `bottom`: number, `dependencyGraph`: DependencyGraph): *IterableIterator‹[SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)›*
*Defined in [src/AbsoluteCellRange.ts:331](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L331)*
**Parameters:**
Name | Type |
------ | ------ |
`right` | number |
`bottom` | number |
`dependencyGraph` | DependencyGraph |
**Returns:** *IterableIterator‹[SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)›*
___
### arrayOfAddressesInRange
▸ **arrayOfAddressesInRange**(): *[SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)[][]*
*Defined in [src/AbsoluteCellRange.ts:275](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L275)*
**Returns:** *[SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)[][]*
___
### columnInRange
▸ **columnInRange**(`address`: [SimpleColumnAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecolumnaddress.md)): *boolean*
*Defined in [src/AbsoluteCellRange.ts:168](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L168)*
**Parameters:**
Name | Type |
------ | ------ |
`address` | [SimpleColumnAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecolumnaddress.md) |
**Returns:** *boolean*
___
### containsRange
▸ **containsRange**(`range`: [AbsoluteCellRange](https://hyperformula.handsontable.com/docs/api/classes/absolutecellrange.md)): *boolean*
*Defined in [src/AbsoluteCellRange.ts:182](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L182)*
**Parameters:**
Name | Type |
------ | ------ |
`range` | [AbsoluteCellRange](https://hyperformula.handsontable.com/docs/api/classes/absolutecellrange.md) |
**Returns:** *boolean*
___
### doesOverlap
▸ **doesOverlap**(`other`: [AbsoluteCellRange](https://hyperformula.handsontable.com/docs/api/classes/absolutecellrange.md)): *boolean*
*Defined in [src/AbsoluteCellRange.ts:144](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L144)*
**Parameters:**
Name | Type |
------ | ------ |
`other` | [AbsoluteCellRange](https://hyperformula.handsontable.com/docs/api/classes/absolutecellrange.md) |
**Returns:** *boolean*
___
### effectiveEndColumn
▸ **effectiveEndColumn**(`_dependencyGraph`: DependencyGraph): *number*
*Defined in [src/AbsoluteCellRange.ts:390](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L390)*
**Parameters:**
Name | Type |
------ | ------ |
`_dependencyGraph` | DependencyGraph |
**Returns:** *number*
___
### effectiveEndRow
▸ **effectiveEndRow**(`_dependencyGraph`: DependencyGraph): *number*
*Defined in [src/AbsoluteCellRange.ts:394](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L394)*
**Parameters:**
Name | Type |
------ | ------ |
`_dependencyGraph` | DependencyGraph |
**Returns:** *number*
___
### effectiveHeight
▸ **effectiveHeight**(`_dependencyGraph`: DependencyGraph): *number*
*Defined in [src/AbsoluteCellRange.ts:402](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L402)*
**Parameters:**
Name | Type |
------ | ------ |
`_dependencyGraph` | DependencyGraph |
**Returns:** *number*
___
### effectiveWidth
▸ **effectiveWidth**(`_dependencyGraph`: DependencyGraph): *number*
*Defined in [src/AbsoluteCellRange.ts:398](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L398)*
**Parameters:**
Name | Type |
------ | ------ |
`_dependencyGraph` | DependencyGraph |
**Returns:** *number*
___
### exceedsSheetSizeLimits
▸ **exceedsSheetSizeLimits**(`maxColumns`: number, `maxRows`: number): *boolean*
*Defined in [src/AbsoluteCellRange.ts:386](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L386)*
**Parameters:**
Name | Type |
------ | ------ |
`maxColumns` | number |
`maxRows` | number |
**Returns:** *boolean*
___
### expandByColumns
▸ **expandByColumns**(`numberOfColumns`: number): *void*
*Defined in [src/AbsoluteCellRange.ts:230](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L230)*
**Parameters:**
Name | Type |
------ | ------ |
`numberOfColumns` | number |
**Returns:** *void*
___
### expandByRows
▸ **expandByRows**(`numberOfRows`: number): *void*
*Defined in [src/AbsoluteCellRange.ts:217](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L217)*
**Parameters:**
Name | Type |
------ | ------ |
`numberOfRows` | number |
**Returns:** *void*
___
### getAddress
▸ **getAddress**(`col`: number, `row`: number): *[SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)*
*Defined in [src/AbsoluteCellRange.ts:379](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L379)*
**Parameters:**
Name | Type |
------ | ------ |
`col` | number |
`row` | number |
**Returns:** *[SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)*
___
### height
▸ **height**(): *number*
*Defined in [src/AbsoluteCellRange.ts:267](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L267)*
**Returns:** *number*
___
### includesColumn
▸ **includesColumn**(`column`: number): *boolean*
*Defined in [src/AbsoluteCellRange.ts:208](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L208)*
**Parameters:**
Name | Type |
------ | ------ |
`column` | number |
**Returns:** *boolean*
___
### includesRow
▸ **includesRow**(`row`: number): *boolean*
*Defined in [src/AbsoluteCellRange.ts:204](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L204)*
**Parameters:**
Name | Type |
------ | ------ |
`row` | number |
**Returns:** *boolean*
___
### intersectionWith
▸ **intersectionWith**(`other`: [AbsoluteCellRange](https://hyperformula.handsontable.com/docs/api/classes/absolutecellrange.md)): *[Maybe](https://hyperformula.handsontable.com/docs/api/globals.md#maybe)‹[AbsoluteCellRange](https://hyperformula.handsontable.com/docs/api/classes/absolutecellrange.md)›*
*Defined in [src/AbsoluteCellRange.ts:186](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L186)*
**Parameters:**
Name | Type |
------ | ------ |
`other` | [AbsoluteCellRange](https://hyperformula.handsontable.com/docs/api/classes/absolutecellrange.md) |
**Returns:** *[Maybe](https://hyperformula.handsontable.com/docs/api/globals.md#maybe)‹[AbsoluteCellRange](https://hyperformula.handsontable.com/docs/api/classes/absolutecellrange.md)›*
___
### isFinite
▸ **isFinite**(): *boolean*
*Defined in [src/AbsoluteCellRange.ts:140](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L140)*
**Returns:** *boolean*
___
### moveToSheet
▸ **moveToSheet**(`toSheet`: number): *void*
*Defined in [src/AbsoluteCellRange.ts:234](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L234)*
**Parameters:**
Name | Type |
------ | ------ |
`toSheet` | number |
**Returns:** *void*
___
### rangeWithSameHeight
▸ **rangeWithSameHeight**(`startColumn`: number, `numberOfColumns`: number): *[AbsoluteCellRange](https://hyperformula.handsontable.com/docs/api/classes/absolutecellrange.md)*
*Defined in [src/AbsoluteCellRange.ts:255](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L255)*
**Parameters:**
Name | Type |
------ | ------ |
`startColumn` | number |
`numberOfColumns` | number |
**Returns:** *[AbsoluteCellRange](https://hyperformula.handsontable.com/docs/api/classes/absolutecellrange.md)*
___
### rangeWithSameWidth
▸ **rangeWithSameWidth**(`startRow`: number, `numberOfRows`: number): *[AbsoluteCellRange](https://hyperformula.handsontable.com/docs/api/classes/absolutecellrange.md)*
*Defined in [src/AbsoluteCellRange.ts:251](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L251)*
**Parameters:**
Name | Type |
------ | ------ |
`startRow` | number |
`numberOfRows` | number |
**Returns:** *[AbsoluteCellRange](https://hyperformula.handsontable.com/docs/api/classes/absolutecellrange.md)*
___
### removeSpan
▸ **removeSpan**(`span`: [Span](https://hyperformula.handsontable.com/docs/api/globals.md#span)): *void*
*Defined in [src/AbsoluteCellRange.ts:239](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L239)*
**Parameters:**
Name | Type |
------ | ------ |
`span` | [Span](https://hyperformula.handsontable.com/docs/api/globals.md#span) |
**Returns:** *void*
___
### rowInRange
▸ **rowInRange**(`address`: [SimpleRowAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplerowaddress.md)): *boolean*
*Defined in [src/AbsoluteCellRange.ts:175](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L175)*
**Parameters:**
Name | Type |
------ | ------ |
`address` | [SimpleRowAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplerowaddress.md) |
**Returns:** *boolean*
___
### sameAs
▸ **sameAs**(`other`: [AbsoluteCellRange](https://hyperformula.handsontable.com/docs/api/classes/absolutecellrange.md)): *boolean*
*Defined in [src/AbsoluteCellRange.ts:295](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L295)*
**Parameters:**
Name | Type |
------ | ------ |
`other` | [AbsoluteCellRange](https://hyperformula.handsontable.com/docs/api/classes/absolutecellrange.md) |
**Returns:** *boolean*
___
### sameDimensionsAs
▸ **sameDimensionsAs**(`other`: [AbsoluteCellRange](https://hyperformula.handsontable.com/docs/api/classes/absolutecellrange.md)): *boolean*
*Defined in [src/AbsoluteCellRange.ts:291](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L291)*
**Parameters:**
Name | Type |
------ | ------ |
`other` | [AbsoluteCellRange](https://hyperformula.handsontable.com/docs/api/classes/absolutecellrange.md) |
**Returns:** *boolean*
___
### shiftByColumns
▸ **shiftByColumns**(`numberOfColumns`: number): *void*
*Defined in [src/AbsoluteCellRange.ts:221](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L221)*
**Parameters:**
Name | Type |
------ | ------ |
`numberOfColumns` | number |
**Returns:** *void*
___
### shiftByRows
▸ **shiftByRows**(`numberOfRows`: number): *void*
*Defined in [src/AbsoluteCellRange.ts:212](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L212)*
**Parameters:**
Name | Type |
------ | ------ |
`numberOfRows` | number |
**Returns:** *void*
___
### shifted
▸ **shifted**(`byCols`: number, `byRows`: number): *[AbsoluteCellRange](https://hyperformula.handsontable.com/docs/api/classes/absolutecellrange.md)*
*Defined in [src/AbsoluteCellRange.ts:226](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L226)*
**Parameters:**
Name | Type |
------ | ------ |
`byCols` | number |
`byRows` | number |
**Returns:** *[AbsoluteCellRange](https://hyperformula.handsontable.com/docs/api/classes/absolutecellrange.md)*
___
### shouldBeRemoved
▸ **shouldBeRemoved**(): *boolean*
*Defined in [src/AbsoluteCellRange.ts:247](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L247)*
**Returns:** *boolean*
___
### size
▸ **size**(): *number*
*Defined in [src/AbsoluteCellRange.ts:271](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L271)*
**Returns:** *number*
___
### toString
▸ **toString**(): *string*
*Defined in [src/AbsoluteCellRange.ts:259](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L259)*
**Returns:** *string*
___
### width
▸ **width**(): *number*
*Defined in [src/AbsoluteCellRange.ts:263](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L263)*
**Returns:** *number*
___
### withStart
▸ **withStart**(`newStart`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)): *[AbsoluteCellRange](https://hyperformula.handsontable.com/docs/api/classes/absolutecellrange.md)*
*Defined in [src/AbsoluteCellRange.ts:287](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L287)*
**Parameters:**
Name | Type |
------ | ------ |
`newStart` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) |
**Returns:** *[AbsoluteCellRange](https://hyperformula.handsontable.com/docs/api/classes/absolutecellrange.md)*
___
### fromAst
▸ **fromAst**(`ast`: CellRangeAst | ColumnRangeAst | RowRangeAst, `baseAddress`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)): *[AbsoluteCellRange](https://hyperformula.handsontable.com/docs/api/classes/absolutecellrange.md)*
*Defined in [src/AbsoluteCellRange.ts:83](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L83)*
**Parameters:**
Name | Type |
------ | ------ |
`ast` | CellRangeAst | ColumnRangeAst | RowRangeAst |
`baseAddress` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) |
**Returns:** *[AbsoluteCellRange](https://hyperformula.handsontable.com/docs/api/classes/absolutecellrange.md)*
___
### fromAstOrUndef
▸ **fromAstOrUndef**(`ast`: CellRangeAst | ColumnRangeAst | RowRangeAst, `baseAddress`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)): *[Maybe](https://hyperformula.handsontable.com/docs/api/globals.md#maybe)‹[AbsoluteCellRange](https://hyperformula.handsontable.com/docs/api/classes/absolutecellrange.md)›*
*Defined in [src/AbsoluteCellRange.ts:93](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L93)*
**Parameters:**
Name | Type |
------ | ------ |
`ast` | CellRangeAst | ColumnRangeAst | RowRangeAst |
`baseAddress` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) |
**Returns:** *[Maybe](https://hyperformula.handsontable.com/docs/api/globals.md#maybe)‹[AbsoluteCellRange](https://hyperformula.handsontable.com/docs/api/classes/absolutecellrange.md)›*
___
### fromCellRange
▸ **fromCellRange**(`x`: [CellRange](https://hyperformula.handsontable.com/docs/api/interfaces/cellrange.md), `baseAddress`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)): *[AbsoluteCellRange](https://hyperformula.handsontable.com/docs/api/classes/absolutecellrange.md)*
*Defined in [src/AbsoluteCellRange.ts:101](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L101)*
**Parameters:**
Name | Type |
------ | ------ |
`x` | [CellRange](https://hyperformula.handsontable.com/docs/api/interfaces/cellrange.md) |
`baseAddress` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) |
**Returns:** *[AbsoluteCellRange](https://hyperformula.handsontable.com/docs/api/classes/absolutecellrange.md)*
___
### fromCoordinates
▸ **fromCoordinates**(`sheet`: number, `x1`: number, `y1`: number, `x2`: number, `y2`: number): *[AbsoluteCellRange](https://hyperformula.handsontable.com/docs/api/classes/absolutecellrange.md)*
*Defined in [src/AbsoluteCellRange.ts:136](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L136)*
**Parameters:**
Name | Type |
------ | ------ |
`sheet` | number |
`x1` | number |
`y1` | number |
`x2` | number |
`y2` | number |
**Returns:** *[AbsoluteCellRange](https://hyperformula.handsontable.com/docs/api/classes/absolutecellrange.md)*
___
### fromSimpleCellAddresses
▸ **fromSimpleCellAddresses**(`start`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md), `end`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)): *[AbsoluteCellRange](https://hyperformula.handsontable.com/docs/api/classes/absolutecellrange.md)*
*Defined in [src/AbsoluteCellRange.ts:64](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L64)*
**Parameters:**
Name | Type |
------ | ------ |
`start` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) |
`end` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) |
**Returns:** *[AbsoluteCellRange](https://hyperformula.handsontable.com/docs/api/classes/absolutecellrange.md)*
___
### spanFrom
▸ **spanFrom**(`topLeftCorner`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md), `width`: number, `height`: number): *[AbsoluteCellRange](https://hyperformula.handsontable.com/docs/api/classes/absolutecellrange.md)*
*Defined in [src/AbsoluteCellRange.ts:108](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L108)*
**Parameters:**
Name | Type |
------ | ------ |
`topLeftCorner` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) |
`width` | number |
`height` | number |
**Returns:** *[AbsoluteCellRange](https://hyperformula.handsontable.com/docs/api/classes/absolutecellrange.md)*
___
### spanFromOrUndef
▸ **spanFromOrUndef**(`topLeftCorner`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md), `width`: number, `height`: number): *[Maybe](https://hyperformula.handsontable.com/docs/api/globals.md#maybe)‹[AbsoluteCellRange](https://hyperformula.handsontable.com/docs/api/classes/absolutecellrange.md)›*
*Defined in [src/AbsoluteCellRange.ts:116](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L116)*
**Parameters:**
Name | Type |
------ | ------ |
`topLeftCorner` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) |
`width` | number |
`height` | number |
**Returns:** *[Maybe](https://hyperformula.handsontable.com/docs/api/globals.md#maybe)‹[AbsoluteCellRange](https://hyperformula.handsontable.com/docs/api/classes/absolutecellrange.md)›*
---
## AddRowsUndoEntry
URL: https://hyperformula.handsontable.com/docs/api/classes/addrowsundoentry
# AddRowsUndoEntry
## Constructors
### constructor
\+ **new AddRowsUndoEntry**(`command`: [AddRowsCommand](https://hyperformula.handsontable.com/docs/api/classes/addrowscommand.md)): *[AddRowsUndoEntry](https://hyperformula.handsontable.com/docs/api/classes/addrowsundoentry.md)*
*Defined in [src/UndoRedo.ts:94](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L94)*
**Parameters:**
Name | Type |
------ | ------ |
`command` | [AddRowsCommand](https://hyperformula.handsontable.com/docs/api/classes/addrowscommand.md) |
**Returns:** *[AddRowsUndoEntry](https://hyperformula.handsontable.com/docs/api/classes/addrowsundoentry.md)*
## Properties
### command
• **command**: *[AddRowsCommand](https://hyperformula.handsontable.com/docs/api/classes/addrowscommand.md)*
*Defined in [src/UndoRedo.ts:96](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L96)*
## Methods
### doRedo
▸ **doRedo**(`undoRedo`: [UndoRedo](https://hyperformula.handsontable.com/docs/api/classes/undoredo.md)): *void*
*Defined in [src/UndoRedo.ts:105](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L105)*
**Parameters:**
Name | Type |
------ | ------ |
`undoRedo` | [UndoRedo](https://hyperformula.handsontable.com/docs/api/classes/undoredo.md) |
**Returns:** *void*
___
### doUndo
▸ **doUndo**(`undoRedo`: [UndoRedo](https://hyperformula.handsontable.com/docs/api/classes/undoredo.md)): *void*
*Defined in [src/UndoRedo.ts:101](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L101)*
**Parameters:**
Name | Type |
------ | ------ |
`undoRedo` | [UndoRedo](https://hyperformula.handsontable.com/docs/api/classes/undoredo.md) |
**Returns:** *void*
___
### getReferencedOldDataVersions
▸ **getReferencedOldDataVersions**(): *number[]*
*Defined in [src/UndoRedo.ts:42](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L42)*
Returns LazilyTransformingAstService version keys referenced by this entry's oldData.
Default implementation returns empty — override in entries that store oldData.
**Returns:** *number[]*
---
## AddSheetUndoEntry
URL: https://hyperformula.handsontable.com/docs/api/classes/addsheetundoentry
# AddSheetUndoEntry
## Constructors
### constructor
\+ **new AddSheetUndoEntry**(`sheetName`: string, `sheetId`: number): *[AddSheetUndoEntry](https://hyperformula.handsontable.com/docs/api/classes/addsheetundoentry.md)*
*Defined in [src/UndoRedo.ts:259](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L259)*
**Parameters:**
Name | Type |
------ | ------ |
`sheetName` | string |
`sheetId` | number |
**Returns:** *[AddSheetUndoEntry](https://hyperformula.handsontable.com/docs/api/classes/addsheetundoentry.md)*
## Properties
### sheetId
• **sheetId**: *number*
*Defined in [src/UndoRedo.ts:262](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L262)*
___
### sheetName
• **sheetName**: *string*
*Defined in [src/UndoRedo.ts:261](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L261)*
## Methods
### doRedo
▸ **doRedo**(`undoRedo`: [UndoRedo](https://hyperformula.handsontable.com/docs/api/classes/undoredo.md)): *void*
*Defined in [src/UndoRedo.ts:271](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L271)*
**Parameters:**
Name | Type |
------ | ------ |
`undoRedo` | [UndoRedo](https://hyperformula.handsontable.com/docs/api/classes/undoredo.md) |
**Returns:** *void*
___
### doUndo
▸ **doUndo**(`undoRedo`: [UndoRedo](https://hyperformula.handsontable.com/docs/api/classes/undoredo.md)): *void*
*Defined in [src/UndoRedo.ts:267](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L267)*
**Parameters:**
Name | Type |
------ | ------ |
`undoRedo` | [UndoRedo](https://hyperformula.handsontable.com/docs/api/classes/undoredo.md) |
**Returns:** *void*
___
### getReferencedOldDataVersions
▸ **getReferencedOldDataVersions**(): *number[]*
*Defined in [src/UndoRedo.ts:42](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L42)*
Returns LazilyTransformingAstService version keys referenced by this entry's oldData.
Default implementation returns empty — override in entries that store oldData.
**Returns:** *number[]*
---
## AddColumnsUndoEntry
URL: https://hyperformula.handsontable.com/docs/api/classes/addcolumnsundoentry
# AddColumnsUndoEntry
## Constructors
### constructor
\+ **new AddColumnsUndoEntry**(`command`: [AddColumnsCommand](https://hyperformula.handsontable.com/docs/api/classes/addcolumnscommand.md)): *[AddColumnsUndoEntry](https://hyperformula.handsontable.com/docs/api/classes/addcolumnsundoentry.md)*
*Defined in [src/UndoRedo.ts:222](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L222)*
**Parameters:**
Name | Type |
------ | ------ |
`command` | [AddColumnsCommand](https://hyperformula.handsontable.com/docs/api/classes/addcolumnscommand.md) |
**Returns:** *[AddColumnsUndoEntry](https://hyperformula.handsontable.com/docs/api/classes/addcolumnsundoentry.md)*
## Properties
### command
• **command**: *[AddColumnsCommand](https://hyperformula.handsontable.com/docs/api/classes/addcolumnscommand.md)*
*Defined in [src/UndoRedo.ts:224](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L224)*
## Methods
### doRedo
▸ **doRedo**(`undoRedo`: [UndoRedo](https://hyperformula.handsontable.com/docs/api/classes/undoredo.md)): *void*
*Defined in [src/UndoRedo.ts:233](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L233)*
**Parameters:**
Name | Type |
------ | ------ |
`undoRedo` | [UndoRedo](https://hyperformula.handsontable.com/docs/api/classes/undoredo.md) |
**Returns:** *void*
___
### doUndo
▸ **doUndo**(`undoRedo`: [UndoRedo](https://hyperformula.handsontable.com/docs/api/classes/undoredo.md)): *void*
*Defined in [src/UndoRedo.ts:229](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L229)*
**Parameters:**
Name | Type |
------ | ------ |
`undoRedo` | [UndoRedo](https://hyperformula.handsontable.com/docs/api/classes/undoredo.md) |
**Returns:** *void*
___
### getReferencedOldDataVersions
▸ **getReferencedOldDataVersions**(): *number[]*
*Defined in [src/UndoRedo.ts:42](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L42)*
Returns LazilyTransformingAstService version keys referenced by this entry's oldData.
Default implementation returns empty — override in entries that store oldData.
**Returns:** *number[]*
---
## AdvancedFind
URL: https://hyperformula.handsontable.com/docs/api/classes/advancedfind
# AdvancedFind
## Methods
### advancedFind
▸ **advancedFind**(`keyMatcher`: function, `rangeValue`: [SimpleRangeValue](https://hyperformula.handsontable.com/docs/api/classes/simplerangevalue.md), `__namedParameters`: object): *number*
*Defined in [src/Lookup/AdvancedFind.ts:27](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Lookup/AdvancedFind.ts#L27)*
**Parameters:**
▪ **keyMatcher**: *function*
▸ (`arg`: RawInterpreterValue): *boolean*
**Parameters:**
Name | Type |
------ | ------ |
`arg` | RawInterpreterValue |
▪ **rangeValue**: *[SimpleRangeValue](https://hyperformula.handsontable.com/docs/api/classes/simplerangevalue.md)*
▪`Default value` **__namedParameters**: *object*= { returnOccurrence: 'first' }
Name | Type |
------ | ------ |
`returnOccurrence` | undefined | "first" | "last" |
**Returns:** *number*
---
## AliasAlreadyExisting
URL: https://hyperformula.handsontable.com/docs/api/classes/aliasalreadyexisting
# AliasAlreadyExisting
Error thrown when alias to a function is already defined.
**`see`** [registerFunctionPlugin](https://hyperformula.handsontable.com/docs/api/classes/hyperformula.md#static-registerfunctionplugin)
**`see`** [registerFunction](https://hyperformula.handsontable.com/docs/api/classes/hyperformula.md#static-registerfunction)
## Constructors
### constructor
\+ **new AliasAlreadyExisting**(`name`: string, `pluginName`: string): *[AliasAlreadyExisting](https://hyperformula.handsontable.com/docs/api/classes/aliasalreadyexisting.md)*
*Defined in [src/errors.ts:390](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/errors.ts#L390)*
**Parameters:**
Name | Type |
------ | ------ |
`name` | string |
`pluginName` | string |
**Returns:** *[AliasAlreadyExisting](https://hyperformula.handsontable.com/docs/api/classes/aliasalreadyexisting.md)*
## Properties
### message
• **message**: *string*
___
### name
• **name**: *string*
___
### stack
• **stack**? : *undefined | string*
___
### Error
▪ **Error**: *ErrorConstructor*
---
## ArraySizePredictor
URL: https://hyperformula.handsontable.com/docs/api/classes/arraysizepredictor
# ArraySizePredictor
## Constructors
### constructor
\+ **new ArraySizePredictor**(`config`: [Config](https://hyperformula.handsontable.com/docs/api/classes/config.md), `functionRegistry`: FunctionRegistry): *[ArraySizePredictor](https://hyperformula.handsontable.com/docs/api/classes/arraysizepredictor.md)*
*Defined in [src/ArraySize.ts:42](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ArraySize.ts#L42)*
**Parameters:**
Name | Type |
------ | ------ |
`config` | [Config](https://hyperformula.handsontable.com/docs/api/classes/config.md) |
`functionRegistry` | FunctionRegistry |
**Returns:** *[ArraySizePredictor](https://hyperformula.handsontable.com/docs/api/classes/arraysizepredictor.md)*
## Methods
### checkArraySize
▸ **checkArraySize**(`ast`: Ast, `formulaAddress`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)): *[ArraySize](https://hyperformula.handsontable.com/docs/api/classes/arraysize.md)*
*Defined in [src/ArraySize.ts:49](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ArraySize.ts#L49)*
**Parameters:**
Name | Type |
------ | ------ |
`ast` | Ast |
`formulaAddress` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) |
**Returns:** *[ArraySize](https://hyperformula.handsontable.com/docs/api/classes/arraysize.md)*
___
### checkArraySizeForAst
▸ **checkArraySizeForAst**(`ast`: Ast, `state`: InterpreterState): *[ArraySize](https://hyperformula.handsontable.com/docs/api/classes/arraysize.md)*
*Defined in [src/ArraySize.ts:53](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ArraySize.ts#L53)*
**Parameters:**
Name | Type |
------ | ------ |
`ast` | Ast |
`state` | InterpreterState |
**Returns:** *[ArraySize](https://hyperformula.handsontable.com/docs/api/classes/arraysize.md)*
---
## ArraySize
URL: https://hyperformula.handsontable.com/docs/api/classes/arraysize
# ArraySize
## Constructors
### constructor
\+ **new ArraySize**(`width`: number, `height`: number, `isRef`: boolean): *[ArraySize](https://hyperformula.handsontable.com/docs/api/classes/arraysize.md)*
*Defined in [src/ArraySize.ts:14](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ArraySize.ts#L14)*
**Parameters:**
Name | Type | Default |
------ | ------ | ------ |
`width` | number | - |
`height` | number | - |
`isRef` | boolean | false |
**Returns:** *[ArraySize](https://hyperformula.handsontable.com/docs/api/classes/arraysize.md)*
## Properties
### height
• **height**: *number*
*Defined in [src/ArraySize.ts:17](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ArraySize.ts#L17)*
___
### isRef
• **isRef**: *boolean*
*Defined in [src/ArraySize.ts:18](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ArraySize.ts#L18)*
___
### width
• **width**: *number*
*Defined in [src/ArraySize.ts:16](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ArraySize.ts#L16)*
## Methods
### isScalar
▸ **isScalar**(): *boolean*
*Defined in [src/ArraySize.ts:29](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ArraySize.ts#L29)*
**Returns:** *boolean*
___
### error
▸ **error**(): *[ArraySize](https://hyperformula.handsontable.com/docs/api/classes/arraysize.md)‹›*
*Defined in [src/ArraySize.ts:21](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ArraySize.ts#L21)*
**Returns:** *[ArraySize](https://hyperformula.handsontable.com/docs/api/classes/arraysize.md)‹›*
___
### scalar
▸ **scalar**(): *[ArraySize](https://hyperformula.handsontable.com/docs/api/classes/arraysize.md)‹›*
*Defined in [src/ArraySize.ts:25](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ArraySize.ts#L25)*
**Returns:** *[ArraySize](https://hyperformula.handsontable.com/docs/api/classes/arraysize.md)‹›*
---
## BaseUndoEntry
URL: https://hyperformula.handsontable.com/docs/api/classes/baseundoentry
# BaseUndoEntry
## Methods
### doRedo
▸ **doRedo**(`undoRedo`: [UndoRedo](https://hyperformula.handsontable.com/docs/api/classes/undoredo.md)): *void*
*Defined in [src/UndoRedo.ts:36](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L36)*
**Parameters:**
Name | Type |
------ | ------ |
`undoRedo` | [UndoRedo](https://hyperformula.handsontable.com/docs/api/classes/undoredo.md) |
**Returns:** *void*
___
### doUndo
▸ **doUndo**(`undoRedo`: [UndoRedo](https://hyperformula.handsontable.com/docs/api/classes/undoredo.md)): *void*
*Defined in [src/UndoRedo.ts:34](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L34)*
**Parameters:**
Name | Type |
------ | ------ |
`undoRedo` | [UndoRedo](https://hyperformula.handsontable.com/docs/api/classes/undoredo.md) |
**Returns:** *void*
___
### getReferencedOldDataVersions
▸ **getReferencedOldDataVersions**(): *number[]*
*Defined in [src/UndoRedo.ts:42](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L42)*
Returns LazilyTransformingAstService version keys referenced by this entry's oldData.
Default implementation returns empty — override in entries that store oldData.
**Returns:** *number[]*
---
## ArrayValue
URL: https://hyperformula.handsontable.com/docs/api/classes/arrayvalue
# ArrayValue
## Constructors
### constructor
\+ **new ArrayValue**(`array`: InternalScalarValue[][]): *[ArrayValue](https://hyperformula.handsontable.com/docs/api/classes/arrayvalue.md)*
*Defined in [src/ArrayValue.ts:47](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ArrayValue.ts#L47)*
**Parameters:**
Name | Type |
------ | ------ |
`array` | InternalScalarValue[][] |
**Returns:** *[ArrayValue](https://hyperformula.handsontable.com/docs/api/classes/arrayvalue.md)*
## Properties
### size
• **size**: *[ArraySize](https://hyperformula.handsontable.com/docs/api/classes/arraysize.md)*
*Defined in [src/ArrayValue.ts:46](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ArrayValue.ts#L46)*
## Methods
### addColumns
▸ **addColumns**(`aboveColumn`: number, `numberOfColumns`: number): *void*
*Defined in [src/ArrayValue.ts:75](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ArrayValue.ts#L75)*
**Parameters:**
Name | Type |
------ | ------ |
`aboveColumn` | number |
`numberOfColumns` | number |
**Returns:** *void*
___
### addRows
▸ **addRows**(`aboveRow`: number, `numberOfRows`: number): *void*
*Defined in [src/ArrayValue.ts:70](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ArrayValue.ts#L70)*
**Parameters:**
Name | Type |
------ | ------ |
`aboveRow` | number |
`numberOfRows` | number |
**Returns:** *void*
___
### get
▸ **get**(`col`: number, `row`: number): *InternalScalarValue*
*Defined in [src/ArrayValue.ts:110](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ArrayValue.ts#L110)*
**Parameters:**
Name | Type |
------ | ------ |
`col` | number |
`row` | number |
**Returns:** *InternalScalarValue*
___
### height
▸ **height**(): *number*
*Defined in [src/ArrayValue.ts:128](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ArrayValue.ts#L128)*
**Returns:** *number*
___
### nullArrays
▸ **nullArrays**(`count`: number, `size`: number): *any[][]*
*Defined in [src/ArrayValue.ts:102](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ArrayValue.ts#L102)*
**Parameters:**
Name | Type |
------ | ------ |
`count` | number |
`size` | number |
**Returns:** *any[][]*
___
### raw
▸ **raw**(): *InternalScalarValue[][]*
*Defined in [src/ArrayValue.ts:132](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ArrayValue.ts#L132)*
**Returns:** *InternalScalarValue[][]*
___
### removeColumns
▸ **removeColumns**(`leftmostColumn`: number, `rightmostColumn`: number): *void*
*Defined in [src/ArrayValue.ts:91](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ArrayValue.ts#L91)*
**Parameters:**
Name | Type |
------ | ------ |
`leftmostColumn` | number |
`rightmostColumn` | number |
**Returns:** *void*
___
### removeRows
▸ **removeRows**(`startRow`: number, `endRow`: number): *void*
*Defined in [src/ArrayValue.ts:82](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ArrayValue.ts#L82)*
**Parameters:**
Name | Type |
------ | ------ |
`startRow` | number |
`endRow` | number |
**Returns:** *void*
___
### resize
▸ **resize**(`newSize`: [ArraySize](https://hyperformula.handsontable.com/docs/api/classes/arraysize.md)): *void*
*Defined in [src/ArrayValue.ts:136](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ArrayValue.ts#L136)*
**Parameters:**
Name | Type |
------ | ------ |
`newSize` | [ArraySize](https://hyperformula.handsontable.com/docs/api/classes/arraysize.md) |
**Returns:** *void*
___
### set
▸ **set**(`col`: number, `row`: number, `value`: number): *void*
*Defined in [src/ArrayValue.ts:117](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ArrayValue.ts#L117)*
**Parameters:**
Name | Type |
------ | ------ |
`col` | number |
`row` | number |
`value` | number |
**Returns:** *void*
___
### simpleRangeValue
▸ **simpleRangeValue**(): *[SimpleRangeValue](https://hyperformula.handsontable.com/docs/api/classes/simplerangevalue.md)*
*Defined in [src/ArrayValue.ts:66](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ArrayValue.ts#L66)*
**Returns:** *[SimpleRangeValue](https://hyperformula.handsontable.com/docs/api/classes/simplerangevalue.md)*
___
### width
▸ **width**(): *number*
*Defined in [src/ArrayValue.ts:124](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ArrayValue.ts#L124)*
**Returns:** *number*
___
### fromInterpreterValue
▸ **fromInterpreterValue**(`value`: InterpreterValue): *[ArrayValue](https://hyperformula.handsontable.com/docs/api/classes/arrayvalue.md)‹›*
*Defined in [src/ArrayValue.ts:58](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ArrayValue.ts#L58)*
**Parameters:**
Name | Type |
------ | ------ |
`value` | InterpreterValue |
**Returns:** *[ArrayValue](https://hyperformula.handsontable.com/docs/api/classes/arrayvalue.md)‹›*
---
## BatchUndoEntry
URL: https://hyperformula.handsontable.com/docs/api/classes/batchundoentry
# BatchUndoEntry
## Properties
### operations
• **operations**: *[UndoEntry](https://hyperformula.handsontable.com/docs/api/interfaces/undoentry.md)[]* = []
*Defined in [src/UndoRedo.ts:443](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L443)*
## Methods
### add
▸ **add**(`operation`: [UndoEntry](https://hyperformula.handsontable.com/docs/api/interfaces/undoentry.md)): *void*
*Defined in [src/UndoRedo.ts:445](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L445)*
**Parameters:**
Name | Type |
------ | ------ |
`operation` | [UndoEntry](https://hyperformula.handsontable.com/docs/api/interfaces/undoentry.md) |
**Returns:** *void*
___
### doRedo
▸ **doRedo**(`undoRedo`: [UndoRedo](https://hyperformula.handsontable.com/docs/api/classes/undoredo.md)): *void*
*Defined in [src/UndoRedo.ts:459](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L459)*
**Parameters:**
Name | Type |
------ | ------ |
`undoRedo` | [UndoRedo](https://hyperformula.handsontable.com/docs/api/classes/undoredo.md) |
**Returns:** *void*
___
### doUndo
▸ **doUndo**(`undoRedo`: [UndoRedo](https://hyperformula.handsontable.com/docs/api/classes/undoredo.md)): *void*
*Defined in [src/UndoRedo.ts:455](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L455)*
**Parameters:**
Name | Type |
------ | ------ |
`undoRedo` | [UndoRedo](https://hyperformula.handsontable.com/docs/api/classes/undoredo.md) |
**Returns:** *void*
___
### getReferencedOldDataVersions
▸ **getReferencedOldDataVersions**(): *number[]*
*Defined in [src/UndoRedo.ts:463](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L463)*
**Returns:** *number[]*
___
### reversedOperations
▸ **reversedOperations**(): *Generator‹[UndoEntry](https://hyperformula.handsontable.com/docs/api/interfaces/undoentry.md), void, unknown›*
*Defined in [src/UndoRedo.ts:449](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L449)*
**Returns:** *Generator‹[UndoEntry](https://hyperformula.handsontable.com/docs/api/interfaces/undoentry.md), void, unknown›*
---
## BuildEngineFactory
URL: https://hyperformula.handsontable.com/docs/api/classes/buildenginefactory
# BuildEngineFactory
## Methods
### buildEmpty
▸ **buildEmpty**(`configInput`: Partial‹[ConfigParams](https://hyperformula.handsontable.com/docs/api/interfaces/configparams.md)›, `namedExpressions`: [SerializedNamedExpression](https://hyperformula.handsontable.com/docs/api/interfaces/serializednamedexpression.md)[]): *[EngineState](https://hyperformula.handsontable.com/docs/api/globals.md#enginestate)*
*Defined in [src/BuildEngineFactory.ts:62](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/BuildEngineFactory.ts#L62)*
**Parameters:**
Name | Type | Default |
------ | ------ | ------ |
`configInput` | Partial‹[ConfigParams](https://hyperformula.handsontable.com/docs/api/interfaces/configparams.md)› | {} |
`namedExpressions` | [SerializedNamedExpression](https://hyperformula.handsontable.com/docs/api/interfaces/serializednamedexpression.md)[] | [] |
**Returns:** *[EngineState](https://hyperformula.handsontable.com/docs/api/globals.md#enginestate)*
___
### buildFromSheet
▸ **buildFromSheet**(`sheet`: [Sheet](https://hyperformula.handsontable.com/docs/api/globals.md#sheet), `configInput`: Partial‹[ConfigParams](https://hyperformula.handsontable.com/docs/api/interfaces/configparams.md)›, `namedExpressions`: [SerializedNamedExpression](https://hyperformula.handsontable.com/docs/api/interfaces/serializednamedexpression.md)[]): *[EngineState](https://hyperformula.handsontable.com/docs/api/globals.md#enginestate)*
*Defined in [src/BuildEngineFactory.ts:56](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/BuildEngineFactory.ts#L56)*
**Parameters:**
Name | Type | Default |
------ | ------ | ------ |
`sheet` | [Sheet](https://hyperformula.handsontable.com/docs/api/globals.md#sheet) | - |
`configInput` | Partial‹[ConfigParams](https://hyperformula.handsontable.com/docs/api/interfaces/configparams.md)› | {} |
`namedExpressions` | [SerializedNamedExpression](https://hyperformula.handsontable.com/docs/api/interfaces/serializednamedexpression.md)[] | [] |
**Returns:** *[EngineState](https://hyperformula.handsontable.com/docs/api/globals.md#enginestate)*
___
### buildFromSheets
▸ **buildFromSheets**(`sheets`: [Sheets](https://hyperformula.handsontable.com/docs/api/globals.md#sheets), `configInput`: Partial‹[ConfigParams](https://hyperformula.handsontable.com/docs/api/interfaces/configparams.md)›, `namedExpressions`: [SerializedNamedExpression](https://hyperformula.handsontable.com/docs/api/interfaces/serializednamedexpression.md)[]): *[EngineState](https://hyperformula.handsontable.com/docs/api/globals.md#enginestate)*
*Defined in [src/BuildEngineFactory.ts:51](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/BuildEngineFactory.ts#L51)*
**Parameters:**
Name | Type | Default |
------ | ------ | ------ |
`sheets` | [Sheets](https://hyperformula.handsontable.com/docs/api/globals.md#sheets) | - |
`configInput` | Partial‹[ConfigParams](https://hyperformula.handsontable.com/docs/api/interfaces/configparams.md)› | {} |
`namedExpressions` | [SerializedNamedExpression](https://hyperformula.handsontable.com/docs/api/interfaces/serializednamedexpression.md)[] | [] |
**Returns:** *[EngineState](https://hyperformula.handsontable.com/docs/api/globals.md#enginestate)*
___
### rebuildWithConfig
▸ **rebuildWithConfig**(`config`: [Config](https://hyperformula.handsontable.com/docs/api/classes/config.md), `sheets`: [Sheets](https://hyperformula.handsontable.com/docs/api/globals.md#sheets), `namedExpressions`: [SerializedNamedExpression](https://hyperformula.handsontable.com/docs/api/interfaces/serializednamedexpression.md)[], `stats`: [Statistics](https://hyperformula.handsontable.com/docs/api/classes/statistics.md)): *[EngineState](https://hyperformula.handsontable.com/docs/api/globals.md#enginestate)*
*Defined in [src/BuildEngineFactory.ts:66](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/BuildEngineFactory.ts#L66)*
**Parameters:**
Name | Type |
------ | ------ |
`config` | [Config](https://hyperformula.handsontable.com/docs/api/classes/config.md) |
`sheets` | [Sheets](https://hyperformula.handsontable.com/docs/api/globals.md#sheets) |
`namedExpressions` | [SerializedNamedExpression](https://hyperformula.handsontable.com/docs/api/interfaces/serializednamedexpression.md)[] |
`stats` | [Statistics](https://hyperformula.handsontable.com/docs/api/classes/statistics.md) |
**Returns:** *[EngineState](https://hyperformula.handsontable.com/docs/api/globals.md#enginestate)*
---
## Empty
URL: https://hyperformula.handsontable.com/docs/api/classes/cellcontent.empty
# Empty
## Methods
### getSingletonInstance
▸ **getSingletonInstance**(): *[Empty](https://hyperformula.handsontable.com/docs/api/classes/cellcontent.empty.md)‹›*
*Defined in [src/CellContentParser.ts:48](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/CellContentParser.ts#L48)*
**Returns:** *[Empty](https://hyperformula.handsontable.com/docs/api/classes/cellcontent.empty.md)‹›*
---
## Formula
URL: https://hyperformula.handsontable.com/docs/api/classes/cellcontent.formula
# Formula
## Constructors
### constructor
\+ **new Formula**(`formula`: string): *[Formula](https://hyperformula.handsontable.com/docs/api/classes/cellcontent.formula.md)*
*Defined in [src/CellContentParser.ts:56](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/CellContentParser.ts#L56)*
**Parameters:**
Name | Type |
------ | ------ |
`formula` | string |
**Returns:** *[Formula](https://hyperformula.handsontable.com/docs/api/classes/cellcontent.formula.md)*
## Properties
### formula
• **formula**: *string*
*Defined in [src/CellContentParser.ts:57](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/CellContentParser.ts#L57)*
---
## Boolean
URL: https://hyperformula.handsontable.com/docs/api/classes/cellcontent.boolean
# Boolean
## Constructors
### constructor
\+ **new Boolean**(`value`: boolean): *[Boolean](https://hyperformula.handsontable.com/docs/api/classes/cellcontent.boolean.md)*
*Defined in [src/CellContentParser.ts:39](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/CellContentParser.ts#L39)*
**Parameters:**
Name | Type |
------ | ------ |
`value` | boolean |
**Returns:** *[Boolean](https://hyperformula.handsontable.com/docs/api/classes/cellcontent.boolean.md)*
## Properties
### value
• **value**: *boolean*
*Defined in [src/CellContentParser.ts:40](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/CellContentParser.ts#L40)*
---
## Error
URL: https://hyperformula.handsontable.com/docs/api/classes/cellcontent.error
# Error
## Constructors
### constructor
\+ **new Error**(`errorType`: [ErrorType](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-errortype), `message?`: undefined | string): *[Error](https://hyperformula.handsontable.com/docs/api/classes/cellcontent.error.md)*
*Defined in [src/CellContentParser.ts:62](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/CellContentParser.ts#L62)*
**Parameters:**
Name | Type |
------ | ------ |
`errorType` | [ErrorType](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-errortype) |
`message?` | undefined | string |
**Returns:** *[Error](https://hyperformula.handsontable.com/docs/api/classes/cellcontent.error.md)*
## Properties
### value
• **value**: *[CellError](https://hyperformula.handsontable.com/docs/api/classes/cellerror.md)*
*Defined in [src/CellContentParser.ts:62](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/CellContentParser.ts#L62)*
---
## Number
URL: https://hyperformula.handsontable.com/docs/api/classes/cellcontent.number
# Number
## Constructors
### constructor
\+ **new Number**(`value`: ExtendedNumber): *[Number](https://hyperformula.handsontable.com/docs/api/classes/cellcontent.number.md)*
*Defined in [src/CellContentParser.ts:28](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/CellContentParser.ts#L28)*
**Parameters:**
Name | Type |
------ | ------ |
`value` | ExtendedNumber |
**Returns:** *[Number](https://hyperformula.handsontable.com/docs/api/classes/cellcontent.number.md)*
## Properties
### value
• **value**: *ExtendedNumber*
*Defined in [src/CellContentParser.ts:29](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/CellContentParser.ts#L29)*
---
## String
URL: https://hyperformula.handsontable.com/docs/api/classes/cellcontent.string
# String
## Constructors
### constructor
\+ **new String**(`value`: string): *[String](https://hyperformula.handsontable.com/docs/api/classes/cellcontent.string.md)*
*Defined in [src/CellContentParser.ts:34](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/CellContentParser.ts#L34)*
**Parameters:**
Name | Type |
------ | ------ |
`value` | string |
**Returns:** *[String](https://hyperformula.handsontable.com/docs/api/classes/cellcontent.string.md)*
## Properties
### value
• **value**: *string*
*Defined in [src/CellContentParser.ts:35](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/CellContentParser.ts#L35)*
---
## CellContentParser
URL: https://hyperformula.handsontable.com/docs/api/classes/cellcontentparser
# CellContentParser
## Constructors
### constructor
\+ **new CellContentParser**(`config`: [Config](https://hyperformula.handsontable.com/docs/api/classes/config.md), `dateHelper`: [DateTimeHelper](https://hyperformula.handsontable.com/docs/api/classes/datetimehelper.md), `numberLiteralsHelper`: [NumberLiteralHelper](https://hyperformula.handsontable.com/docs/api/classes/numberliteralhelper.md)): *[CellContentParser](https://hyperformula.handsontable.com/docs/api/classes/cellcontentparser.md)*
*Defined in [src/CellContentParser.ts:92](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/CellContentParser.ts#L92)*
**Parameters:**
Name | Type |
------ | ------ |
`config` | [Config](https://hyperformula.handsontable.com/docs/api/classes/config.md) |
`dateHelper` | [DateTimeHelper](https://hyperformula.handsontable.com/docs/api/classes/datetimehelper.md) |
`numberLiteralsHelper` | [NumberLiteralHelper](https://hyperformula.handsontable.com/docs/api/classes/numberliteralhelper.md) |
**Returns:** *[CellContentParser](https://hyperformula.handsontable.com/docs/api/classes/cellcontentparser.md)*
## Methods
### parse
▸ **parse**(`content`: [RawCellContent](https://hyperformula.handsontable.com/docs/api/globals.md#rawcellcontent)): *[Type](https://hyperformula.handsontable.com/docs/api/modules/cellcontent.md#type)*
*Defined in [src/CellContentParser.ts:99](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/CellContentParser.ts#L99)*
**Parameters:**
Name | Type |
------ | ------ |
`content` | [RawCellContent](https://hyperformula.handsontable.com/docs/api/globals.md#rawcellcontent) |
**Returns:** *[Type](https://hyperformula.handsontable.com/docs/api/modules/cellcontent.md#type)*
---
## CellError
URL: https://hyperformula.handsontable.com/docs/api/classes/cellerror
# CellError
## Constructors
### constructor
\+ **new CellError**(`type`: [ErrorType](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-errortype), `message?`: undefined | string, `root?`: FormulaVertex): *[CellError](https://hyperformula.handsontable.com/docs/api/classes/cellerror.md)*
*Defined in [src/Cell.ts:149](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Cell.ts#L149)*
**Parameters:**
Name | Type |
------ | ------ |
`type` | [ErrorType](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-errortype) |
`message?` | undefined | string |
`root?` | FormulaVertex |
**Returns:** *[CellError](https://hyperformula.handsontable.com/docs/api/classes/cellerror.md)*
## Properties
### message
• **message**? : *undefined | string*
*Defined in [src/Cell.ts:152](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Cell.ts#L152)*
___
### root
• **root**? : *FormulaVertex*
*Defined in [src/Cell.ts:153](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Cell.ts#L153)*
___
### type
• **type**: *[ErrorType](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-errortype)*
*Defined in [src/Cell.ts:151](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Cell.ts#L151)*
## Methods
### attachRootVertex
▸ **attachRootVertex**(`vertex`: FormulaVertex): *[CellError](https://hyperformula.handsontable.com/docs/api/classes/cellerror.md)*
*Defined in [src/Cell.ts:165](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Cell.ts#L165)*
**Parameters:**
Name | Type |
------ | ------ |
`vertex` | FormulaVertex |
**Returns:** *[CellError](https://hyperformula.handsontable.com/docs/api/classes/cellerror.md)*
___
### parsingError
▸ **parsingError**(`detailedMessage?`: undefined | string): *[CellError](https://hyperformula.handsontable.com/docs/api/classes/cellerror.md)*
*Defined in [src/Cell.ts:161](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Cell.ts#L161)*
Returns a CellError with a given message.
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`detailedMessage?` | undefined | string | message to be displayed |
**Returns:** *[CellError](https://hyperformula.handsontable.com/docs/api/classes/cellerror.md)*
---
## ChangeNamedExpressionUndoEntry
URL: https://hyperformula.handsontable.com/docs/api/classes/changenamedexpressionundoentry
# ChangeNamedExpressionUndoEntry
## Constructors
### constructor
\+ **new ChangeNamedExpressionUndoEntry**(`namedExpression`: [InternalNamedExpression](https://hyperformula.handsontable.com/docs/api/classes/internalnamedexpression.md), `newContent`: [RawCellContent](https://hyperformula.handsontable.com/docs/api/globals.md#rawcellcontent), `oldContent`: [ClipboardCell](https://hyperformula.handsontable.com/docs/api/globals.md#clipboardcell), `scope?`: undefined | number, `options?`: [NamedExpressionOptions](https://hyperformula.handsontable.com/docs/api/globals.md#namedexpressionoptions)): *[ChangeNamedExpressionUndoEntry](https://hyperformula.handsontable.com/docs/api/classes/changenamedexpressionundoentry.md)*
*Defined in [src/UndoRedo.ts:422](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L422)*
**Parameters:**
Name | Type |
------ | ------ |
`namedExpression` | [InternalNamedExpression](https://hyperformula.handsontable.com/docs/api/classes/internalnamedexpression.md) |
`newContent` | [RawCellContent](https://hyperformula.handsontable.com/docs/api/globals.md#rawcellcontent) |
`oldContent` | [ClipboardCell](https://hyperformula.handsontable.com/docs/api/globals.md#clipboardcell) |
`scope?` | undefined | number |
`options?` | [NamedExpressionOptions](https://hyperformula.handsontable.com/docs/api/globals.md#namedexpressionoptions) |
**Returns:** *[ChangeNamedExpressionUndoEntry](https://hyperformula.handsontable.com/docs/api/classes/changenamedexpressionundoentry.md)*
## Properties
### namedExpression
• **namedExpression**: *[InternalNamedExpression](https://hyperformula.handsontable.com/docs/api/classes/internalnamedexpression.md)*
*Defined in [src/UndoRedo.ts:424](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L424)*
___
### newContent
• **newContent**: *[RawCellContent](https://hyperformula.handsontable.com/docs/api/globals.md#rawcellcontent)*
*Defined in [src/UndoRedo.ts:425](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L425)*
___
### oldContent
• **oldContent**: *[ClipboardCell](https://hyperformula.handsontable.com/docs/api/globals.md#clipboardcell)*
*Defined in [src/UndoRedo.ts:426](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L426)*
___
### options
• **options**? : *[NamedExpressionOptions](https://hyperformula.handsontable.com/docs/api/globals.md#namedexpressionoptions)*
*Defined in [src/UndoRedo.ts:428](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L428)*
___
### scope
• **scope**? : *undefined | number*
*Defined in [src/UndoRedo.ts:427](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L427)*
## Methods
### doRedo
▸ **doRedo**(`undoRedo`: [UndoRedo](https://hyperformula.handsontable.com/docs/api/classes/undoredo.md)): *void*
*Defined in [src/UndoRedo.ts:437](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L437)*
**Parameters:**
Name | Type |
------ | ------ |
`undoRedo` | [UndoRedo](https://hyperformula.handsontable.com/docs/api/classes/undoredo.md) |
**Returns:** *void*
___
### doUndo
▸ **doUndo**(`undoRedo`: [UndoRedo](https://hyperformula.handsontable.com/docs/api/classes/undoredo.md)): *void*
*Defined in [src/UndoRedo.ts:433](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L433)*
**Parameters:**
Name | Type |
------ | ------ |
`undoRedo` | [UndoRedo](https://hyperformula.handsontable.com/docs/api/classes/undoredo.md) |
**Returns:** *void*
___
### getReferencedOldDataVersions
▸ **getReferencedOldDataVersions**(): *number[]*
*Defined in [src/UndoRedo.ts:42](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L42)*
Returns LazilyTransformingAstService version keys referenced by this entry's oldData.
Default implementation returns empty — override in entries that store oldData.
**Returns:** *number[]*
---
## Clipboard
URL: https://hyperformula.handsontable.com/docs/api/classes/clipboard
# Clipboard
## Constructors
### constructor
\+ **new Clipboard**(`sourceLeftCorner`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md), `width`: number, `height`: number, `type`: [ClipboardOperationType](https://hyperformula.handsontable.com/docs/api/enums/clipboardoperationtype.md), `content?`: [ClipboardCell](https://hyperformula.handsontable.com/docs/api/globals.md#clipboardcell)[][]): *[Clipboard](https://hyperformula.handsontable.com/docs/api/classes/clipboard.md)*
*Defined in [src/ClipboardOperations.ts:51](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ClipboardOperations.ts#L51)*
**Parameters:**
Name | Type |
------ | ------ |
`sourceLeftCorner` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) |
`width` | number |
`height` | number |
`type` | [ClipboardOperationType](https://hyperformula.handsontable.com/docs/api/enums/clipboardoperationtype.md) |
`content?` | [ClipboardCell](https://hyperformula.handsontable.com/docs/api/globals.md#clipboardcell)[][] |
**Returns:** *[Clipboard](https://hyperformula.handsontable.com/docs/api/classes/clipboard.md)*
## Properties
### content
• **content**? : *[ClipboardCell](https://hyperformula.handsontable.com/docs/api/globals.md#clipboardcell)[][]*
*Defined in [src/ClipboardOperations.ts:57](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ClipboardOperations.ts#L57)*
___
### height
• **height**: *number*
*Defined in [src/ClipboardOperations.ts:55](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ClipboardOperations.ts#L55)*
___
### sourceLeftCorner
• **sourceLeftCorner**: *[SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)*
*Defined in [src/ClipboardOperations.ts:53](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ClipboardOperations.ts#L53)*
___
### type
• **type**: *[ClipboardOperationType](https://hyperformula.handsontable.com/docs/api/enums/clipboardoperationtype.md)*
*Defined in [src/ClipboardOperations.ts:56](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ClipboardOperations.ts#L56)*
___
### width
• **width**: *number*
*Defined in [src/ClipboardOperations.ts:54](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ClipboardOperations.ts#L54)*
## Methods
### getContent
▸ **getContent**(`leftCorner`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)): *IterableIterator‹[[SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md), [ClipboardCell](https://hyperformula.handsontable.com/docs/api/globals.md#clipboardcell)]›*
*Defined in [src/ClipboardOperations.ts:61](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ClipboardOperations.ts#L61)*
**Parameters:**
Name | Type |
------ | ------ |
`leftCorner` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) |
**Returns:** *IterableIterator‹[[SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md), [ClipboardCell](https://hyperformula.handsontable.com/docs/api/globals.md#clipboardcell)]›*
---
## ClearSheetUndoEntry
URL: https://hyperformula.handsontable.com/docs/api/classes/clearsheetundoentry
# ClearSheetUndoEntry
## Constructors
### constructor
\+ **new ClearSheetUndoEntry**(`sheetId`: number, `oldSheetContent`: [ClipboardCell](https://hyperformula.handsontable.com/docs/api/globals.md#clipboardcell)[][]): *[ClearSheetUndoEntry](https://hyperformula.handsontable.com/docs/api/classes/clearsheetundoentry.md)*
*Defined in [src/UndoRedo.ts:329](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L329)*
**Parameters:**
Name | Type |
------ | ------ |
`sheetId` | number |
`oldSheetContent` | [ClipboardCell](https://hyperformula.handsontable.com/docs/api/globals.md#clipboardcell)[][] |
**Returns:** *[ClearSheetUndoEntry](https://hyperformula.handsontable.com/docs/api/classes/clearsheetundoentry.md)*
## Properties
### oldSheetContent
• **oldSheetContent**: *[ClipboardCell](https://hyperformula.handsontable.com/docs/api/globals.md#clipboardcell)[][]*
*Defined in [src/UndoRedo.ts:332](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L332)*
___
### sheetId
• **sheetId**: *number*
*Defined in [src/UndoRedo.ts:331](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L331)*
## Methods
### doRedo
▸ **doRedo**(`undoRedo`: [UndoRedo](https://hyperformula.handsontable.com/docs/api/classes/undoredo.md)): *void*
*Defined in [src/UndoRedo.ts:341](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L341)*
**Parameters:**
Name | Type |
------ | ------ |
`undoRedo` | [UndoRedo](https://hyperformula.handsontable.com/docs/api/classes/undoredo.md) |
**Returns:** *void*
___
### doUndo
▸ **doUndo**(`undoRedo`: [UndoRedo](https://hyperformula.handsontable.com/docs/api/classes/undoredo.md)): *void*
*Defined in [src/UndoRedo.ts:337](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L337)*
**Parameters:**
Name | Type |
------ | ------ |
`undoRedo` | [UndoRedo](https://hyperformula.handsontable.com/docs/api/classes/undoredo.md) |
**Returns:** *void*
___
### getReferencedOldDataVersions
▸ **getReferencedOldDataVersions**(): *number[]*
*Defined in [src/UndoRedo.ts:42](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L42)*
Returns LazilyTransformingAstService version keys referenced by this entry's oldData.
Default implementation returns empty — override in entries that store oldData.
**Returns:** *number[]*
---
## ClipboardOperations
URL: https://hyperformula.handsontable.com/docs/api/classes/clipboardoperations
# ClipboardOperations
## Constructors
### constructor
\+ **new ClipboardOperations**(`config`: [Config](https://hyperformula.handsontable.com/docs/api/classes/config.md), `dependencyGraph`: DependencyGraph, `operations`: [Operations](https://hyperformula.handsontable.com/docs/api/classes/operations.md)): *[ClipboardOperations](https://hyperformula.handsontable.com/docs/api/classes/clipboardoperations.md)*
*Defined in [src/ClipboardOperations.ts:77](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ClipboardOperations.ts#L77)*
**Parameters:**
Name | Type |
------ | ------ |
`config` | [Config](https://hyperformula.handsontable.com/docs/api/classes/config.md) |
`dependencyGraph` | DependencyGraph |
`operations` | [Operations](https://hyperformula.handsontable.com/docs/api/classes/operations.md) |
**Returns:** *[ClipboardOperations](https://hyperformula.handsontable.com/docs/api/classes/clipboardoperations.md)*
## Properties
### clipboard
• **clipboard**? : *[Clipboard](https://hyperformula.handsontable.com/docs/api/classes/clipboard.md)*
*Defined in [src/ClipboardOperations.ts:75](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ClipboardOperations.ts#L75)*
## Methods
### abortCut
▸ **abortCut**(): *void*
*Defined in [src/ClipboardOperations.ts:107](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ClipboardOperations.ts#L107)*
**Returns:** *void*
___
### clear
▸ **clear**(): *void*
*Defined in [src/ClipboardOperations.ts:113](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ClipboardOperations.ts#L113)*
**Returns:** *void*
___
### copy
▸ **copy**(`leftCorner`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md), `width`: number, `height`: number): *void*
*Defined in [src/ClipboardOperations.ts:92](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ClipboardOperations.ts#L92)*
**Parameters:**
Name | Type |
------ | ------ |
`leftCorner` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) |
`width` | number |
`height` | number |
**Returns:** *void*
___
### cut
▸ **cut**(`leftCorner`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md), `width`: number, `height`: number): *void*
*Defined in [src/ClipboardOperations.ts:88](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ClipboardOperations.ts#L88)*
**Parameters:**
Name | Type |
------ | ------ |
`leftCorner` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) |
`width` | number |
`height` | number |
**Returns:** *void*
___
### ensureItIsPossibleToCopyPaste
▸ **ensureItIsPossibleToCopyPaste**(`destinationLeftCorner`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)): *void*
*Defined in [src/ClipboardOperations.ts:117](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ClipboardOperations.ts#L117)*
**Parameters:**
Name | Type |
------ | ------ |
`destinationLeftCorner` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) |
**Returns:** *void*
___
### isCopyClipboard
▸ **isCopyClipboard**(): *boolean*
*Defined in [src/ClipboardOperations.ts:141](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ClipboardOperations.ts#L141)*
**Returns:** *boolean*
___
### isCutClipboard
▸ **isCutClipboard**(): *boolean*
*Defined in [src/ClipboardOperations.ts:137](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ClipboardOperations.ts#L137)*
**Returns:** *boolean*
---
## ColumnIndex
URL: https://hyperformula.handsontable.com/docs/api/classes/columnindex
# ColumnIndex
## Constructors
### constructor
\+ **new ColumnIndex**(`dependencyGraph`: DependencyGraph, `config`: [Config](https://hyperformula.handsontable.com/docs/api/classes/config.md), `stats`: [Statistics](https://hyperformula.handsontable.com/docs/api/classes/statistics.md)): *[ColumnIndex](https://hyperformula.handsontable.com/docs/api/classes/columnindex.md)*
*Defined in [src/Lookup/ColumnIndex.ts:43](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Lookup/ColumnIndex.ts#L43)*
**Parameters:**
Name | Type |
------ | ------ |
`dependencyGraph` | DependencyGraph |
`config` | [Config](https://hyperformula.handsontable.com/docs/api/classes/config.md) |
`stats` | [Statistics](https://hyperformula.handsontable.com/docs/api/classes/statistics.md) |
**Returns:** *[ColumnIndex](https://hyperformula.handsontable.com/docs/api/classes/columnindex.md)*
## Methods
### add
▸ **add**(`value`: RawInterpreterValue, `address`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)): *void*
*Defined in [src/Lookup/ColumnIndex.ts:54](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Lookup/ColumnIndex.ts#L54)*
**Parameters:**
Name | Type |
------ | ------ |
`value` | RawInterpreterValue |
`address` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) |
**Returns:** *void*
___
### addColumns
▸ **addColumns**(`columnsSpan`: [ColumnsSpan](https://hyperformula.handsontable.com/docs/api/classes/columnsspan.md)): *void*
*Defined in [src/Lookup/ColumnIndex.ts:165](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Lookup/ColumnIndex.ts#L165)*
**Parameters:**
Name | Type |
------ | ------ |
`columnsSpan` | [ColumnsSpan](https://hyperformula.handsontable.com/docs/api/classes/columnsspan.md) |
**Returns:** *void*
___
### advancedFind
▸ **advancedFind**(`keyMatcher`: function, `range`: [SimpleRangeValue](https://hyperformula.handsontable.com/docs/api/classes/simplerangevalue.md), `options`: [AdvancedFindOptions](https://hyperformula.handsontable.com/docs/api/interfaces/advancedfindoptions.md)): *number*
*Defined in [src/Lookup/ColumnIndex.ts:161](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Lookup/ColumnIndex.ts#L161)*
**Parameters:**
▪ **keyMatcher**: *function*
▸ (`arg`: RawInterpreterValue): *boolean*
**Parameters:**
Name | Type |
------ | ------ |
`arg` | RawInterpreterValue |
▪ **range**: *[SimpleRangeValue](https://hyperformula.handsontable.com/docs/api/classes/simplerangevalue.md)*
▪`Default value` **options**: *[AdvancedFindOptions](https://hyperformula.handsontable.com/docs/api/interfaces/advancedfindoptions.md)*= { returnOccurrence: 'first' }
**Returns:** *number*
___
### applyChanges
▸ **applyChanges**(`contentChanges`: [CellValueChange](https://hyperformula.handsontable.com/docs/api/interfaces/cellvaluechange.md)[]): *void*
*Defined in [src/Lookup/ColumnIndex.ts:88](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Lookup/ColumnIndex.ts#L88)*
**Parameters:**
Name | Type |
------ | ------ |
`contentChanges` | [CellValueChange](https://hyperformula.handsontable.com/docs/api/interfaces/cellvaluechange.md)[] |
**Returns:** *void*
___
### change
▸ **change**(`oldValue`: RawInterpreterValue | undefined, `newValue`: RawInterpreterValue, `address`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)): *void*
*Defined in [src/Lookup/ColumnIndex.ts:80](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Lookup/ColumnIndex.ts#L80)*
**Parameters:**
Name | Type |
------ | ------ |
`oldValue` | RawInterpreterValue | undefined |
`newValue` | RawInterpreterValue |
`address` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) |
**Returns:** *void*
___
### ensureRecentData
▸ **ensureRecentData**(`sheet`: number, `col`: number, `value`: RawInterpreterValue): *void*
*Defined in [src/Lookup/ColumnIndex.ts:233](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Lookup/ColumnIndex.ts#L233)*
**Parameters:**
Name | Type |
------ | ------ |
`sheet` | number |
`col` | number |
`value` | RawInterpreterValue |
**Returns:** *void*
___
### find
▸ **find**(`searchKey`: RawNoErrorScalarValue, `rangeValue`: [SimpleRangeValue](https://hyperformula.handsontable.com/docs/api/classes/simplerangevalue.md), `__namedParameters`: object): *number*
*Defined in [src/Lookup/ColumnIndex.ts:110](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Lookup/ColumnIndex.ts#L110)*
**Parameters:**
▪ **searchKey**: *RawNoErrorScalarValue*
▪ **rangeValue**: *[SimpleRangeValue](https://hyperformula.handsontable.com/docs/api/classes/simplerangevalue.md)*
▪ **__namedParameters**: *object*
Name | Type |
------ | ------ |
`ifNoMatch` | "returnLowerBound" | "returnUpperBound" | "returnNotFound" |
`ordering` | "asc" | "desc" | "none" |
`returnOccurrence` | undefined | "first" | "last" |
**Returns:** *number*
___
### forceApplyPostponedTransformations
▸ **forceApplyPostponedTransformations**(): *void*
*Defined in [src/Lookup/ColumnIndex.ts:192](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Lookup/ColumnIndex.ts#L192)*
Forces all ValueIndex entries to apply any pending lazy transformations,
bringing every entry up to the current LazilyTransformingAstService version.
Must be called before compacting LazilyTransformingAstService.
**Returns:** *void*
___
### getColumnMap
▸ **getColumnMap**(`sheet`: number, `col`: number): *[ColumnMap](https://hyperformula.handsontable.com/docs/api/globals.md#columnmap)*
*Defined in [src/Lookup/ColumnIndex.ts:205](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Lookup/ColumnIndex.ts#L205)*
**Parameters:**
Name | Type |
------ | ------ |
`sheet` | number |
`col` | number |
**Returns:** *[ColumnMap](https://hyperformula.handsontable.com/docs/api/globals.md#columnmap)*
___
### getValueIndex
▸ **getValueIndex**(`sheet`: number, `col`: number, `value`: RawInterpreterValue): *[ValueIndex](https://hyperformula.handsontable.com/docs/api/interfaces/valueindex.md)*
*Defined in [src/Lookup/ColumnIndex.ts:220](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Lookup/ColumnIndex.ts#L220)*
**Parameters:**
Name | Type |
------ | ------ |
`sheet` | number |
`col` | number |
`value` | RawInterpreterValue |
**Returns:** *[ValueIndex](https://hyperformula.handsontable.com/docs/api/interfaces/valueindex.md)*
___
### moveValues
▸ **moveValues**(`sourceRange`: IterableIterator‹[RawScalarValue, [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)]›, `toRight`: number, `toBottom`: number, `toSheet`: number): *void*
*Defined in [src/Lookup/ColumnIndex.ts:96](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Lookup/ColumnIndex.ts#L96)*
**Parameters:**
Name | Type |
------ | ------ |
`sourceRange` | IterableIterator‹[RawScalarValue, [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)]› |
`toRight` | number |
`toBottom` | number |
`toSheet` | number |
**Returns:** *void*
___
### remove
▸ **remove**(`value`: RawInterpreterValue | undefined, `address`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)): *void*
*Defined in [src/Lookup/ColumnIndex.ts:66](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Lookup/ColumnIndex.ts#L66)*
**Parameters:**
Name | Type |
------ | ------ |
`value` | RawInterpreterValue | undefined |
`address` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) |
**Returns:** *void*
___
### removeColumns
▸ **removeColumns**(`columnsSpan`: [ColumnsSpan](https://hyperformula.handsontable.com/docs/api/classes/columnsspan.md)): *void*
*Defined in [src/Lookup/ColumnIndex.ts:174](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Lookup/ColumnIndex.ts#L174)*
**Parameters:**
Name | Type |
------ | ------ |
`columnsSpan` | [ColumnsSpan](https://hyperformula.handsontable.com/docs/api/classes/columnsspan.md) |
**Returns:** *void*
___
### removeSheet
▸ **removeSheet**(`sheetId`: number): *void*
*Defined in [src/Lookup/ColumnIndex.ts:183](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Lookup/ColumnIndex.ts#L183)*
**Parameters:**
Name | Type |
------ | ------ |
`sheetId` | number |
**Returns:** *void*
___
### removeValues
▸ **removeValues**(`range`: IterableIterator‹[RawScalarValue, [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)]›): *void*
*Defined in [src/Lookup/ColumnIndex.ts:104](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Lookup/ColumnIndex.ts#L104)*
**Parameters:**
Name | Type |
------ | ------ |
`range` | IterableIterator‹[RawScalarValue, [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)]› |
**Returns:** *void*
---
## ColumnsSpan
URL: https://hyperformula.handsontable.com/docs/api/classes/columnsspan
# ColumnsSpan
## Constructors
### constructor
\+ **new ColumnsSpan**(`sheet`: number, `columnStart`: number, `columnEnd`: number): *[ColumnsSpan](https://hyperformula.handsontable.com/docs/api/classes/columnsspan.md)*
*Defined in [src/Span.ts:72](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Span.ts#L72)*
**Parameters:**
Name | Type |
------ | ------ |
`sheet` | number |
`columnStart` | number |
`columnEnd` | number |
**Returns:** *[ColumnsSpan](https://hyperformula.handsontable.com/docs/api/classes/columnsspan.md)*
## Properties
### columnEnd
• **columnEnd**: *number*
*Defined in [src/Span.ts:76](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Span.ts#L76)*
___
### columnStart
• **columnStart**: *number*
*Defined in [src/Span.ts:75](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Span.ts#L75)*
___
### sheet
• **sheet**: *number*
*Defined in [src/Span.ts:74](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Span.ts#L74)*
## Accessors
### end
• **get end**(): *number*
*Defined in [src/Span.ts:94](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Span.ts#L94)*
**Returns:** *number*
___
### numberOfColumns
• **get numberOfColumns**(): *number*
*Defined in [src/Span.ts:86](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Span.ts#L86)*
**Returns:** *number*
___
### start
• **get start**(): *number*
*Defined in [src/Span.ts:90](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Span.ts#L90)*
**Returns:** *number*
## Methods
### columns
▸ **columns**(): *IterableIterator‹number›*
*Defined in [src/Span.ts:106](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Span.ts#L106)*
**Returns:** *IterableIterator‹number›*
___
### firstColumn
▸ **firstColumn**(): *[ColumnsSpan](https://hyperformula.handsontable.com/docs/api/classes/columnsspan.md)*
*Defined in [src/Span.ts:124](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Span.ts#L124)*
**Returns:** *[ColumnsSpan](https://hyperformula.handsontable.com/docs/api/classes/columnsspan.md)*
___
### intersect
▸ **intersect**(`otherSpan`: [ColumnsSpan](https://hyperformula.handsontable.com/docs/api/classes/columnsspan.md)): *[ColumnsSpan](https://hyperformula.handsontable.com/docs/api/classes/columnsspan.md) | null*
*Defined in [src/Span.ts:112](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Span.ts#L112)*
**Parameters:**
Name | Type |
------ | ------ |
`otherSpan` | [ColumnsSpan](https://hyperformula.handsontable.com/docs/api/classes/columnsspan.md) |
**Returns:** *[ColumnsSpan](https://hyperformula.handsontable.com/docs/api/classes/columnsspan.md) | null*
___
### fromColumnStartAndEnd
▸ **fromColumnStartAndEnd**(`sheet`: number, `columnStart`: number, `columnEnd`: number): *[ColumnsSpan](https://hyperformula.handsontable.com/docs/api/classes/columnsspan.md)‹›*
*Defined in [src/Span.ts:102](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Span.ts#L102)*
**Parameters:**
Name | Type |
------ | ------ |
`sheet` | number |
`columnStart` | number |
`columnEnd` | number |
**Returns:** *[ColumnsSpan](https://hyperformula.handsontable.com/docs/api/classes/columnsspan.md)‹›*
___
### fromNumberOfColumns
▸ **fromNumberOfColumns**(`sheet`: number, `columnStart`: number, `numberOfColumns`: number): *[ColumnsSpan](https://hyperformula.handsontable.com/docs/api/classes/columnsspan.md)‹›*
*Defined in [src/Span.ts:98](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Span.ts#L98)*
**Parameters:**
Name | Type |
------ | ------ |
`sheet` | number |
`columnStart` | number |
`numberOfColumns` | number |
**Returns:** *[ColumnsSpan](https://hyperformula.handsontable.com/docs/api/classes/columnsspan.md)‹›*
---
## Config
URL: https://hyperformula.handsontable.com/docs/api/classes/config
# Config
## Constructors
### constructor
\+ **new Config**(`options`: Partial‹[ConfigParams](https://hyperformula.handsontable.com/docs/api/interfaces/configparams.md)›, `showDeprecatedWarns`: boolean): *[Config](https://hyperformula.handsontable.com/docs/api/classes/config.md)*
*Defined in [src/Config.ts:168](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Config.ts#L168)*
**Parameters:**
Name | Type | Default |
------ | ------ | ------ |
`options` | Partial‹[ConfigParams](https://hyperformula.handsontable.com/docs/api/interfaces/configparams.md)› | {} |
`showDeprecatedWarns` | boolean | true |
**Returns:** *[Config](https://hyperformula.handsontable.com/docs/api/classes/config.md)*
## Properties
### accentSensitive
• **accentSensitive**: *boolean*
*Defined in [src/Config.ts:81](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Config.ts#L81)*
When set to `true`, makes string comparison accent-sensitive.
Applies only to comparison operators.
For more information, see the [Types of operators guide](https://hyperformula.handsontable.com/docs/guide/types-of-operators.md#comparing-strings).
**`default`** false
___
### arrayColumnSeparator
• **arrayColumnSeparator**: *"," | ";"*
*Defined in [src/Config.ts:91](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Config.ts#L91)*
Sets a column separator symbol for array notation.
For more information, see the [Arrays guide](https://hyperformula.handsontable.com/docs/guide/arrays.md).
**`default`** ','
___
### arrayRowSeparator
• **arrayRowSeparator**: *";" | "|"*
*Defined in [src/Config.ts:93](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Config.ts#L93)*
Sets a row separator symbol for array notation.
For more information, see the [Arrays guide](https://hyperformula.handsontable.com/docs/guide/arrays.md).
**`default`** ';'
___
### caseFirst
• **caseFirst**: *"upper" | "lower" | "false"*
*Defined in [src/Config.ts:83](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Config.ts#L83)*
When set to `upper`, upper case sorts first.
When set to `lower`, lower case sorts first.
When set to `false`, uses the locale's default.
For more information, see the [Types of operators guide](https://hyperformula.handsontable.com/docs/guide/types-of-operators.md#comparing-strings).
**`default`** 'lower'
___
### caseSensitive
• **caseSensitive**: *boolean*
*Defined in [src/Config.ts:77](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Config.ts#L77)*
When set to `true`, makes string comparison case-sensitive.
Applies to comparison operators only.
For more information, see the [Types of operators guide](https://hyperformula.handsontable.com/docs/guide/types-of-operators.md#comparing-strings).
**`default`** false
___
### chooseAddressMappingPolicy
• **chooseAddressMappingPolicy**: *ChooseAddressMapping*
*Defined in [src/Config.ts:79](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Config.ts#L79)*
Sets the address mapping policy to be used.
Built-in implementations:
- `DenseSparseChooseBasedOnThreshold`: sets the address mapping policy separately for each sheet, based on fill ratio.
- `AlwaysDense`: uses `DenseStrategy` for all sheets.
- `AlwaysSparse`: uses `SparseStrategy` for all sheets.
For more information, see the [Performance guide](https://hyperformula.handsontable.com/docs/guide/performance.md).
**`default`** AlwaysDense
___
### context
• **context**: *unknown*
*Defined in [src/Config.ts:144](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Config.ts#L144)*
A generic parameter that can be used to pass data to custom functions.
For more information, see the [Custom functions guide](https://hyperformula.handsontable.com/docs/guide/custom-functions.md).
**`default`** undefined
___
### currencySymbol
• **currencySymbol**: *string[]*
*Defined in [src/Config.ts:138](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Config.ts#L138)*
Sets symbols that denote currency numbers.
For more information, see the [Internationalization features guide](https://hyperformula.handsontable.com/docs/guide/i18n-features.md).
**`default`** ['$']
___
### dateFormats
• **dateFormats**: *string[]*
*Defined in [src/Config.ts:85](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Config.ts#L85)*
Sets the date formats accepted by the date-parsing function.
A format must be specified as a string consisting of tokens and separators.
Supported tokens:
- `DD` (day of month)
- `MM` (month as a number)
- `YYYY` (year as a 4-digit number)
- `YY` (year as a 2-digit number)
Supported separators:
- `/` (slash)
- `-` (dash)
- `.` (dot)
- ` ` (empty space)
Regardless of the separator specified in the format string, all of the above are accepted by the date-parsing function.
For more information, see the [Date and time handling guide](https://hyperformula.handsontable.com/docs/guide/date-and-time-handling.md).
**`default`** ['DD/MM/YYYY', 'DD/MM/YY']
___
### decimalSeparator
• **decimalSeparator**: *"." | ","*
*Defined in [src/Config.ts:95](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Config.ts#L95)*
Sets a decimal separator used for parsing numerical literals.
Can be one of the following:
- `.` (period)
- `,` (comma)
Must be different from [thousandSeparator](https://hyperformula.handsontable.com/docs/api/interfaces/configparams.md#thousandseparator) and [functionArgSeparator](https://hyperformula.handsontable.com/docs/api/interfaces/configparams.md#functionargseparator).
For more information, see the [Internationalization features guide](https://hyperformula.handsontable.com/docs/guide/i18n-features.md).
**`default`** '.'
___
### evaluateNullToZero
• **evaluateNullToZero**: *boolean*
*Defined in [src/Config.ts:114](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Config.ts#L114)*
When set to `true`, formulas evaluating to `null` evaluate to `0` instead.
**`default`** false
___
### functionArgSeparator
• **functionArgSeparator**: *string*
*Defined in [src/Config.ts:89](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Config.ts#L89)*
Sets a separator character that separates procedure arguments in formulas.
Must be different from [decimalSeparator](https://hyperformula.handsontable.com/docs/api/interfaces/configparams.md#decimalseparator) and [thousandSeparator](https://hyperformula.handsontable.com/docs/api/interfaces/configparams.md#thousandseparator).
For more information, see the [Internationalization features guide](https://hyperformula.handsontable.com/docs/guide/i18n-features.md).
**`default`** ','
___
### functionPlugins
• **functionPlugins**: *FunctionPluginDefinition[]*
*Defined in [src/Config.ts:106](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Config.ts#L106)*
Lists additional function plugins to be used by the formula interpreter.
For more information, see the [Custom functions guide](https://hyperformula.handsontable.com/docs/guide/custom-functions.md).
**`default`** []
___
### ignorePunctuation
• **ignorePunctuation**: *boolean*
*Defined in [src/Config.ts:110](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Config.ts#L110)*
When set to `true`, string comparison ignores punctuation.
For more information, see the [Types of operators guide](https://hyperformula.handsontable.com/docs/guide/types-of-operators.md#comparing-strings).
**`default`** false
___
### ignoreWhiteSpace
• **ignoreWhiteSpace**: *"standard" | "any"*
*Defined in [src/Config.ts:101](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Config.ts#L101)*
Controls the set of whitespace characters that are allowed inside a formula.
When set to `'standard'`, allows only SPACE (U+0020), CHARACTER TABULATION (U+0009), LINE FEED (U+000A), and CARRIAGE RETURN (U+000D) (compliant with OpenFormula Standard 1.3)
When set to `'any'`, allows all whitespace characters that would be captured by the `\s` character class of the JavaScript regular expressions.
**`default`** 'standard'
___
### language
• **language**: *string*
*Defined in [src/Config.ts:99](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Config.ts#L99)*
Sets a translation package for function and error names.
For more information, see the [Localizing functions guide](https://hyperformula.handsontable.com/docs/guide/localizing-functions.md).
**`default`** 'enGB'
___
### leapYear1900
• **leapYear1900**: *boolean*
*Defined in [src/Config.ts:108](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Config.ts#L108)*
Sets year 1900 as a leap year.
For compatibility with Lotus 1-2-3 and Microsoft Excel, set this option to `true`.
For more information, see the [Date and time handling guide](https://hyperformula.handsontable.com/docs/guide/date-and-time-handling.md) and [nullDate](https://hyperformula.handsontable.com/docs/api/interfaces/configparams.md#nulldate).
**`default`** false
___
### licenseKey
• **licenseKey**: *string*
*Defined in [src/Config.ts:103](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Config.ts#L103)*
Sets your HyperFormula license key.
To use HyperFormula on the GPLv3 license terms, set this option to `gpl-v3`.
To use HyperFormula with your proprietary license, set this option to your valid license key string.
For more information, go [here](https://hyperformula.handsontable.com/docs/guide/license-key.md).
**`default`** undefined
___
### localeLang
• **localeLang**: *string*
*Defined in [src/Config.ts:112](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Config.ts#L112)*
Sets the locale for language-sensitive string comparison.
Accepts **IETF BCP 47** language tags.
For more information, see the [Internationalization features guide](https://hyperformula.handsontable.com/docs/guide/i18n-features.md).
**`default`** 'en'
___
### matchWholeCell
• **matchWholeCell**: *boolean*
*Defined in [src/Config.ts:168](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Config.ts#L168)*
When set to `true`, function criteria require whole cells to match the pattern.
When set to `false`, function criteria require just a sub-word to match the pattern.
**`default`** true
___
### maxColumns
• **maxColumns**: *number*
*Defined in [src/Config.ts:155](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Config.ts#L155)*
Sets the maximum number of columns.
**`default`** 18.278 (Columns A, B, ..., ZZZ)
___
### maxPendingLazyTransformations
• **maxPendingLazyTransformations**: *number*
*Defined in [src/Config.ts:142](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Config.ts#L142)*
Controls memory usage for long-running instances by limiting the number of
pending lazy transformations before cleanup occurs.
Structural operations (adding/removing rows/columns, moving cells) create
transformations that are applied lazily to formulas. This setting determines
how many can accumulate before they are flushed and memory is reclaimed.
Lower values reduce peak memory usage but may slightly increase CPU overhead.
Higher values reduce overhead but allow more memory accumulation.
**`default`** 50
___
### maxRows
• **maxRows**: *number*
*Defined in [src/Config.ts:153](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Config.ts#L153)*
Sets the maximum number of rows.
**`default`** 40.000
___
### nullDate
• **nullDate**: *[SimpleDate](https://hyperformula.handsontable.com/docs/api/interfaces/simpledate.md)*
*Defined in [src/Config.ts:136](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Config.ts#L136)*
Internally, each date is represented as a number of days that passed since `nullDate`.
This option sets a specific date from which that number of days is counted.
For more information, see the [Date and time handling guide](https://hyperformula.handsontable.com/docs/guide/date-and-time-handling.md).
**`default`** {year: 1899, month: 12, day: 30}
___
### nullYear
• **nullYear**: *number*
*Defined in [src/Config.ts:116](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Config.ts#L116)*
Sets the interpretation of two-digit year values.
Two-digit year values (`xx`) can either become `19xx` or `20xx`.
If `xx` is less or equal to `nullYear`, two-digit year values become `20xx`.
If `xx` is more than `nullYear`, two-digit year values become `19xx`.
For more information, see the [Date and time handling guide](https://hyperformula.handsontable.com/docs/guide/date-and-time-handling.md).
**`default`** 30
___
### parseDateTime
• **parseDateTime**: *function*
*Defined in [src/Config.ts:118](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Config.ts#L118)*
Sets a function that parses strings representing date-time into actual date-time values.
The function should return a [DateTime](https://hyperformula.handsontable.com/docs/api/globals.md#datetime) object or undefined.
For more information, see the [Date and time handling guide](https://hyperformula.handsontable.com/docs/guide/date-and-time-handling.md).
**`default`** defaultParseToDateTime
#### Type declaration:
▸ (`dateTimeString`: string, `dateFormat?`: undefined | string, `timeFormat?`: undefined | string): *[Maybe](https://hyperformula.handsontable.com/docs/api/globals.md#maybe)‹[DateTime](https://hyperformula.handsontable.com/docs/api/globals.md#datetime)›*
**Parameters:**
Name | Type |
------ | ------ |
`dateTimeString` | string |
`dateFormat?` | undefined | string |
`timeFormat?` | undefined | string |
___
### precisionEpsilon
• **precisionEpsilon**: *number*
*Defined in [src/Config.ts:126](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Config.ts#L126)*
Sets how far two numerical values need to be from each other to be treated as non-equal.
`a` and `b` are equal if all three of the following conditions are met:
- Both `a` and `b` are of the same sign
- `abs(a)` <= `(1+precisionEpsilon) * abs(b)`
- `abs(b)` <= `(1+precisionEpsilon) * abs(a)`
Additionally, this option controls the snap-to-zero behavior for additions and subtractions:
- For `c=a+b`, if `abs(c)` <= `precisionEpsilon * abs(a)`, then `c` is set to `0`
- For `c=a-b`, if `abs(c)` <= `precisionEpsilon * abs(a)`, then `c` is set to `0`
**`default`** 1e-13
___
### precisionRounding
• **precisionRounding**: *number*
*Defined in [src/Config.ts:128](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Config.ts#L128)*
Sets the precision level of calculations' output.
Internally, all arithmetic operations are performed using JavaScript's built-in numbers.
But when HyperFormula exports a cell's value, it rounds the output
to the `precisionRounding` number of significant digits.
Setting `precisionRounding` too low can cause large numbers' imprecision
(for example, with `precisionRounding` set to `4`, 100005 becomes 100010).
Setting precisionRounding too high will expose the floating-point calculation errors. For example, with `precisionRounding` set to `15`, `0.1 + 0.2` results in `0.3000000000000001`.
**`default`** 10
___
### smartRounding
• **smartRounding**: *boolean*
*Defined in [src/Config.ts:130](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Config.ts#L130)*
When set to `false`, no rounding happens, and numbers are equal if and only if they are of truly identical value.
For more information, see [precisionEpsilon](https://hyperformula.handsontable.com/docs/api/interfaces/configparams.md#precisionepsilon).
**`default`** true
___
### stringifyCurrency
• **stringifyCurrency**: *function*
*Defined in [src/Config.ts:124](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Config.ts#L124)*
Sets a function that converts numeric values into currency-formatted strings.
The function receives the raw value and the format string passed to `TEXT`
and should return a string or `undefined`. The formatter calls this for
every format string that reaches it, not only currency-shaped ones — return
`undefined` for any format your callback does not handle and HyperFormula
will fall through to the built-in number formatter.
For more information, see the [Currency handling guide](https://hyperformula.handsontable.com/docs/guide/currency-handling.md).
**`default`** defaultStringifyCurrency
#### Type declaration:
▸ (`value`: number, `currencyFormat`: string): *[Maybe](https://hyperformula.handsontable.com/docs/api/globals.md#maybe)‹string›*
**Parameters:**
Name | Type |
------ | ------ |
`value` | number |
`currencyFormat` | string |
___
### stringifyDateTime
• **stringifyDateTime**: *function*
*Defined in [src/Config.ts:120](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Config.ts#L120)*
Sets a function that converts date-time values into strings.
The function should return a string or undefined.
For more information, see the [Date and time handling guide](https://hyperformula.handsontable.com/docs/guide/date-and-time-handling.md).
**`default`** defaultStringifyDateTime
#### Type declaration:
▸ (`date`: [SimpleDateTime](https://hyperformula.handsontable.com/docs/api/globals.md#simpledatetime), `formatArg`: string): *[Maybe](https://hyperformula.handsontable.com/docs/api/globals.md#maybe)‹string›*
**Parameters:**
Name | Type |
------ | ------ |
`date` | [SimpleDateTime](https://hyperformula.handsontable.com/docs/api/globals.md#simpledatetime) |
`formatArg` | string |
___
### stringifyDuration
• **stringifyDuration**: *function*
*Defined in [src/Config.ts:122](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Config.ts#L122)*
Sets a function that converts time duration values into strings.
The function should return a string or undefined.
For more information, see the [Date and time handling guide](https://hyperformula.handsontable.com/docs/guide/date-and-time-handling.md).
**`default`** defaultStringifyDuration
#### Type declaration:
▸ (`time`: [SimpleTime](https://hyperformula.handsontable.com/docs/api/interfaces/simpletime.md), `formatArg`: string): *[Maybe](https://hyperformula.handsontable.com/docs/api/globals.md#maybe)‹string›*
**Parameters:**
Name | Type |
------ | ------ |
`time` | [SimpleTime](https://hyperformula.handsontable.com/docs/api/interfaces/simpletime.md) |
`formatArg` | string |
___
### thousandSeparator
• **thousandSeparator**: *"" | "," | " " | "."*
*Defined in [src/Config.ts:97](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Config.ts#L97)*
Sets the thousands' separator symbol for parsing numerical literals.
Can be one of the following:
- empty
- `,` (comma)
- ` ` (empty space)
Must be different from [decimalSeparator](https://hyperformula.handsontable.com/docs/api/interfaces/configparams.md#decimalseparator) and [functionArgSeparator](https://hyperformula.handsontable.com/docs/api/interfaces/configparams.md#functionargseparator).
For more information, see the [Internationalization features guide](https://hyperformula.handsontable.com/docs/guide/i18n-features.md).
**`default`** ''
___
### timeFormats
• **timeFormats**: *string[]*
*Defined in [src/Config.ts:87](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Config.ts#L87)*
Sets the time formats accepted by the time-parsing function.
A format must be specified as a string consisting of at least two tokens separated by `:` (a colon).
Supported tokens:
- `hh` (hours)
- `mm` (minutes)
- `ss`, `ss.s`, `ss.ss`, `ss.sss`, `ss.ssss`, etc. (seconds)
The number of decimal places in the seconds token does not matter. All versions of the seconds token are equivalent in the context of parsing time values.
Regardless of the time format specified, the hours-minutes-seconds value may be followed by the AM/PM designator.
For more information, see the [Date and time handling guide](https://hyperformula.handsontable.com/docs/guide/date-and-time-handling.md).
**`example`**
E.g., for `timeFormats = ['hh:mm:ss.sss']`, valid time strings include:
- `1:33:33`
- `1:33:33.3`
- `1:33:33.33`
- `1:33:33.333`
- `01:33:33`
- `1:33:33 AM`
- `1:33:33 PM`
- `1:33:33 am`
- `1:33:33 pm`
- `1:33:33AM`
- `1:33:33PM`
**`default`** ['hh:mm', 'hh:mm:ss.sss']
___
### undoLimit
• **undoLimit**: *number*
*Defined in [src/Config.ts:140](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Config.ts#L140)*
Sets the number of elements kept in the undo history.
For more information, see the [Undo-Redo guide](https://hyperformula.handsontable.com/docs/guide/undo-redo.md).
**`default`** 20
___
### useArrayArithmetic
• **useArrayArithmetic**: *boolean*
*Defined in [src/Config.ts:75](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Config.ts#L75)*
When set to `true`, array arithmetic is enabled globally.
When set to `false`, array arithmetic is enabled only inside array functions (`ARRAYFORMULA`, `FILTER`, and `ARRAY_CONSTRAIN`).
For more information, see the [Arrays guide](https://hyperformula.handsontable.com/docs/guide/arrays.md).
**`default`** false
___
### useColumnIndex
• **useColumnIndex**: *boolean*
*Defined in [src/Config.ts:132](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Config.ts#L132)*
When set to `true`, switches column search strategy from binary search to column index.
Using column index improves efficiency of the `VLOOKUP` and `MATCH` functions, but increases memory usage.
When searching with wildcards or regular expressions, column search strategy falls back to binary search (even with `useColumnIndex` set to `true`).
For more information, see the [Performance guide](https://hyperformula.handsontable.com/docs/guide/performance.md).
**`default`** false
___
### useRegularExpressions
• **useRegularExpressions**: *boolean*
*Defined in [src/Config.ts:164](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Config.ts#L164)*
When set to `true`, criteria in functions (SUMIF, COUNTIF, ...) are allowed to use regular expressions.
**`default`** false
___
### useStats
• **useStats**: *boolean*
*Defined in [src/Config.ts:134](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Config.ts#L134)*
When set to `true`, enables gathering engine statistics and timings.
Useful for testing and benchmarking.
**`default`** false
___
### useWildcards
• **useWildcards**: *boolean*
*Defined in [src/Config.ts:166](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Config.ts#L166)*
When set to `true`, criteria in functions (SUMIF, COUNTIF, ...) can use the `*` and `?` wildcards.
**`default`** true
## Methods
### getConfig
▸ **getConfig**(): *[ConfigParams](https://hyperformula.handsontable.com/docs/api/interfaces/configparams.md)*
*Defined in [src/Config.ts:311](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Config.ts#L311)*
**Returns:** *[ConfigParams](https://hyperformula.handsontable.com/docs/api/interfaces/configparams.md)*
___
### mergeConfig
▸ **mergeConfig**(`init`: Partial‹[ConfigParams](https://hyperformula.handsontable.com/docs/api/interfaces/configparams.md)›): *[Config](https://hyperformula.handsontable.com/docs/api/classes/config.md)*
*Defined in [src/Config.ts:315](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Config.ts#L315)*
**Parameters:**
Name | Type |
------ | ------ |
`init` | Partial‹[ConfigParams](https://hyperformula.handsontable.com/docs/api/interfaces/configparams.md)› |
**Returns:** *[Config](https://hyperformula.handsontable.com/docs/api/classes/config.md)*
## Object literals
### defaultConfig
### ▪ **defaultConfig**: *object*
*Defined in [src/Config.ts:31](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Config.ts#L31)*
### accentSensitive
• **accentSensitive**: *false* = false
*Defined in [src/Config.ts:32](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Config.ts#L32)*
### arrayColumnSeparator
• **arrayColumnSeparator**: *","* = ","
*Defined in [src/Config.ts:50](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Config.ts#L50)*
### arrayRowSeparator
• **arrayRowSeparator**: *";"* = ";"
*Defined in [src/Config.ts:51](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Config.ts#L51)*
### caseFirst
• **caseFirst**: *"lower"* = "lower"
*Defined in [src/Config.ts:35](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Config.ts#L35)*
### caseSensitive
• **caseSensitive**: *false* = false
*Defined in [src/Config.ts:34](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Config.ts#L34)*
### chooseAddressMappingPolicy
• **chooseAddressMappingPolicy**: *AlwaysDense‹›* = new AlwaysDense()
*Defined in [src/Config.ts:37](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Config.ts#L37)*
### context
• **context**: *undefined* = undefined
*Defined in [src/Config.ts:36](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Config.ts#L36)*
### currencySymbol
• **currencySymbol**: *string[]* = ['$']
*Defined in [src/Config.ts:33](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Config.ts#L33)*
### dateFormats
• **dateFormats**: *string[]* = ['DD/MM/YYYY', 'DD/MM/YY']
*Defined in [src/Config.ts:38](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Config.ts#L38)*
### decimalSeparator
• **decimalSeparator**: *"."* = "."
*Defined in [src/Config.ts:39](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Config.ts#L39)*
### evaluateNullToZero
• **evaluateNullToZero**: *false* = false
*Defined in [src/Config.ts:40](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Config.ts#L40)*
### functionArgSeparator
• **functionArgSeparator**: *string* = ","
*Defined in [src/Config.ts:41](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Config.ts#L41)*
### functionPlugins
• **functionPlugins**: *never[]* = []
*Defined in [src/Config.ts:42](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Config.ts#L42)*
### ignorePunctuation
• **ignorePunctuation**: *false* = false
*Defined in [src/Config.ts:43](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Config.ts#L43)*
### ignoreWhiteSpace
• **ignoreWhiteSpace**: *"standard"* = "standard"
*Defined in [src/Config.ts:45](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Config.ts#L45)*
### language
• **language**: *string* = "enGB"
*Defined in [src/Config.ts:44](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Config.ts#L44)*
### leapYear1900
• **leapYear1900**: *false* = false
*Defined in [src/Config.ts:47](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Config.ts#L47)*
### licenseKey
• **licenseKey**: *string* = ""
*Defined in [src/Config.ts:46](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Config.ts#L46)*
### localeLang
• **localeLang**: *string* = "en"
*Defined in [src/Config.ts:48](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Config.ts#L48)*
### matchWholeCell
• **matchWholeCell**: *true* = true
*Defined in [src/Config.ts:49](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Config.ts#L49)*
### maxColumns
• **maxColumns**: *number* = 18278
*Defined in [src/Config.ts:53](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Config.ts#L53)*
### maxPendingLazyTransformations
• **maxPendingLazyTransformations**: *number* = 50
*Defined in [src/Config.ts:66](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Config.ts#L66)*
### maxRows
• **maxRows**: *number* = 40000
*Defined in [src/Config.ts:52](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Config.ts#L52)*
### nullYear
• **nullYear**: *number* = 30
*Defined in [src/Config.ts:54](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Config.ts#L54)*
### parseDateTime
• **parseDateTime**: *[defaultParseToDateTime](https://hyperformula.handsontable.com/docs/api/globals.md#defaultparsetodatetime)* = defaultParseToDateTime
*Defined in [src/Config.ts:56](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Config.ts#L56)*
### precisionEpsilon
• **precisionEpsilon**: *number* = 1e-13
*Defined in [src/Config.ts:57](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Config.ts#L57)*
### precisionRounding
• **precisionRounding**: *number* = 10
*Defined in [src/Config.ts:58](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Config.ts#L58)*
### smartRounding
• **smartRounding**: *true* = true
*Defined in [src/Config.ts:59](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Config.ts#L59)*
### stringifyCurrency
• **stringifyCurrency**: *[defaultStringifyCurrency](https://hyperformula.handsontable.com/docs/api/globals.md#defaultstringifycurrency)* = defaultStringifyCurrency
*Defined in [src/Config.ts:62](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Config.ts#L62)*
### stringifyDateTime
• **stringifyDateTime**: *[defaultStringifyDateTime](https://hyperformula.handsontable.com/docs/api/globals.md#defaultstringifydatetime)* = defaultStringifyDateTime
*Defined in [src/Config.ts:60](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Config.ts#L60)*
### stringifyDuration
• **stringifyDuration**: *[defaultStringifyDuration](https://hyperformula.handsontable.com/docs/api/globals.md#defaultstringifyduration)* = defaultStringifyDuration
*Defined in [src/Config.ts:61](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Config.ts#L61)*
### thousandSeparator
• **thousandSeparator**: *""* = ""
*Defined in [src/Config.ts:64](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Config.ts#L64)*
### timeFormats
• **timeFormats**: *string[]* = ['hh:mm', 'hh:mm:ss.sss']
*Defined in [src/Config.ts:63](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Config.ts#L63)*
### undoLimit
• **undoLimit**: *number* = 20
*Defined in [src/Config.ts:65](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Config.ts#L65)*
### useArrayArithmetic
• **useArrayArithmetic**: *false* = false
*Defined in [src/Config.ts:71](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Config.ts#L71)*
### useColumnIndex
• **useColumnIndex**: *false* = false
*Defined in [src/Config.ts:69](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Config.ts#L69)*
### useRegularExpressions
• **useRegularExpressions**: *false* = false
*Defined in [src/Config.ts:67](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Config.ts#L67)*
### useStats
• **useStats**: *false* = false
*Defined in [src/Config.ts:70](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Config.ts#L70)*
### useWildcards
• **useWildcards**: *true* = true
*Defined in [src/Config.ts:68](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Config.ts#L68)*
▪ **nullDate**: *object*
*Defined in [src/Config.ts:55](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Config.ts#L55)*
* **day**: *number* = 30
* **month**: *number* = 12
* **year**: *number* = 1899
---
## ConfigValueEmpty
URL: https://hyperformula.handsontable.com/docs/api/classes/configvalueempty
# ConfigValueEmpty
Error thrown when supplied config parameter value is an empty string.
This error might be thrown while setting or updating the [ConfigParams](https://hyperformula.handsontable.com/docs/api/interfaces/configparams.md).
The following methods accept [ConfigParams](https://hyperformula.handsontable.com/docs/api/interfaces/configparams.md) as a parameter:
**`see`** [buildEmpty](https://hyperformula.handsontable.com/docs/api/classes/buildenginefactory.md#static-buildempty)
**`see`** [buildFromArray](https://hyperformula.handsontable.com/docs/api/classes/hyperformula.md#static-buildfromarray)
**`see`** [buildFromSheets](https://hyperformula.handsontable.com/docs/api/classes/buildenginefactory.md#static-buildfromsheets)
**`see`** [updateConfig](https://hyperformula.handsontable.com/docs/api/classes/hyperformula.md#updateconfig)
## Constructors
### constructor
\+ **new ConfigValueEmpty**(`paramName`: string): *[ConfigValueEmpty](https://hyperformula.handsontable.com/docs/api/classes/configvalueempty.md)*
*Defined in [src/errors.ts:193](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/errors.ts#L193)*
**Parameters:**
Name | Type |
------ | ------ |
`paramName` | string |
**Returns:** *[ConfigValueEmpty](https://hyperformula.handsontable.com/docs/api/classes/configvalueempty.md)*
## Properties
### message
• **message**: *string*
___
### name
• **name**: *string*
___
### stack
• **stack**? : *undefined | string*
___
### Error
▪ **Error**: *ErrorConstructor*
---
## ConfigValueTooSmallError
URL: https://hyperformula.handsontable.com/docs/api/classes/configvaluetoosmallerror
# ConfigValueTooSmallError
Error thrown when supplied config parameter value is too small.
This error might be thrown while setting or updating the [ConfigParams](https://hyperformula.handsontable.com/docs/api/interfaces/configparams.md).
The following methods accept [ConfigParams](https://hyperformula.handsontable.com/docs/api/interfaces/configparams.md) as a parameter:
**`see`** [buildEmpty](https://hyperformula.handsontable.com/docs/api/classes/buildenginefactory.md#static-buildempty)
**`see`** [buildFromArray](https://hyperformula.handsontable.com/docs/api/classes/hyperformula.md#static-buildfromarray)
**`see`** [buildFromSheets](https://hyperformula.handsontable.com/docs/api/classes/buildenginefactory.md#static-buildfromsheets)
**`see`** [updateConfig](https://hyperformula.handsontable.com/docs/api/classes/hyperformula.md#updateconfig)
## Constructors
### constructor
\+ **new ConfigValueTooSmallError**(`paramName`: string, `minimum`: number): *[ConfigValueTooSmallError](https://hyperformula.handsontable.com/docs/api/classes/configvaluetoosmallerror.md)*
*Defined in [src/errors.ts:209](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/errors.ts#L209)*
**Parameters:**
Name | Type |
------ | ------ |
`paramName` | string |
`minimum` | number |
**Returns:** *[ConfigValueTooSmallError](https://hyperformula.handsontable.com/docs/api/classes/configvaluetoosmallerror.md)*
## Properties
### message
• **message**: *string*
___
### name
• **name**: *string*
___
### stack
• **stack**? : *undefined | string*
___
### Error
▪ **Error**: *ErrorConstructor*
---
## CrudOperations
URL: https://hyperformula.handsontable.com/docs/api/classes/crudoperations
# CrudOperations
## Constructors
### constructor
\+ **new CrudOperations**(`config`: [Config](https://hyperformula.handsontable.com/docs/api/classes/config.md), `operations`: [Operations](https://hyperformula.handsontable.com/docs/api/classes/operations.md), `undoRedo`: [UndoRedo](https://hyperformula.handsontable.com/docs/api/classes/undoredo.md), `clipboardOperations`: [ClipboardOperations](https://hyperformula.handsontable.com/docs/api/classes/clipboardoperations.md), `dependencyGraph`: DependencyGraph, `columnSearch`: [ColumnSearchStrategy](https://hyperformula.handsontable.com/docs/api/interfaces/columnsearchstrategy.md), `parser`: ParserWithCaching, `cellContentParser`: [CellContentParser](https://hyperformula.handsontable.com/docs/api/classes/cellcontentparser.md), `lazilyTransformingAstService`: [LazilyTransformingAstService](https://hyperformula.handsontable.com/docs/api/classes/lazilytransformingastservice.md), `namedExpressions`: [NamedExpressions](https://hyperformula.handsontable.com/docs/api/classes/namedexpressions.md)): *[CrudOperations](https://hyperformula.handsontable.com/docs/api/classes/crudoperations.md)*
*Defined in [src/CrudOperations.ts:70](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/CrudOperations.ts#L70)*
**Parameters:**
Name | Type |
------ | ------ |
`config` | [Config](https://hyperformula.handsontable.com/docs/api/classes/config.md) |
`operations` | [Operations](https://hyperformula.handsontable.com/docs/api/classes/operations.md) |
`undoRedo` | [UndoRedo](https://hyperformula.handsontable.com/docs/api/classes/undoredo.md) |
`clipboardOperations` | [ClipboardOperations](https://hyperformula.handsontable.com/docs/api/classes/clipboardoperations.md) |
`dependencyGraph` | DependencyGraph |
`columnSearch` | [ColumnSearchStrategy](https://hyperformula.handsontable.com/docs/api/interfaces/columnsearchstrategy.md) |
`parser` | ParserWithCaching |
`cellContentParser` | [CellContentParser](https://hyperformula.handsontable.com/docs/api/classes/cellcontentparser.md) |
`lazilyTransformingAstService` | [LazilyTransformingAstService](https://hyperformula.handsontable.com/docs/api/classes/lazilytransformingastservice.md) |
`namedExpressions` | [NamedExpressions](https://hyperformula.handsontable.com/docs/api/classes/namedexpressions.md) |
**Returns:** *[CrudOperations](https://hyperformula.handsontable.com/docs/api/classes/crudoperations.md)*
## Properties
### operations
• **operations**: *[Operations](https://hyperformula.handsontable.com/docs/api/classes/operations.md)*
*Defined in [src/CrudOperations.ts:74](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/CrudOperations.ts#L74)*
___
### undoRedo
• **undoRedo**: *[UndoRedo](https://hyperformula.handsontable.com/docs/api/classes/undoredo.md)*
*Defined in [src/CrudOperations.ts:75](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/CrudOperations.ts#L75)*
## Methods
### addColumns
▸ **addColumns**(`sheet`: number, ...`indexes`: [ColumnRowIndex](https://hyperformula.handsontable.com/docs/api/globals.md#columnrowindex)[]): *void*
*Defined in [src/CrudOperations.ts:110](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/CrudOperations.ts#L110)*
**Parameters:**
Name | Type |
------ | ------ |
`sheet` | number |
`...indexes` | [ColumnRowIndex](https://hyperformula.handsontable.com/docs/api/globals.md#columnrowindex)[] |
**Returns:** *void*
___
### addNamedExpression
▸ **addNamedExpression**(`expressionName`: string, `expression`: [RawCellContent](https://hyperformula.handsontable.com/docs/api/globals.md#rawcellcontent), `sheetId?`: undefined | number, `options?`: [NamedExpressionOptions](https://hyperformula.handsontable.com/docs/api/globals.md#namedexpressionoptions)): *void*
*Defined in [src/CrudOperations.ts:382](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/CrudOperations.ts#L382)*
**Parameters:**
Name | Type |
------ | ------ |
`expressionName` | string |
`expression` | [RawCellContent](https://hyperformula.handsontable.com/docs/api/globals.md#rawcellcontent) |
`sheetId?` | undefined | number |
`options?` | [NamedExpressionOptions](https://hyperformula.handsontable.com/docs/api/globals.md#namedexpressionoptions) |
**Returns:** *void*
___
### addRows
▸ **addRows**(`sheet`: number, ...`indexes`: [ColumnRowIndex](https://hyperformula.handsontable.com/docs/api/globals.md#columnrowindex)[]): *void*
*Defined in [src/CrudOperations.ts:92](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/CrudOperations.ts#L92)*
**Parameters:**
Name | Type |
------ | ------ |
`sheet` | number |
`...indexes` | [ColumnRowIndex](https://hyperformula.handsontable.com/docs/api/globals.md#columnrowindex)[] |
**Returns:** *void*
___
### addSheet
▸ **addSheet**(`name?`: undefined | string): *string*
*Defined in [src/CrudOperations.ts:204](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/CrudOperations.ts#L204)*
**Parameters:**
Name | Type |
------ | ------ |
`name?` | undefined | string |
**Returns:** *string*
___
### beginUndoRedoBatchMode
▸ **beginUndoRedoBatchMode**(): *void*
*Defined in [src/CrudOperations.ts:188](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/CrudOperations.ts#L188)*
**Returns:** *void*
___
### changeNamedExpressionExpression
▸ **changeNamedExpressionExpression**(`expressionName`: string, `sheetId`: number | undefined, `newExpression`: [RawCellContent](https://hyperformula.handsontable.com/docs/api/globals.md#rawcellcontent), `options?`: [NamedExpressionOptions](https://hyperformula.handsontable.com/docs/api/globals.md#namedexpressionoptions)): *void*
*Defined in [src/CrudOperations.ts:390](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/CrudOperations.ts#L390)*
**Parameters:**
Name | Type |
------ | ------ |
`expressionName` | string |
`sheetId` | number | undefined |
`newExpression` | [RawCellContent](https://hyperformula.handsontable.com/docs/api/globals.md#rawcellcontent) |
`options?` | [NamedExpressionOptions](https://hyperformula.handsontable.com/docs/api/globals.md#namedexpressionoptions) |
**Returns:** *void*
___
### clearClipboard
▸ **clearClipboard**(): *void*
*Defined in [src/CrudOperations.ts:200](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/CrudOperations.ts#L200)*
**Returns:** *void*
___
### clearSheet
▸ **clearSheet**(`sheetId`: number): *void*
*Defined in [src/CrudOperations.ts:240](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/CrudOperations.ts#L240)*
**Parameters:**
Name | Type |
------ | ------ |
`sheetId` | number |
**Returns:** *void*
___
### commitUndoRedoBatchMode
▸ **commitUndoRedoBatchMode**(): *void*
*Defined in [src/CrudOperations.ts:192](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/CrudOperations.ts#L192)*
**Returns:** *void*
___
### copy
▸ **copy**(`sourceLeftCorner`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md), `width`: number, `height`: number): *void*
*Defined in [src/CrudOperations.ts:167](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/CrudOperations.ts#L167)*
**Parameters:**
Name | Type |
------ | ------ |
`sourceLeftCorner` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) |
`width` | number |
`height` | number |
**Returns:** *void*
___
### cut
▸ **cut**(`sourceLeftCorner`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md), `width`: number, `height`: number): *void*
*Defined in [src/CrudOperations.ts:154](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/CrudOperations.ts#L154)*
**Parameters:**
Name | Type |
------ | ------ |
`sourceLeftCorner` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) |
`width` | number |
`height` | number |
**Returns:** *void*
___
### ensureItIsPossibleToAddColumns
▸ **ensureItIsPossibleToAddColumns**(`sheet`: number, ...`indexes`: [ColumnRowIndex](https://hyperformula.handsontable.com/docs/api/globals.md#columnrowindex)[]): *void*
*Defined in [src/CrudOperations.ts:462](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/CrudOperations.ts#L462)*
**Parameters:**
Name | Type |
------ | ------ |
`sheet` | number |
`...indexes` | [ColumnRowIndex](https://hyperformula.handsontable.com/docs/api/globals.md#columnrowindex)[] |
**Returns:** *void*
___
### ensureItIsPossibleToAddNamedExpression
▸ **ensureItIsPossibleToAddNamedExpression**(`expressionName`: string, `expression`: [RawCellContent](https://hyperformula.handsontable.com/docs/api/globals.md#rawcellcontent), `sheetId?`: undefined | number): *void*
*Defined in [src/CrudOperations.ts:408](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/CrudOperations.ts#L408)*
**Parameters:**
Name | Type |
------ | ------ |
`expressionName` | string |
`expression` | [RawCellContent](https://hyperformula.handsontable.com/docs/api/globals.md#rawcellcontent) |
`sheetId?` | undefined | number |
**Returns:** *void*
___
### ensureItIsPossibleToAddRows
▸ **ensureItIsPossibleToAddRows**(`sheet`: number, ...`indexes`: [ColumnRowIndex](https://hyperformula.handsontable.com/docs/api/globals.md#columnrowindex)[]): *void*
*Defined in [src/CrudOperations.ts:429](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/CrudOperations.ts#L429)*
**Parameters:**
Name | Type |
------ | ------ |
`sheet` | number |
`...indexes` | [ColumnRowIndex](https://hyperformula.handsontable.com/docs/api/globals.md#columnrowindex)[] |
**Returns:** *void*
___
### ensureItIsPossibleToAddSheet
▸ **ensureItIsPossibleToAddSheet**(`name`: string): *void*
*Defined in [src/CrudOperations.ts:550](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/CrudOperations.ts#L550)*
**Parameters:**
Name | Type |
------ | ------ |
`name` | string |
**Returns:** *void*
___
### ensureItIsPossibleToChangeCellContents
▸ **ensureItIsPossibleToChangeCellContents**(`inputAddress`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md), `content`: [RawCellContent](https://hyperformula.handsontable.com/docs/api/globals.md#rawcellcontent)[][]): *void*
*Defined in [src/CrudOperations.ts:576](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/CrudOperations.ts#L576)*
**Parameters:**
Name | Type |
------ | ------ |
`inputAddress` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) |
`content` | [RawCellContent](https://hyperformula.handsontable.com/docs/api/globals.md#rawcellcontent)[][] |
**Returns:** *void*
___
### ensureItIsPossibleToChangeContent
▸ **ensureItIsPossibleToChangeContent**(`address`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)): *void*
*Defined in [src/CrudOperations.ts:567](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/CrudOperations.ts#L567)*
**Parameters:**
Name | Type |
------ | ------ |
`address` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) |
**Returns:** *void*
___
### ensureItIsPossibleToChangeNamedExpression
▸ **ensureItIsPossibleToChangeNamedExpression**(`expressionName`: string, `expression`: [RawCellContent](https://hyperformula.handsontable.com/docs/api/globals.md#rawcellcontent), `sheetId?`: undefined | number): *void*
*Defined in [src/CrudOperations.ts:414](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/CrudOperations.ts#L414)*
**Parameters:**
Name | Type |
------ | ------ |
`expressionName` | string |
`expression` | [RawCellContent](https://hyperformula.handsontable.com/docs/api/globals.md#rawcellcontent) |
`sheetId?` | undefined | number |
**Returns:** *void*
___
### ensureItIsPossibleToChangeSheetContents
▸ **ensureItIsPossibleToChangeSheetContents**(`sheetId`: number, `content`: [RawCellContent](https://hyperformula.handsontable.com/docs/api/globals.md#rawcellcontent)[][]): *void*
*Defined in [src/CrudOperations.ts:585](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/CrudOperations.ts#L585)*
**Parameters:**
Name | Type |
------ | ------ |
`sheetId` | number |
`content` | [RawCellContent](https://hyperformula.handsontable.com/docs/api/globals.md#rawcellcontent)[][] |
**Returns:** *void*
___
### ensureItIsPossibleToCopy
▸ **ensureItIsPossibleToCopy**(`sourceLeftCorner`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md), `width`: number, `height`: number): *void*
*Defined in [src/CrudOperations.ts:158](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/CrudOperations.ts#L158)*
**Parameters:**
Name | Type |
------ | ------ |
`sourceLeftCorner` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) |
`width` | number |
`height` | number |
**Returns:** *void*
___
### ensureItIsPossibleToMoveColumns
▸ **ensureItIsPossibleToMoveColumns**(`sheet`: number, `startColumn`: number, `numberOfColumns`: number, `targetColumn`: number): *void*
*Defined in [src/CrudOperations.ts:523](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/CrudOperations.ts#L523)*
**Parameters:**
Name | Type |
------ | ------ |
`sheet` | number |
`startColumn` | number |
`numberOfColumns` | number |
`targetColumn` | number |
**Returns:** *void*
___
### ensureItIsPossibleToMoveRows
▸ **ensureItIsPossibleToMoveRows**(`sheet`: number, `startRow`: number, `numberOfRows`: number, `targetRow`: number): *void*
*Defined in [src/CrudOperations.ts:496](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/CrudOperations.ts#L496)*
**Parameters:**
Name | Type |
------ | ------ |
`sheet` | number |
`startRow` | number |
`numberOfRows` | number |
`targetRow` | number |
**Returns:** *void*
___
### ensureItIsPossibleToRemoveColumns
▸ **ensureItIsPossibleToRemoveColumns**(`sheet`: number, ...`indexes`: [ColumnRowIndex](https://hyperformula.handsontable.com/docs/api/globals.md#columnrowindex)[]): *void*
*Defined in [src/CrudOperations.ts:480](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/CrudOperations.ts#L480)*
**Parameters:**
Name | Type |
------ | ------ |
`sheet` | number |
`...indexes` | [ColumnRowIndex](https://hyperformula.handsontable.com/docs/api/globals.md#columnrowindex)[] |
**Returns:** *void*
___
### ensureItIsPossibleToRemoveRows
▸ **ensureItIsPossibleToRemoveRows**(`sheet`: number, ...`indexes`: [ColumnRowIndex](https://hyperformula.handsontable.com/docs/api/globals.md#columnrowindex)[]): *void*
*Defined in [src/CrudOperations.ts:447](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/CrudOperations.ts#L447)*
**Parameters:**
Name | Type |
------ | ------ |
`sheet` | number |
`...indexes` | [ColumnRowIndex](https://hyperformula.handsontable.com/docs/api/globals.md#columnrowindex)[] |
**Returns:** *void*
___
### ensureItIsPossibleToRenameSheet
▸ **ensureItIsPossibleToRenameSheet**(`sheetId`: number, `name`: string): *void*
*Defined in [src/CrudOperations.ts:556](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/CrudOperations.ts#L556)*
**Parameters:**
Name | Type |
------ | ------ |
`sheetId` | number |
`name` | string |
**Returns:** *void*
___
### ensureRangeInSizeLimits
▸ **ensureRangeInSizeLimits**(`range`: [AbsoluteCellRange](https://hyperformula.handsontable.com/docs/api/classes/absolutecellrange.md)): *void*
*Defined in [src/CrudOperations.ts:591](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/CrudOperations.ts#L591)*
**Parameters:**
Name | Type |
------ | ------ |
`range` | [AbsoluteCellRange](https://hyperformula.handsontable.com/docs/api/classes/absolutecellrange.md) |
**Returns:** *void*
___
### ensureScopeIdIsValid
▸ **ensureScopeIdIsValid**(`scopeId?`: undefined | number): *void*
*Defined in [src/CrudOperations.ts:609](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/CrudOperations.ts#L609)*
**Parameters:**
Name | Type |
------ | ------ |
`scopeId?` | undefined | number |
**Returns:** *void*
___
### getAndClearContentChanges
▸ **getAndClearContentChanges**(): *[ContentChanges](https://hyperformula.handsontable.com/docs/api/classes/contentchanges.md)*
*Defined in [src/CrudOperations.ts:605](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/CrudOperations.ts#L605)*
**Returns:** *[ContentChanges](https://hyperformula.handsontable.com/docs/api/classes/contentchanges.md)*
___
### isClipboardEmpty
▸ **isClipboardEmpty**(): *boolean*
*Defined in [src/CrudOperations.ts:196](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/CrudOperations.ts#L196)*
**Returns:** *boolean*
___
### isItPossibleToRemoveNamedExpression
▸ **isItPossibleToRemoveNamedExpression**(`expressionName`: string, `sheetId?`: undefined | number): *void*
*Defined in [src/CrudOperations.ts:422](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/CrudOperations.ts#L422)*
**Parameters:**
Name | Type |
------ | ------ |
`expressionName` | string |
`sheetId?` | undefined | number |
**Returns:** *void*
___
### isThereSomethingToRedo
▸ **isThereSomethingToRedo**(): *boolean*
*Defined in [src/CrudOperations.ts:601](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/CrudOperations.ts#L601)*
**Returns:** *boolean*
___
### isThereSomethingToUndo
▸ **isThereSomethingToUndo**(): *boolean*
*Defined in [src/CrudOperations.ts:597](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/CrudOperations.ts#L597)*
**Returns:** *boolean*
___
### mappingFromOrder
▸ **mappingFromOrder**(`sheetId`: number, `newOrder`: number[], `rowOrColumn`: "row" | "column"): *[number, number][]*
*Defined in [src/CrudOperations.ts:349](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/CrudOperations.ts#L349)*
**Parameters:**
Name | Type |
------ | ------ |
`sheetId` | number |
`newOrder` | number[] |
`rowOrColumn` | "row" | "column" |
**Returns:** *[number, number][]*
___
### moveCells
▸ **moveCells**(`sourceLeftCorner`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md), `width`: number, `height`: number, `destinationLeftCorner`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)): *void*
*Defined in [src/CrudOperations.ts:128](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/CrudOperations.ts#L128)*
**Parameters:**
Name | Type |
------ | ------ |
`sourceLeftCorner` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) |
`width` | number |
`height` | number |
`destinationLeftCorner` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) |
**Returns:** *void*
___
### moveColumns
▸ **moveColumns**(`sheet`: number, `startColumn`: number, `numberOfColumns`: number, `targetColumn`: number): *void*
*Defined in [src/CrudOperations.ts:147](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/CrudOperations.ts#L147)*
**Parameters:**
Name | Type |
------ | ------ |
`sheet` | number |
`startColumn` | number |
`numberOfColumns` | number |
`targetColumn` | number |
**Returns:** *void*
___
### moveRows
▸ **moveRows**(`sheet`: number, `startRow`: number, `numberOfRows`: number, `targetRow`: number): *void*
*Defined in [src/CrudOperations.ts:139](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/CrudOperations.ts#L139)*
**Parameters:**
Name | Type |
------ | ------ |
`sheet` | number |
`startRow` | number |
`numberOfRows` | number |
`targetRow` | number |
**Returns:** *void*
___
### paste
▸ **paste**(`targetLeftCorner`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)): *void*
*Defined in [src/CrudOperations.ts:172](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/CrudOperations.ts#L172)*
**Parameters:**
Name | Type |
------ | ------ |
`targetLeftCorner` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) |
**Returns:** *void*
___
### redo
▸ **redo**(): *void*
*Defined in [src/CrudOperations.ts:374](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/CrudOperations.ts#L374)*
**Returns:** *void*
___
### removeColumns
▸ **removeColumns**(`sheet`: number, ...`indexes`: [ColumnRowIndex](https://hyperformula.handsontable.com/docs/api/globals.md#columnrowindex)[]): *void*
*Defined in [src/CrudOperations.ts:119](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/CrudOperations.ts#L119)*
**Parameters:**
Name | Type |
------ | ------ |
`sheet` | number |
`...indexes` | [ColumnRowIndex](https://hyperformula.handsontable.com/docs/api/globals.md#columnrowindex)[] |
**Returns:** *void*
___
### removeNamedExpression
▸ **removeNamedExpression**(`expressionName`: string, `sheetId?`: undefined | number): *[InternalNamedExpression](https://hyperformula.handsontable.com/docs/api/classes/internalnamedexpression.md)*
*Defined in [src/CrudOperations.ts:398](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/CrudOperations.ts#L398)*
**Parameters:**
Name | Type |
------ | ------ |
`expressionName` | string |
`sheetId?` | undefined | number |
**Returns:** *[InternalNamedExpression](https://hyperformula.handsontable.com/docs/api/classes/internalnamedexpression.md)*
___
### removeRows
▸ **removeRows**(`sheet`: number, ...`indexes`: [ColumnRowIndex](https://hyperformula.handsontable.com/docs/api/globals.md#columnrowindex)[]): *void*
*Defined in [src/CrudOperations.ts:101](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/CrudOperations.ts#L101)*
**Parameters:**
Name | Type |
------ | ------ |
`sheet` | number |
`...indexes` | [ColumnRowIndex](https://hyperformula.handsontable.com/docs/api/globals.md#columnrowindex)[] |
**Returns:** *void*
___
### removeSheet
▸ **removeSheet**(`sheetId`: number): *void*
*Defined in [src/CrudOperations.ts:214](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/CrudOperations.ts#L214)*
**Parameters:**
Name | Type |
------ | ------ |
`sheetId` | number |
**Returns:** *void*
___
### renameSheet
▸ **renameSheet**(`sheetId`: number, `newName`: string): *[Maybe](https://hyperformula.handsontable.com/docs/api/globals.md#maybe)‹string›*
*Defined in [src/CrudOperations.ts:224](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/CrudOperations.ts#L224)*
**Parameters:**
Name | Type |
------ | ------ |
`sheetId` | number |
`newName` | string |
**Returns:** *[Maybe](https://hyperformula.handsontable.com/docs/api/globals.md#maybe)‹string›*
___
### setCellContents
▸ **setCellContents**(`topLeftCornerAddress`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md), `cellContents`: [RawCellContent](https://hyperformula.handsontable.com/docs/api/globals.md#rawcellcontent)[][] | [RawCellContent](https://hyperformula.handsontable.com/docs/api/globals.md#rawcellcontent)): *void*
*Defined in [src/CrudOperations.ts:249](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/CrudOperations.ts#L249)*
**Parameters:**
Name | Type |
------ | ------ |
`topLeftCornerAddress` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) |
`cellContents` | [RawCellContent](https://hyperformula.handsontable.com/docs/api/globals.md#rawcellcontent)[][] | [RawCellContent](https://hyperformula.handsontable.com/docs/api/globals.md#rawcellcontent) |
**Returns:** *void*
___
### setColumnOrder
▸ **setColumnOrder**(`sheetId`: number, `columnMapping`: [number, number][]): *void*
*Defined in [src/CrudOperations.ts:322](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/CrudOperations.ts#L322)*
**Parameters:**
Name | Type |
------ | ------ |
`sheetId` | number |
`columnMapping` | [number, number][] |
**Returns:** *void*
___
### setRowOrder
▸ **setRowOrder**(`sheetId`: number, `rowMapping`: [number, number][]): *void*
*Defined in [src/CrudOperations.ts:295](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/CrudOperations.ts#L295)*
**Parameters:**
Name | Type |
------ | ------ |
`sheetId` | number |
`rowMapping` | [number, number][] |
**Returns:** *void*
___
### setSheetContent
▸ **setSheetContent**(`sheetId`: number, `values`: [RawCellContent](https://hyperformula.handsontable.com/docs/api/globals.md#rawcellcontent)[][]): *void*
*Defined in [src/CrudOperations.ts:283](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/CrudOperations.ts#L283)*
**Parameters:**
Name | Type |
------ | ------ |
`sheetId` | number |
`values` | [RawCellContent](https://hyperformula.handsontable.com/docs/api/globals.md#rawcellcontent)[][] |
**Returns:** *void*
___
### testColumnOrderForArrays
▸ **testColumnOrderForArrays**(`sheetId`: number, `columnMapping`: [number, number][]): *void*
*Defined in [src/CrudOperations.ts:311](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/CrudOperations.ts#L311)*
**Parameters:**
Name | Type |
------ | ------ |
`sheetId` | number |
`columnMapping` | [number, number][] |
**Returns:** *void*
___
### testRowOrderForArrays
▸ **testRowOrderForArrays**(`sheetId`: number, `rowMapping`: [number, number][]): *void*
*Defined in [src/CrudOperations.ts:338](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/CrudOperations.ts#L338)*
**Parameters:**
Name | Type |
------ | ------ |
`sheetId` | number |
`rowMapping` | [number, number][] |
**Returns:** *void*
___
### undo
▸ **undo**(): *void*
*Defined in [src/CrudOperations.ts:366](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/CrudOperations.ts#L366)*
**Returns:** *void*
___
### validateSwapColumnIndexes
▸ **validateSwapColumnIndexes**(`sheetId`: number, `columnMapping`: [number, number][]): *void*
*Defined in [src/CrudOperations.ts:331](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/CrudOperations.ts#L331)*
**Parameters:**
Name | Type |
------ | ------ |
`sheetId` | number |
`columnMapping` | [number, number][] |
**Returns:** *void*
___
### validateSwapRowIndexes
▸ **validateSwapRowIndexes**(`sheetId`: number, `rowMapping`: [number, number][]): *void*
*Defined in [src/CrudOperations.ts:304](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/CrudOperations.ts#L304)*
**Parameters:**
Name | Type |
------ | ------ |
`sheetId` | number |
`rowMapping` | [number, number][] |
**Returns:** *void*
---
## ColumnBinarySearch
URL: https://hyperformula.handsontable.com/docs/api/classes/columnbinarysearch
# ColumnBinarySearch
## Constructors
### constructor
\+ **new ColumnBinarySearch**(`dependencyGraph`: DependencyGraph): *[ColumnBinarySearch](https://hyperformula.handsontable.com/docs/api/classes/columnbinarysearch.md)*
*Defined in [src/Lookup/ColumnBinarySearch.ts:15](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Lookup/ColumnBinarySearch.ts#L15)*
**Parameters:**
Name | Type |
------ | ------ |
`dependencyGraph` | DependencyGraph |
**Returns:** *[ColumnBinarySearch](https://hyperformula.handsontable.com/docs/api/classes/columnbinarysearch.md)*
## Methods
### add
▸ **add**(`value`: RawScalarValue, `address`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)): *void*
*Defined in [src/Lookup/ColumnBinarySearch.ts:21](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Lookup/ColumnBinarySearch.ts#L21)*
**Parameters:**
Name | Type |
------ | ------ |
`value` | RawScalarValue |
`address` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) |
**Returns:** *void*
___
### addColumns
▸ **addColumns**(`columnsSpan`: [ColumnsSpan](https://hyperformula.handsontable.com/docs/api/classes/columnsspan.md)): *void*
*Defined in [src/Lookup/ColumnBinarySearch.ts:37](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Lookup/ColumnBinarySearch.ts#L37)*
**Parameters:**
Name | Type |
------ | ------ |
`columnsSpan` | [ColumnsSpan](https://hyperformula.handsontable.com/docs/api/classes/columnsspan.md) |
**Returns:** *void*
___
### advancedFind
▸ **advancedFind**(`keyMatcher`: function, `rangeValue`: [SimpleRangeValue](https://hyperformula.handsontable.com/docs/api/classes/simplerangevalue.md), `__namedParameters`: object): *number*
*Defined in [src/Lookup/AdvancedFind.ts:27](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Lookup/AdvancedFind.ts#L27)*
**Parameters:**
▪ **keyMatcher**: *function*
▸ (`arg`: RawInterpreterValue): *boolean*
**Parameters:**
Name | Type |
------ | ------ |
`arg` | RawInterpreterValue |
▪ **rangeValue**: *[SimpleRangeValue](https://hyperformula.handsontable.com/docs/api/classes/simplerangevalue.md)*
▪`Default value` **__namedParameters**: *object*= { returnOccurrence: 'first' }
Name | Type |
------ | ------ |
`returnOccurrence` | undefined | "first" | "last" |
**Returns:** *number*
___
### applyChanges
▸ **applyChanges**(`contentChanges`: [CellValueChange](https://hyperformula.handsontable.com/docs/api/interfaces/cellvaluechange.md)[]): *void*
*Defined in [src/Lookup/ColumnBinarySearch.ts:33](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Lookup/ColumnBinarySearch.ts#L33)*
**Parameters:**
Name | Type |
------ | ------ |
`contentChanges` | [CellValueChange](https://hyperformula.handsontable.com/docs/api/interfaces/cellvaluechange.md)[] |
**Returns:** *void*
___
### change
▸ **change**(`oldValue`: RawScalarValue | undefined, `newValue`: RawScalarValue, `address`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)): *void*
*Defined in [src/Lookup/ColumnBinarySearch.ts:29](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Lookup/ColumnBinarySearch.ts#L29)*
**Parameters:**
Name | Type |
------ | ------ |
`oldValue` | RawScalarValue | undefined |
`newValue` | RawScalarValue |
`address` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) |
**Returns:** *void*
___
### find
▸ **find**(`searchKey`: RawNoErrorScalarValue, `rangeValue`: [SimpleRangeValue](https://hyperformula.handsontable.com/docs/api/classes/simplerangevalue.md), `searchOptions`: [SearchOptions](https://hyperformula.handsontable.com/docs/api/interfaces/searchoptions.md)): *number*
*Defined in [src/Lookup/ColumnBinarySearch.ts:69](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Lookup/ColumnBinarySearch.ts#L69)*
**Parameters:**
Name | Type |
------ | ------ |
`searchKey` | RawNoErrorScalarValue |
`rangeValue` | [SimpleRangeValue](https://hyperformula.handsontable.com/docs/api/classes/simplerangevalue.md) |
`searchOptions` | [SearchOptions](https://hyperformula.handsontable.com/docs/api/interfaces/searchoptions.md) |
**Returns:** *number*
___
### forceApplyPostponedTransformations
▸ **forceApplyPostponedTransformations**(): *void*
*Defined in [src/Lookup/ColumnBinarySearch.ts:63](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Lookup/ColumnBinarySearch.ts#L63)*
No-op: ColumnBinarySearch reads cell values directly from the dependency graph
on every lookup, so it has no cached data that could become stale.
Unlike ColumnIndex, which maintains a separate value-to-address index that
must be kept in sync with lazy transformations, binary search always operates
on the current graph state.
**Returns:** *void*
___
### moveValues
▸ **moveValues**(`sourceRange`: IterableIterator‹[RawScalarValue, [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)]›, `toRight`: number, `toBottom`: number, `toSheet`: number): *void*
*Defined in [src/Lookup/ColumnBinarySearch.ts:49](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Lookup/ColumnBinarySearch.ts#L49)*
**Parameters:**
Name | Type |
------ | ------ |
`sourceRange` | IterableIterator‹[RawScalarValue, [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)]› |
`toRight` | number |
`toBottom` | number |
`toSheet` | number |
**Returns:** *void*
___
### remove
▸ **remove**(`value`: RawScalarValue | undefined, `address`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)): *void*
*Defined in [src/Lookup/ColumnBinarySearch.ts:25](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Lookup/ColumnBinarySearch.ts#L25)*
**Parameters:**
Name | Type |
------ | ------ |
`value` | RawScalarValue | undefined |
`address` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) |
**Returns:** *void*
___
### removeColumns
▸ **removeColumns**(`columnsSpan`: [ColumnsSpan](https://hyperformula.handsontable.com/docs/api/classes/columnsspan.md)): *void*
*Defined in [src/Lookup/ColumnBinarySearch.ts:41](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Lookup/ColumnBinarySearch.ts#L41)*
**Parameters:**
Name | Type |
------ | ------ |
`columnsSpan` | [ColumnsSpan](https://hyperformula.handsontable.com/docs/api/classes/columnsspan.md) |
**Returns:** *void*
___
### removeSheet
▸ **removeSheet**(`sheetId`: number): *void*
*Defined in [src/Lookup/ColumnBinarySearch.ts:45](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Lookup/ColumnBinarySearch.ts#L45)*
**Parameters:**
Name | Type |
------ | ------ |
`sheetId` | number |
**Returns:** *void*
___
### removeValues
▸ **removeValues**(`range`: IterableIterator‹[RawScalarValue, [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)]›): *void*
*Defined in [src/Lookup/ColumnBinarySearch.ts:53](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Lookup/ColumnBinarySearch.ts#L53)*
**Parameters:**
Name | Type |
------ | ------ |
`range` | IterableIterator‹[RawScalarValue, [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)]› |
**Returns:** *void*
---
## ContentChanges
URL: https://hyperformula.handsontable.com/docs/api/classes/contentchanges
# ContentChanges
## Methods
### addAll
▸ **addAll**(`other`: [ContentChanges](https://hyperformula.handsontable.com/docs/api/classes/contentchanges.md)): *[ContentChanges](https://hyperformula.handsontable.com/docs/api/classes/contentchanges.md)*
*Defined in [src/ContentChanges.ts:29](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ContentChanges.ts#L29)*
**Parameters:**
Name | Type |
------ | ------ |
`other` | [ContentChanges](https://hyperformula.handsontable.com/docs/api/classes/contentchanges.md) |
**Returns:** *[ContentChanges](https://hyperformula.handsontable.com/docs/api/classes/contentchanges.md)*
___
### addChange
▸ **addChange**(`newValue`: InterpreterValue, `address`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md), `oldValue?`: InterpreterValue): *void*
*Defined in [src/ContentChanges.ts:36](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ContentChanges.ts#L36)*
**Parameters:**
Name | Type |
------ | ------ |
`newValue` | InterpreterValue |
`address` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) |
`oldValue?` | InterpreterValue |
**Returns:** *void*
___
### exportChanges
▸ **exportChanges**‹**T**›(`exporter`: [ChangeExporter](https://hyperformula.handsontable.com/docs/api/interfaces/changeexporter.md)‹T›): *T[]*
*Defined in [src/ContentChanges.ts:40](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ContentChanges.ts#L40)*
**Type parameters:**
▪ **T**
**Parameters:**
Name | Type |
------ | ------ |
`exporter` | [ChangeExporter](https://hyperformula.handsontable.com/docs/api/interfaces/changeexporter.md)‹T› |
**Returns:** *T[]*
___
### getChanges
▸ **getChanges**(): *[ChangeList](https://hyperformula.handsontable.com/docs/api/globals.md#changelist)*
*Defined in [src/ContentChanges.ts:53](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ContentChanges.ts#L53)*
**Returns:** *[ChangeList](https://hyperformula.handsontable.com/docs/api/globals.md#changelist)*
___
### isEmpty
▸ **isEmpty**(): *boolean*
*Defined in [src/ContentChanges.ts:57](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ContentChanges.ts#L57)*
**Returns:** *boolean*
___
### empty
▸ **empty**(): *[ContentChanges](https://hyperformula.handsontable.com/docs/api/classes/contentchanges.md)‹›*
*Defined in [src/ContentChanges.ts:25](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ContentChanges.ts#L25)*
**Returns:** *[ContentChanges](https://hyperformula.handsontable.com/docs/api/classes/contentchanges.md)‹›*
---
## DateTimeHelper
URL: https://hyperformula.handsontable.com/docs/api/classes/datetimehelper
# DateTimeHelper
## Constructors
### constructor
\+ **new DateTimeHelper**(`config`: [Config](https://hyperformula.handsontable.com/docs/api/classes/config.md)): *[DateTimeHelper](https://hyperformula.handsontable.com/docs/api/classes/datetimehelper.md)*
*Defined in [src/DateTimeHelper.ts:58](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/DateTimeHelper.ts#L58)*
**Parameters:**
Name | Type |
------ | ------ |
`config` | [Config](https://hyperformula.handsontable.com/docs/api/classes/config.md) |
**Returns:** *[DateTimeHelper](https://hyperformula.handsontable.com/docs/api/classes/datetimehelper.md)*
## Methods
### dateStringToDateNumber
▸ **dateStringToDateNumber**(`dateTimeString`: string): *[Maybe](https://hyperformula.handsontable.com/docs/api/globals.md#maybe)‹ExtendedNumber›*
*Defined in [src/DateTimeHelper.ts:81](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/DateTimeHelper.ts#L81)*
**Parameters:**
Name | Type |
------ | ------ |
`dateTimeString` | string |
**Returns:** *[Maybe](https://hyperformula.handsontable.com/docs/api/globals.md#maybe)‹ExtendedNumber›*
___
### dateToNumber
▸ **dateToNumber**(`date`: [SimpleDate](https://hyperformula.handsontable.com/docs/api/interfaces/simpledate.md)): *number*
*Defined in [src/DateTimeHelper.ts:131](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/DateTimeHelper.ts#L131)*
**Parameters:**
Name | Type |
------ | ------ |
`date` | [SimpleDate](https://hyperformula.handsontable.com/docs/api/interfaces/simpledate.md) |
**Returns:** *number*
___
### daysInMonth
▸ **daysInMonth**(`year`: number, `month`: number): *number*
*Defined in [src/DateTimeHelper.ts:167](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/DateTimeHelper.ts#L167)*
**Parameters:**
Name | Type |
------ | ------ |
`year` | number |
`month` | number |
**Returns:** *number*
___
### endOfMonth
▸ **endOfMonth**(`date`: [SimpleDate](https://hyperformula.handsontable.com/docs/api/interfaces/simpledate.md)): *[SimpleDate](https://hyperformula.handsontable.com/docs/api/interfaces/simpledate.md)*
*Defined in [src/DateTimeHelper.ts:175](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/DateTimeHelper.ts#L175)*
**Parameters:**
Name | Type |
------ | ------ |
`date` | [SimpleDate](https://hyperformula.handsontable.com/docs/api/interfaces/simpledate.md) |
**Returns:** *[SimpleDate](https://hyperformula.handsontable.com/docs/api/interfaces/simpledate.md)*
___
### getEpochYearZero
▸ **getEpochYearZero**(): *number*
*Defined in [src/DateTimeHelper.ts:109](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/DateTimeHelper.ts#L109)*
**Returns:** *number*
___
### getNullYear
▸ **getNullYear**(): *number*
*Defined in [src/DateTimeHelper.ts:105](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/DateTimeHelper.ts#L105)*
**Returns:** *number*
___
### getWithinBounds
▸ **getWithinBounds**(`dayNumber`: number): *[Maybe](https://hyperformula.handsontable.com/docs/api/globals.md#maybe)‹number›*
*Defined in [src/DateTimeHelper.ts:77](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/DateTimeHelper.ts#L77)*
**Parameters:**
Name | Type |
------ | ------ |
`dayNumber` | number |
**Returns:** *[Maybe](https://hyperformula.handsontable.com/docs/api/globals.md#maybe)‹number›*
___
### isValidDate
▸ **isValidDate**(`date`: [SimpleDate](https://hyperformula.handsontable.com/docs/api/interfaces/simpledate.md)): *boolean*
*Defined in [src/DateTimeHelper.ts:113](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/DateTimeHelper.ts#L113)*
**Parameters:**
Name | Type |
------ | ------ |
`date` | [SimpleDate](https://hyperformula.handsontable.com/docs/api/interfaces/simpledate.md) |
**Returns:** *boolean*
___
### leapYearsCount
▸ **leapYearsCount**(`year`: number): *number*
*Defined in [src/DateTimeHelper.ts:163](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/DateTimeHelper.ts#L163)*
**Parameters:**
Name | Type |
------ | ------ |
`year` | number |
**Returns:** *number*
___
### numberToSimpleDate
▸ **numberToSimpleDate**(`arg`: number): *[SimpleDate](https://hyperformula.handsontable.com/docs/api/interfaces/simpledate.md)*
*Defined in [src/DateTimeHelper.ts:139](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/DateTimeHelper.ts#L139)*
**Parameters:**
Name | Type |
------ | ------ |
`arg` | number |
**Returns:** *[SimpleDate](https://hyperformula.handsontable.com/docs/api/interfaces/simpledate.md)*
___
### numberToSimpleDateTime
▸ **numberToSimpleDateTime**(`arg`: number): *[SimpleDateTime](https://hyperformula.handsontable.com/docs/api/globals.md#simpledatetime)*
*Defined in [src/DateTimeHelper.ts:154](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/DateTimeHelper.ts#L154)*
**Parameters:**
Name | Type |
------ | ------ |
`arg` | number |
**Returns:** *[SimpleDateTime](https://hyperformula.handsontable.com/docs/api/globals.md#simpledatetime)*
___
### parseDateTimeFromConfigFormats
▸ **parseDateTimeFromConfigFormats**(`dateTimeString`: string): *Partial‹object›*
*Defined in [src/DateTimeHelper.ts:101](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/DateTimeHelper.ts#L101)*
**Parameters:**
Name | Type |
------ | ------ |
`dateTimeString` | string |
**Returns:** *Partial‹object›*
___
### relativeNumberToAbsoluteNumber
▸ **relativeNumberToAbsoluteNumber**(`arg`: number): *number*
*Defined in [src/DateTimeHelper.ts:135](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/DateTimeHelper.ts#L135)*
**Parameters:**
Name | Type |
------ | ------ |
`arg` | number |
**Returns:** *number*
___
### toBasisUS
▸ **toBasisUS**(`start`: [SimpleDate](https://hyperformula.handsontable.com/docs/api/interfaces/simpledate.md), `end`: [SimpleDate](https://hyperformula.handsontable.com/docs/api/interfaces/simpledate.md)): *[[SimpleDate](https://hyperformula.handsontable.com/docs/api/interfaces/simpledate.md), [SimpleDate](https://hyperformula.handsontable.com/docs/api/interfaces/simpledate.md)]*
*Defined in [src/DateTimeHelper.ts:179](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/DateTimeHelper.ts#L179)*
**Parameters:**
Name | Type |
------ | ------ |
`start` | [SimpleDate](https://hyperformula.handsontable.com/docs/api/interfaces/simpledate.md) |
`end` | [SimpleDate](https://hyperformula.handsontable.com/docs/api/interfaces/simpledate.md) |
**Returns:** *[[SimpleDate](https://hyperformula.handsontable.com/docs/api/interfaces/simpledate.md), [SimpleDate](https://hyperformula.handsontable.com/docs/api/interfaces/simpledate.md)]*
___
### yearLengthForBasis
▸ **yearLengthForBasis**(`start`: [SimpleDate](https://hyperformula.handsontable.com/docs/api/interfaces/simpledate.md), `end`: [SimpleDate](https://hyperformula.handsontable.com/docs/api/interfaces/simpledate.md)): *number*
*Defined in [src/DateTimeHelper.ts:195](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/DateTimeHelper.ts#L195)*
**Parameters:**
Name | Type |
------ | ------ |
`start` | [SimpleDate](https://hyperformula.handsontable.com/docs/api/interfaces/simpledate.md) |
`end` | [SimpleDate](https://hyperformula.handsontable.com/docs/api/interfaces/simpledate.md) |
**Returns:** *number*
---
## ConfigValueTooBigError
URL: https://hyperformula.handsontable.com/docs/api/classes/configvaluetoobigerror
# ConfigValueTooBigError
Error thrown when supplied config parameter value is too big.
This error might be thrown while setting or updating the [ConfigParams](https://hyperformula.handsontable.com/docs/api/interfaces/configparams.md).
The following methods accept [ConfigParams](https://hyperformula.handsontable.com/docs/api/interfaces/configparams.md) as a parameter:
**`see`** [buildEmpty](https://hyperformula.handsontable.com/docs/api/classes/buildenginefactory.md#static-buildempty)
**`see`** [buildFromArray](https://hyperformula.handsontable.com/docs/api/classes/hyperformula.md#static-buildfromarray)
**`see`** [buildFromSheets](https://hyperformula.handsontable.com/docs/api/classes/buildenginefactory.md#static-buildfromsheets)
**`see`** [updateConfig](https://hyperformula.handsontable.com/docs/api/classes/hyperformula.md#updateconfig)
## Constructors
### constructor
\+ **new ConfigValueTooBigError**(`paramName`: string, `maximum`: number): *[ConfigValueTooBigError](https://hyperformula.handsontable.com/docs/api/classes/configvaluetoobigerror.md)*
*Defined in [src/errors.ts:225](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/errors.ts#L225)*
**Parameters:**
Name | Type |
------ | ------ |
`paramName` | string |
`maximum` | number |
**Returns:** *[ConfigValueTooBigError](https://hyperformula.handsontable.com/docs/api/classes/configvaluetoobigerror.md)*
## Properties
### message
• **message**: *string*
___
### name
• **name**: *string*
___
### stack
• **stack**? : *undefined | string*
___
### Error
▪ **Error**: *ErrorConstructor*
---
## DetailedCellError
URL: https://hyperformula.handsontable.com/docs/api/classes/detailedcellerror
# DetailedCellError
## Constructors
### constructor
\+ **new DetailedCellError**(`error`: [CellError](https://hyperformula.handsontable.com/docs/api/classes/cellerror.md), `value`: string, `address?`: undefined | string): *[DetailedCellError](https://hyperformula.handsontable.com/docs/api/classes/detailedcellerror.md)*
*Defined in [src/CellValue.ts:13](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/CellValue.ts#L13)*
**Parameters:**
Name | Type |
------ | ------ |
`error` | [CellError](https://hyperformula.handsontable.com/docs/api/classes/cellerror.md) |
`value` | string |
`address?` | undefined | string |
**Returns:** *[DetailedCellError](https://hyperformula.handsontable.com/docs/api/classes/detailedcellerror.md)*
## Properties
### address
• **address**? : *undefined | string*
*Defined in [src/CellValue.ts:18](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/CellValue.ts#L18)*
___
### message
• **message**: *string*
*Defined in [src/CellValue.ts:13](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/CellValue.ts#L13)*
___
### type
• **type**: *[ErrorType](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-errortype)*
*Defined in [src/CellValue.ts:12](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/CellValue.ts#L12)*
___
### value
• **value**: *string*
*Defined in [src/CellValue.ts:17](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/CellValue.ts#L17)*
## Methods
### toString
▸ **toString**(): *string*
*Defined in [src/CellValue.ts:24](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/CellValue.ts#L24)*
**Returns:** *string*
___
### valueOf
▸ **valueOf**(): *string*
*Defined in [src/CellValue.ts:28](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/CellValue.ts#L28)*
**Returns:** *string*
---
## ErrorMessage
URL: https://hyperformula.handsontable.com/docs/api/classes/errormessage
# ErrorMessage
This is a class for detailed error messages across HyperFormula.
## Properties
### ArrayDimensions
▪ **ArrayDimensions**: *string* = "Array dimensions are not compatible."
*Defined in [src/error-message.ts:14](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/error-message.ts#L14)*
___
### BadCriterion
▪ **BadCriterion**: *string* = "Incorrect criterion."
*Defined in [src/error-message.ts:19](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/error-message.ts#L19)*
___
### BadMode
▪ **BadMode**: *string* = "Mode not recognized."
*Defined in [src/error-message.ts:27](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/error-message.ts#L27)*
___
### BadRef
▪ **BadRef**: *string* = "Address is not correct."
*Defined in [src/error-message.ts:40](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/error-message.ts#L40)*
___
### BitshiftLong
▪ **BitshiftLong**: *string* = "Result of bitshift is too long."
*Defined in [src/error-message.ts:59](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/error-message.ts#L59)*
___
### CellRangeExpected
▪ **CellRangeExpected**: *string* = "Cell range expected."
*Defined in [src/error-message.ts:21](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/error-message.ts#L21)*
___
### CellRefExpected
▪ **CellRefExpected**: *string* = "Cell reference expected."
*Defined in [src/error-message.ts:38](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/error-message.ts#L38)*
___
### CharacterCodeBounds
▪ **CharacterCodeBounds**: *string* = "Character code out of bounds."
*Defined in [src/error-message.ts:68](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/error-message.ts#L68)*
___
### ComplexNumberExpected
▪ **ComplexNumberExpected**: *string* = "Complex number expected."
*Defined in [src/error-message.ts:74](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/error-message.ts#L74)*
___
### DateBounds
▪ **DateBounds**: *string* = "Date outside of bounds."
*Defined in [src/error-message.ts:28](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/error-message.ts#L28)*
___
### DistinctSigns
▪ **DistinctSigns**: *string* = "Distinct signs."
*Defined in [src/error-message.ts:10](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/error-message.ts#L10)*
___
### EmptyArg
▪ **EmptyArg**: *string* = "Empty function argument."
*Defined in [src/error-message.ts:12](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/error-message.ts#L12)*
___
### EmptyArray
▪ **EmptyArray**: *string* = "Empty array not allowed."
*Defined in [src/error-message.ts:13](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/error-message.ts#L13)*
___
### EmptyRange
▪ **EmptyRange**: *string* = "Empty range not allowed."
*Defined in [src/error-message.ts:39](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/error-message.ts#L39)*
___
### EmptyString
▪ **EmptyString**: *string* = "Empty-string argument not allowed."
*Defined in [src/error-message.ts:60](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/error-message.ts#L60)*
___
### EndStartPeriod
▪ **EndStartPeriod**: *string* = "End period needs to be at least start period."
*Defined in [src/error-message.ts:37](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/error-message.ts#L37)*
___
### EqualLength
▪ **EqualLength**: *string* = "Ranges need to be of equal length."
*Defined in [src/error-message.ts:32](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/error-message.ts#L32)*
___
### Formula
▪ **Formula**: *string* = "Expected formula."
*Defined in [src/error-message.ts:53](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/error-message.ts#L53)*
___
### IncorrectDateTime
▪ **IncorrectDateTime**: *string* = "String does not represent correct DateTime."
*Defined in [src/error-message.ts:67](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/error-message.ts#L67)*
___
### IndexBounds
▪ **IndexBounds**: *string* = "Index out of bounds."
*Defined in [src/error-message.ts:51](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/error-message.ts#L51)*
___
### IndexLarge
▪ **IndexLarge**: *string* = "Index too large."
*Defined in [src/error-message.ts:52](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/error-message.ts#L52)*
___
### IntegerExpected
▪ **IntegerExpected**: *string* = "Value needs to be an integer."
*Defined in [src/error-message.ts:26](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/error-message.ts#L26)*
___
### InvalidDate
▪ **InvalidDate**: *string* = "Invalid date."
*Defined in [src/error-message.ts:58](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/error-message.ts#L58)*
___
### InvalidRoman
▪ **InvalidRoman**: *string* = "Invalid roman numeral."
*Defined in [src/error-message.ts:72](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/error-message.ts#L72)*
___
### LengthBounds
▪ **LengthBounds**: *string* = "Length out of bounds."
*Defined in [src/error-message.ts:61](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/error-message.ts#L61)*
___
### LessThanOne
▪ **LessThanOne**: *string* = "Argument cannot be less than 1."
*Defined in [src/error-message.ts:70](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/error-message.ts#L70)*
___
### NaN
▪ **NaN**: *string* = "NaN or infinite value encountered."
*Defined in [src/error-message.ts:31](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/error-message.ts#L31)*
___
### Negative
▪ **Negative**: *string* = "Value cannot be negative."
*Defined in [src/error-message.ts:33](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/error-message.ts#L33)*
___
### NegativeCount
▪ **NegativeCount**: *string* = "Count cannot be negative."
*Defined in [src/error-message.ts:54](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/error-message.ts#L54)*
___
### NegativeLength
▪ **NegativeLength**: *string* = "Length cannot be negative."
*Defined in [src/error-message.ts:46](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/error-message.ts#L46)*
___
### NegativeTime
▪ **NegativeTime**: *string* = "Time cannot be negative."
*Defined in [src/error-message.ts:62](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/error-message.ts#L62)*
___
### NoConditionMet
▪ **NoConditionMet**: *string* = "None of the conditions were met."
*Defined in [src/error-message.ts:64](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/error-message.ts#L64)*
___
### NoDefault
▪ **NoDefault**: *string* = "No default option."
*Defined in [src/error-message.ts:63](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/error-message.ts#L63)*
___
### NoSpaceForArrayResult
▪ **NoSpaceForArrayResult**: *string* = "No space for array result."
*Defined in [src/error-message.ts:16](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/error-message.ts#L16)*
___
### NonZero
▪ **NonZero**: *string* = "Argument cannot be 0."
*Defined in [src/error-message.ts:69](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/error-message.ts#L69)*
___
### NotBinary
▪ **NotBinary**: *string* = "String does not represent a binary number."
*Defined in [src/error-message.ts:34](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/error-message.ts#L34)*
___
### NotHex
▪ **NotHex**: *string* = "String does not represent a hexadecimal number."
*Defined in [src/error-message.ts:36](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/error-message.ts#L36)*
___
### NotOctal
▪ **NotOctal**: *string* = "String does not represent an octal number."
*Defined in [src/error-message.ts:35](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/error-message.ts#L35)*
___
### NumberCoercion
▪ **NumberCoercion**: *string* = "Value cannot be coerced to number."
*Defined in [src/error-message.ts:24](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/error-message.ts#L24)*
___
### NumberExpected
▪ **NumberExpected**: *string* = "Number argument expected."
*Defined in [src/error-message.ts:25](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/error-message.ts#L25)*
___
### NumberRange
▪ **NumberRange**: *string* = "Number-only range expected."
*Defined in [src/error-message.ts:41](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/error-message.ts#L41)*
___
### OneValue
▪ **OneValue**: *string* = "Needs at least one value."
*Defined in [src/error-message.ts:48](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/error-message.ts#L48)*
___
### OutOfSheet
▪ **OutOfSheet**: *string* = "Resulting reference is out of the sheet."
*Defined in [src/error-message.ts:29](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/error-message.ts#L29)*
___
### ParseError
▪ **ParseError**: *string* = "Parsing error."
*Defined in [src/error-message.ts:55](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/error-message.ts#L55)*
___
### PatternNotFound
▪ **PatternNotFound**: *string* = "Pattern not found."
*Defined in [src/error-message.ts:47](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/error-message.ts#L47)*
___
### PeriodLong
▪ **PeriodLong**: *string* = "Period number cannot exceed life length."
*Defined in [src/error-message.ts:57](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/error-message.ts#L57)*
___
### PoolDimensions
▪ **PoolDimensions**: *string* = "Range dimensions are not compatible with the window size and the stride."
*Defined in [src/error-message.ts:15](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/error-message.ts#L15)*
___
### RangeManySheets
▪ **RangeManySheets**: *string* = "Range spans more than one sheet."
*Defined in [src/error-message.ts:20](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/error-message.ts#L20)*
___
### ResultTooLong
▪ **ResultTooLong**: *string* = "Result exceeds the maximum allowed length."
*Defined in [src/error-message.ts:77](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/error-message.ts#L77)*
___
### ScalarExpected
▪ **ScalarExpected**: *string* = "Cell range not allowed."
*Defined in [src/error-message.ts:23](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/error-message.ts#L23)*
___
### Selector
▪ **Selector**: *string* = "Selector cannot exceed the number of arguments."
*Defined in [src/error-message.ts:65](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/error-message.ts#L65)*
___
### SheetRef
▪ **SheetRef**: *string* = "Sheet does not exist."
*Defined in [src/error-message.ts:56](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/error-message.ts#L56)*
___
### ShouldBeIorJ
▪ **ShouldBeIorJ**: *string* = "Should be 'i' or 'j'."
*Defined in [src/error-message.ts:75](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/error-message.ts#L75)*
___
### SizeMismatch
▪ **SizeMismatch**: *string* = "Array dimensions mismatched."
*Defined in [src/error-message.ts:76](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/error-message.ts#L76)*
___
### StartEndDate
▪ **StartEndDate**: *string* = "Start date needs to be earlier than end date."
*Defined in [src/error-message.ts:66](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/error-message.ts#L66)*
___
### ThreeValues
▪ **ThreeValues**: *string* = "Range needs to contain at least three elements."
*Defined in [src/error-message.ts:50](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/error-message.ts#L50)*
___
### TwoValues
▪ **TwoValues**: *string* = "Range needs to contain at least two elements."
*Defined in [src/error-message.ts:49](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/error-message.ts#L49)*
___
### ValueBaseLarge
▪ **ValueBaseLarge**: *string* = "Value in base too large."
*Defined in [src/error-message.ts:43](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/error-message.ts#L43)*
___
### ValueBaseLong
▪ **ValueBaseLong**: *string* = "Value in base too long."
*Defined in [src/error-message.ts:45](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/error-message.ts#L45)*
___
### ValueBaseSmall
▪ **ValueBaseSmall**: *string* = "Value in base too small."
*Defined in [src/error-message.ts:44](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/error-message.ts#L44)*
___
### ValueLarge
▪ **ValueLarge**: *string* = "Value too large."
*Defined in [src/error-message.ts:18](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/error-message.ts#L18)*
___
### ValueNotFound
▪ **ValueNotFound**: *string* = "Value not found."
*Defined in [src/error-message.ts:42](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/error-message.ts#L42)*
___
### ValueSmall
▪ **ValueSmall**: *string* = "Value too small."
*Defined in [src/error-message.ts:17](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/error-message.ts#L17)*
___
### WeekendString
▪ **WeekendString**: *string* = "Incorrect weekend bitmask string."
*Defined in [src/error-message.ts:71](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/error-message.ts#L71)*
___
### WrongArgNumber
▪ **WrongArgNumber**: *string* = "Wrong number of arguments."
*Defined in [src/error-message.ts:11](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/error-message.ts#L11)*
___
### WrongDimension
▪ **WrongDimension**: *string* = "Wrong range dimension."
*Defined in [src/error-message.ts:22](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/error-message.ts#L22)*
___
### WrongOrder
▪ **WrongOrder**: *string* = "Wrong order of values."
*Defined in [src/error-message.ts:73](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/error-message.ts#L73)*
___
### WrongType
▪ **WrongType**: *string* = "Wrong type of argument."
*Defined in [src/error-message.ts:30](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/error-message.ts#L30)*
## Methods
### FunctionName
▸ **FunctionName**(`arg`: string): *string*
*Defined in [src/error-message.ts:78](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/error-message.ts#L78)*
**Parameters:**
Name | Type |
------ | ------ |
`arg` | string |
**Returns:** *string*
___
### LicenseKey
▸ **LicenseKey**(`arg`: string): *string*
*Defined in [src/error-message.ts:80](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/error-message.ts#L80)*
**Parameters:**
Name | Type |
------ | ------ |
`arg` | string |
**Returns:** *string*
___
### NamedExpressionName
▸ **NamedExpressionName**(`arg`: string): *string*
*Defined in [src/error-message.ts:79](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/error-message.ts#L79)*
**Parameters:**
Name | Type |
------ | ------ |
`arg` | string |
**Returns:** *string*
---
## Emitter
URL: https://hyperformula.handsontable.com/docs/api/classes/emitter
# Emitter
## Methods
### emit
▸ **emit**‹**Event**›(`event`: Event, ...`args`: Parameters‹Listeners[Event]›): *this*
*Defined in [src/Emitter.ts:328](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Emitter.ts#L328)*
**Type parameters:**
▪ **Event**: *keyof Listeners*
**Parameters:**
Name | Type |
------ | ------ |
`event` | Event |
`...args` | Parameters‹Listeners[Event]› |
**Returns:** *this*
___
### off
▸ **off**(`event`: string, `callback?`: Function): *this*
**Parameters:**
Name | Type |
------ | ------ |
`event` | string |
`callback?` | Function |
**Returns:** *this*
___
### on
▸ **on**(`event`: string, `callback`: Function, `ctx?`: any): *this*
**Parameters:**
Name | Type |
------ | ------ |
`event` | string |
`callback` | Function |
`ctx?` | any |
**Returns:** *this*
___
### once
▸ **once**(`event`: string, `callback`: Function, `ctx?`: any): *this*
**Parameters:**
Name | Type |
------ | ------ |
`event` | string |
`callback` | Function |
`ctx?` | any |
**Returns:** *this*
---
## EvaluationSuspendedError
URL: https://hyperformula.handsontable.com/docs/api/classes/evaluationsuspendederror
# EvaluationSuspendedError
Error thrown when computations become suspended.
To perform any other action wait for the batch to complete or resume the evaluation.
Relates to:
**`see`** [batch](https://hyperformula.handsontable.com/docs/api/classes/hyperformula.md#batch)
**`see`** [suspendEvaluation](https://hyperformula.handsontable.com/docs/api/classes/hyperformula.md#suspendevaluation)
**`see`** [resumeEvaluation](https://hyperformula.handsontable.com/docs/api/classes/hyperformula.md#resumeevaluation)
## Constructors
### constructor
\+ **new EvaluationSuspendedError**(): *[EvaluationSuspendedError](https://hyperformula.handsontable.com/docs/api/classes/evaluationsuspendederror.md)*
*Defined in [src/errors.ts:257](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/errors.ts#L257)*
**Returns:** *[EvaluationSuspendedError](https://hyperformula.handsontable.com/docs/api/classes/evaluationsuspendederror.md)*
## Properties
### message
• **message**: *string*
___
### name
• **name**: *string*
___
### stack
• **stack**? : *undefined | string*
___
### Error
▪ **Error**: *ErrorConstructor*
---
## ExpectedValueOfTypeError
URL: https://hyperformula.handsontable.com/docs/api/classes/expectedvalueoftypeerror
# ExpectedValueOfTypeError
Error thrown when the expected value type differs from the given value type.
It also displays the expected type.
This error might be thrown while setting or updating the [ConfigParams](https://hyperformula.handsontable.com/docs/api/interfaces/configparams.md).
The following methods accept [ConfigParams](https://hyperformula.handsontable.com/docs/api/interfaces/configparams.md) as a parameter:
**`see`** [buildEmpty](https://hyperformula.handsontable.com/docs/api/classes/buildenginefactory.md#static-buildempty)
**`see`** [buildFromArray](https://hyperformula.handsontable.com/docs/api/classes/hyperformula.md#static-buildfromarray)
**`see`** [buildFromSheets](https://hyperformula.handsontable.com/docs/api/classes/buildenginefactory.md#static-buildfromsheets)
**`see`** [updateConfig](https://hyperformula.handsontable.com/docs/api/classes/hyperformula.md#updateconfig)
## Constructors
### constructor
\+ **new ExpectedValueOfTypeError**(`expectedType`: string, `paramName`: string): *[ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/expectedvalueoftypeerror.md)*
*Defined in [src/errors.ts:177](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/errors.ts#L177)*
**Parameters:**
Name | Type |
------ | ------ |
`expectedType` | string |
`paramName` | string |
**Returns:** *[ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/expectedvalueoftypeerror.md)*
## Properties
### message
• **message**: *string*
___
### name
• **name**: *string*
___
### stack
• **stack**? : *undefined | string*
___
### Error
▪ **Error**: *ErrorConstructor*
---
## ExpectedOneOfValuesError
URL: https://hyperformula.handsontable.com/docs/api/classes/expectedoneofvalueserror
# ExpectedOneOfValuesError
Error thrown when the value was expected to be set for a config parameter.
It also displays the expected value.
This error might be thrown while setting or updating the [ConfigParams](https://hyperformula.handsontable.com/docs/api/interfaces/configparams.md).
The following methods accept [ConfigParams](https://hyperformula.handsontable.com/docs/api/interfaces/configparams.md) as a parameter:
**`see`** [buildEmpty](https://hyperformula.handsontable.com/docs/api/classes/buildenginefactory.md#static-buildempty)
**`see`** [buildFromArray](https://hyperformula.handsontable.com/docs/api/classes/hyperformula.md#static-buildfromarray)
**`see`** [buildFromSheets](https://hyperformula.handsontable.com/docs/api/classes/buildenginefactory.md#static-buildfromsheets)
**`see`** [updateConfig](https://hyperformula.handsontable.com/docs/api/classes/hyperformula.md#updateconfig)
## Constructors
### constructor
\+ **new ExpectedOneOfValuesError**(`values`: string, `paramName`: string): *[ExpectedOneOfValuesError](https://hyperformula.handsontable.com/docs/api/classes/expectedoneofvalueserror.md)*
*Defined in [src/errors.ts:242](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/errors.ts#L242)*
**Parameters:**
Name | Type |
------ | ------ |
`values` | string |
`paramName` | string |
**Returns:** *[ExpectedOneOfValuesError](https://hyperformula.handsontable.com/docs/api/classes/expectedoneofvalueserror.md)*
## Properties
### message
• **message**: *string*
___
### name
• **name**: *string*
___
### stack
• **stack**? : *undefined | string*
___
### Error
▪ **Error**: *ErrorConstructor*
---
## Evaluator
URL: https://hyperformula.handsontable.com/docs/api/classes/evaluator
# Evaluator
## Constructors
### constructor
\+ **new Evaluator**(`config`: [Config](https://hyperformula.handsontable.com/docs/api/classes/config.md), `stats`: [Statistics](https://hyperformula.handsontable.com/docs/api/classes/statistics.md), `interpreter`: Interpreter, `lazilyTransformingAstService`: [LazilyTransformingAstService](https://hyperformula.handsontable.com/docs/api/classes/lazilytransformingastservice.md), `dependencyGraph`: DependencyGraph, `columnSearch`: [ColumnSearchStrategy](https://hyperformula.handsontable.com/docs/api/interfaces/columnsearchstrategy.md)): *[Evaluator](https://hyperformula.handsontable.com/docs/api/classes/evaluator.md)*
*Defined in [src/Evaluator.ts:22](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Evaluator.ts#L22)*
**Parameters:**
Name | Type |
------ | ------ |
`config` | [Config](https://hyperformula.handsontable.com/docs/api/classes/config.md) |
`stats` | [Statistics](https://hyperformula.handsontable.com/docs/api/classes/statistics.md) |
`interpreter` | Interpreter |
`lazilyTransformingAstService` | [LazilyTransformingAstService](https://hyperformula.handsontable.com/docs/api/classes/lazilytransformingastservice.md) |
`dependencyGraph` | DependencyGraph |
`columnSearch` | [ColumnSearchStrategy](https://hyperformula.handsontable.com/docs/api/interfaces/columnsearchstrategy.md) |
**Returns:** *[Evaluator](https://hyperformula.handsontable.com/docs/api/classes/evaluator.md)*
## Properties
### interpreter
• **interpreter**: *Interpreter*
*Defined in [src/Evaluator.ts:27](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Evaluator.ts#L27)*
## Methods
### partialRun
▸ **partialRun**(`vertices`: Vertex[]): *[ContentChanges](https://hyperformula.handsontable.com/docs/api/classes/contentchanges.md)*
*Defined in [src/Evaluator.ts:44](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Evaluator.ts#L44)*
**Parameters:**
Name | Type |
------ | ------ |
`vertices` | Vertex[] |
**Returns:** *[ContentChanges](https://hyperformula.handsontable.com/docs/api/classes/contentchanges.md)*
___
### run
▸ **run**(): *void*
*Defined in [src/Evaluator.ts:34](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Evaluator.ts#L34)*
**Returns:** *void*
___
### runAndForget
▸ **runAndForget**(`ast`: Ast, `address`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md), `dependencies`: RelativeDependency[]): *InterpreterValue*
*Defined in [src/Evaluator.ts:56](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Evaluator.ts#L56)*
**Parameters:**
Name | Type |
------ | ------ |
`ast` | Ast |
`address` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) |
`dependencies` | RelativeDependency[] |
**Returns:** *InterpreterValue*
---
## ExportedNamedExpressionChange
URL: https://hyperformula.handsontable.com/docs/api/classes/exportednamedexpressionchange
# ExportedNamedExpressionChange
## Constructors
### constructor
\+ **new ExportedNamedExpressionChange**(`name`: string, `newValue`: [CellValue](https://hyperformula.handsontable.com/docs/api/globals.md#cellvalue) | [CellValue](https://hyperformula.handsontable.com/docs/api/globals.md#cellvalue)[][]): *[ExportedNamedExpressionChange](https://hyperformula.handsontable.com/docs/api/classes/exportednamedexpressionchange.md)*
*Defined in [src/Exporter.ts:47](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Exporter.ts#L47)*
**Parameters:**
Name | Type |
------ | ------ |
`name` | string |
`newValue` | [CellValue](https://hyperformula.handsontable.com/docs/api/globals.md#cellvalue) | [CellValue](https://hyperformula.handsontable.com/docs/api/globals.md#cellvalue)[][] |
**Returns:** *[ExportedNamedExpressionChange](https://hyperformula.handsontable.com/docs/api/classes/exportednamedexpressionchange.md)*
## Properties
### name
• **name**: *string*
*Defined in [src/Exporter.ts:49](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Exporter.ts#L49)*
___
### newValue
• **newValue**: *[CellValue](https://hyperformula.handsontable.com/docs/api/globals.md#cellvalue) | [CellValue](https://hyperformula.handsontable.com/docs/api/globals.md#cellvalue)[][]*
*Defined in [src/Exporter.ts:50](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Exporter.ts#L50)*
---
## ExportedCellChange
URL: https://hyperformula.handsontable.com/docs/api/classes/exportedcellchange
# ExportedCellChange
A list of cells which values changed after the operation, their absolute addresses and new values.
## Constructors
### constructor
\+ **new ExportedCellChange**(`address`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md), `newValue`: [CellValue](https://hyperformula.handsontable.com/docs/api/globals.md#cellvalue)): *[ExportedCellChange](https://hyperformula.handsontable.com/docs/api/classes/exportedcellchange.md)*
*Defined in [src/Exporter.ts:23](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Exporter.ts#L23)*
**Parameters:**
Name | Type |
------ | ------ |
`address` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) |
`newValue` | [CellValue](https://hyperformula.handsontable.com/docs/api/globals.md#cellvalue) |
**Returns:** *[ExportedCellChange](https://hyperformula.handsontable.com/docs/api/classes/exportedcellchange.md)*
## Properties
### address
• **address**: *[SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)*
*Defined in [src/Exporter.ts:25](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Exporter.ts#L25)*
___
### newValue
• **newValue**: *[CellValue](https://hyperformula.handsontable.com/docs/api/globals.md#cellvalue)*
*Defined in [src/Exporter.ts:26](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Exporter.ts#L26)*
## Accessors
### col
• **get col**(): *number*
*Defined in [src/Exporter.ts:30](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Exporter.ts#L30)*
**Returns:** *number*
___
### row
• **get row**(): *number*
*Defined in [src/Exporter.ts:34](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Exporter.ts#L34)*
**Returns:** *number*
___
### sheet
• **get sheet**(): *number*
*Defined in [src/Exporter.ts:38](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Exporter.ts#L38)*
**Returns:** *number*
___
### value
• **get value**(): *[CellValue](https://hyperformula.handsontable.com/docs/api/globals.md#cellvalue)*
*Defined in [src/Exporter.ts:42](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Exporter.ts#L42)*
**Returns:** *[CellValue](https://hyperformula.handsontable.com/docs/api/globals.md#cellvalue)*
---
## Exporter
URL: https://hyperformula.handsontable.com/docs/api/classes/exporter
# Exporter
## Constructors
### constructor
\+ **new Exporter**(`config`: [Config](https://hyperformula.handsontable.com/docs/api/classes/config.md), `namedExpressions`: [NamedExpressions](https://hyperformula.handsontable.com/docs/api/classes/namedexpressions.md), `sheetMapping`: SheetMapping, `lazilyTransformingService`: [LazilyTransformingAstService](https://hyperformula.handsontable.com/docs/api/classes/lazilytransformingastservice.md)): *[Exporter](https://hyperformula.handsontable.com/docs/api/classes/exporter.md)*
*Defined in [src/Exporter.ts:55](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Exporter.ts#L55)*
**Parameters:**
Name | Type |
------ | ------ |
`config` | [Config](https://hyperformula.handsontable.com/docs/api/classes/config.md) |
`namedExpressions` | [NamedExpressions](https://hyperformula.handsontable.com/docs/api/classes/namedexpressions.md) |
`sheetMapping` | SheetMapping |
`lazilyTransformingService` | [LazilyTransformingAstService](https://hyperformula.handsontable.com/docs/api/classes/lazilytransformingastservice.md) |
**Returns:** *[Exporter](https://hyperformula.handsontable.com/docs/api/classes/exporter.md)*
## Methods
### exportChange
▸ **exportChange**(`change`: [CellValueChange](https://hyperformula.handsontable.com/docs/api/interfaces/cellvaluechange.md)): *[ExportedChange](https://hyperformula.handsontable.com/docs/api/globals.md#exportedchange) | [ExportedChange](https://hyperformula.handsontable.com/docs/api/globals.md#exportedchange)[]*
*Defined in [src/Exporter.ts:64](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Exporter.ts#L64)*
**Parameters:**
Name | Type |
------ | ------ |
`change` | [CellValueChange](https://hyperformula.handsontable.com/docs/api/interfaces/cellvaluechange.md) |
**Returns:** *[ExportedChange](https://hyperformula.handsontable.com/docs/api/globals.md#exportedchange) | [ExportedChange](https://hyperformula.handsontable.com/docs/api/globals.md#exportedchange)[]*
___
### exportScalarOrRange
▸ **exportScalarOrRange**(`value`: InterpreterValue): *[CellValue](https://hyperformula.handsontable.com/docs/api/globals.md#cellvalue) | [CellValue](https://hyperformula.handsontable.com/docs/api/globals.md#cellvalue)[][]*
*Defined in [src/Exporter.ts:108](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Exporter.ts#L108)*
**Parameters:**
Name | Type |
------ | ------ |
`value` | InterpreterValue |
**Returns:** *[CellValue](https://hyperformula.handsontable.com/docs/api/globals.md#cellvalue) | [CellValue](https://hyperformula.handsontable.com/docs/api/globals.md#cellvalue)[][]*
___
### exportValue
▸ **exportValue**(`value`: InterpreterValue): *[CellValue](https://hyperformula.handsontable.com/docs/api/globals.md#cellvalue)*
*Defined in [src/Exporter.ts:94](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Exporter.ts#L94)*
**Parameters:**
Name | Type |
------ | ------ |
`value` | InterpreterValue |
**Returns:** *[CellValue](https://hyperformula.handsontable.com/docs/api/globals.md#cellvalue)*
---
## FunctionPluginValidationError
URL: https://hyperformula.handsontable.com/docs/api/classes/functionpluginvalidationerror
# FunctionPluginValidationError
Error thrown when function plugin is invalid.
**`see`** [registerFunction](https://hyperformula.handsontable.com/docs/api/classes/hyperformula.md#static-registerfunction)
**`see`** [registerFunctionPlugin](https://hyperformula.handsontable.com/docs/api/classes/hyperformula.md#static-registerfunctionplugin)
**`see`** [buildFromArray](https://hyperformula.handsontable.com/docs/api/classes/hyperformula.md#static-buildfromarray)
**`see`** [buildFromSheets](https://hyperformula.handsontable.com/docs/api/classes/buildenginefactory.md#static-buildfromsheets)
## Properties
### message
• **message**: *string*
___
### name
• **name**: *string*
___
### stack
• **stack**? : *undefined | string*
___
### Error
▪ **Error**: *ErrorConstructor*
## Methods
### functionMethodNotFound
▸ **functionMethodNotFound**(`functionName`: string, `pluginName`: string): *[FunctionPluginValidationError](https://hyperformula.handsontable.com/docs/api/classes/functionpluginvalidationerror.md)*
*Defined in [src/errors.ts:321](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/errors.ts#L321)*
**Parameters:**
Name | Type |
------ | ------ |
`functionName` | string |
`pluginName` | string |
**Returns:** *[FunctionPluginValidationError](https://hyperformula.handsontable.com/docs/api/classes/functionpluginvalidationerror.md)*
___
### functionNotDeclaredInPlugin
▸ **functionNotDeclaredInPlugin**(`functionId`: string, `pluginName`: string): *[FunctionPluginValidationError](https://hyperformula.handsontable.com/docs/api/classes/functionpluginvalidationerror.md)*
*Defined in [src/errors.ts:317](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/errors.ts#L317)*
**Parameters:**
Name | Type |
------ | ------ |
`functionId` | string |
`pluginName` | string |
**Returns:** *[FunctionPluginValidationError](https://hyperformula.handsontable.com/docs/api/classes/functionpluginvalidationerror.md)*
---
## GraphBuilder
URL: https://hyperformula.handsontable.com/docs/api/classes/graphbuilder
# GraphBuilder
Service building the graph and mappings.
## Constructors
### constructor
\+ **new GraphBuilder**(`dependencyGraph`: DependencyGraph, `columnSearch`: [ColumnSearchStrategy](https://hyperformula.handsontable.com/docs/api/interfaces/columnsearchstrategy.md), `parser`: ParserWithCaching, `cellContentParser`: [CellContentParser](https://hyperformula.handsontable.com/docs/api/classes/cellcontentparser.md), `stats`: [Statistics](https://hyperformula.handsontable.com/docs/api/classes/statistics.md), `arraySizePredictor`: [ArraySizePredictor](https://hyperformula.handsontable.com/docs/api/classes/arraysizepredictor.md)): *[GraphBuilder](https://hyperformula.handsontable.com/docs/api/classes/graphbuilder.md)*
*Defined in [src/GraphBuilder.ts:31](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/GraphBuilder.ts#L31)*
Configures the building service.
**Parameters:**
Name | Type |
------ | ------ |
`dependencyGraph` | DependencyGraph |
`columnSearch` | [ColumnSearchStrategy](https://hyperformula.handsontable.com/docs/api/interfaces/columnsearchstrategy.md) |
`parser` | ParserWithCaching |
`cellContentParser` | [CellContentParser](https://hyperformula.handsontable.com/docs/api/classes/cellcontentparser.md) |
`stats` | [Statistics](https://hyperformula.handsontable.com/docs/api/classes/statistics.md) |
`arraySizePredictor` | [ArraySizePredictor](https://hyperformula.handsontable.com/docs/api/classes/arraysizepredictor.md) |
**Returns:** *[GraphBuilder](https://hyperformula.handsontable.com/docs/api/classes/graphbuilder.md)*
## Methods
### buildGraph
▸ **buildGraph**(`sheets`: [Sheets](https://hyperformula.handsontable.com/docs/api/globals.md#sheets), `stats`: [Statistics](https://hyperformula.handsontable.com/docs/api/classes/statistics.md)): *void*
*Defined in [src/GraphBuilder.ts:50](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/GraphBuilder.ts#L50)*
Builds graph.
**Parameters:**
Name | Type |
------ | ------ |
`sheets` | [Sheets](https://hyperformula.handsontable.com/docs/api/globals.md#sheets) |
`stats` | [Statistics](https://hyperformula.handsontable.com/docs/api/classes/statistics.md) |
**Returns:** *void*
---
## ErroredArray
URL: https://hyperformula.handsontable.com/docs/api/classes/erroredarray
# ErroredArray
## Constructors
### constructor
\+ **new ErroredArray**(`error`: [CellError](https://hyperformula.handsontable.com/docs/api/classes/cellerror.md), `size`: [ArraySize](https://hyperformula.handsontable.com/docs/api/classes/arraysize.md)): *[ErroredArray](https://hyperformula.handsontable.com/docs/api/classes/erroredarray.md)*
*Defined in [src/ArrayValue.ts:156](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ArrayValue.ts#L156)*
**Parameters:**
Name | Type |
------ | ------ |
`error` | [CellError](https://hyperformula.handsontable.com/docs/api/classes/cellerror.md) |
`size` | [ArraySize](https://hyperformula.handsontable.com/docs/api/classes/arraysize.md) |
**Returns:** *[ErroredArray](https://hyperformula.handsontable.com/docs/api/classes/erroredarray.md)*
## Properties
### size
• **size**: *[ArraySize](https://hyperformula.handsontable.com/docs/api/classes/arraysize.md)*
*Defined in [src/ArrayValue.ts:159](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ArrayValue.ts#L159)*
## Methods
### get
▸ **get**(`col`: number, `row`: number): *[CellError](https://hyperformula.handsontable.com/docs/api/classes/cellerror.md)*
*Defined in [src/ArrayValue.ts:164](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ArrayValue.ts#L164)*
**Parameters:**
Name | Type |
------ | ------ |
`col` | number |
`row` | number |
**Returns:** *[CellError](https://hyperformula.handsontable.com/docs/api/classes/cellerror.md)*
___
### height
▸ **height**(): *number*
*Defined in [src/ArrayValue.ts:172](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ArrayValue.ts#L172)*
**Returns:** *number*
___
### simpleRangeValue
▸ **simpleRangeValue**(): *[CellError](https://hyperformula.handsontable.com/docs/api/classes/cellerror.md)*
*Defined in [src/ArrayValue.ts:176](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ArrayValue.ts#L176)*
**Returns:** *[CellError](https://hyperformula.handsontable.com/docs/api/classes/cellerror.md)*
___
### width
▸ **width**(): *number*
*Defined in [src/ArrayValue.ts:168](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ArrayValue.ts#L168)*
**Returns:** *number*
---
## EmptyStatistics
URL: https://hyperformula.handsontable.com/docs/api/classes/emptystatistics
# EmptyStatistics
Do not store stats in the memory. Stats are not needed on daily basis
## Methods
### end
▸ **end**(`_name`: [StatType](https://hyperformula.handsontable.com/docs/api/enums/stattype.md)): *void*
*Defined in [src/statistics/EmptyStatistics.ts:27](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/statistics/EmptyStatistics.ts#L27)*
**`inheritdoc`**
**Parameters:**
Name | Type |
------ | ------ |
`_name` | [StatType](https://hyperformula.handsontable.com/docs/api/enums/stattype.md) |
**Returns:** *void*
___
### incrementCriterionFunctionFullCacheUsed
▸ **incrementCriterionFunctionFullCacheUsed**(): *void*
*Defined in [src/statistics/EmptyStatistics.ts:12](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/statistics/EmptyStatistics.ts#L12)*
**`inheritdoc`**
**Returns:** *void*
___
### incrementCriterionFunctionPartialCacheUsed
▸ **incrementCriterionFunctionPartialCacheUsed**(): *void*
*Defined in [src/statistics/EmptyStatistics.ts:17](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/statistics/EmptyStatistics.ts#L17)*
**`inheritdoc`**
**Returns:** *void*
___
### measure
▸ **measure**‹**T**›(`name`: [StatType](https://hyperformula.handsontable.com/docs/api/enums/stattype.md), `func`: function): *T*
*Defined in [src/statistics/Statistics.ts:80](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/statistics/Statistics.ts#L80)*
Measure given statistic as execution of given function.
**Type parameters:**
▪ **T**
**Parameters:**
▪ **name**: *[StatType](https://hyperformula.handsontable.com/docs/api/enums/stattype.md)*
statistic to track
▪ **func**: *function*
function to call
▸ (): *T*
**Returns:** *T*
result of the function call
___
### reset
▸ **reset**(): *void*
*Defined in [src/statistics/Statistics.ts:33](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/statistics/Statistics.ts#L33)*
Resets statistics
**Returns:** *void*
___
### snapshot
▸ **snapshot**(): *Map‹[StatType](https://hyperformula.handsontable.com/docs/api/enums/stattype.md), number›*
*Defined in [src/statistics/Statistics.ts:90](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/statistics/Statistics.ts#L90)*
Returns the snapshot of current results
**Returns:** *Map‹[StatType](https://hyperformula.handsontable.com/docs/api/enums/stattype.md), number›*
___
### start
▸ **start**(`_name`: [StatType](https://hyperformula.handsontable.com/docs/api/enums/stattype.md)): *void*
*Defined in [src/statistics/EmptyStatistics.ts:22](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/statistics/EmptyStatistics.ts#L22)*
**`inheritdoc`**
**Parameters:**
Name | Type |
------ | ------ |
`_name` | [StatType](https://hyperformula.handsontable.com/docs/api/enums/stattype.md) |
**Returns:** *void*
---
## InternalNamedExpression
URL: https://hyperformula.handsontable.com/docs/api/classes/internalnamedexpression
# InternalNamedExpression
## Constructors
### constructor
\+ **new InternalNamedExpression**(`displayName`: string, `address`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md), `added`: boolean, `options?`: [NamedExpressionOptions](https://hyperformula.handsontable.com/docs/api/globals.md#namedexpressionoptions)): *[InternalNamedExpression](https://hyperformula.handsontable.com/docs/api/classes/internalnamedexpression.md)*
*Defined in [src/NamedExpressions.ts:24](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/NamedExpressions.ts#L24)*
**Parameters:**
Name | Type |
------ | ------ |
`displayName` | string |
`address` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) |
`added` | boolean |
`options?` | [NamedExpressionOptions](https://hyperformula.handsontable.com/docs/api/globals.md#namedexpressionoptions) |
**Returns:** *[InternalNamedExpression](https://hyperformula.handsontable.com/docs/api/classes/internalnamedexpression.md)*
## Properties
### added
• **added**: *boolean*
*Defined in [src/NamedExpressions.ts:28](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/NamedExpressions.ts#L28)*
___
### address
• **address**: *[SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)*
*Defined in [src/NamedExpressions.ts:27](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/NamedExpressions.ts#L27)*
___
### displayName
• **displayName**: *string*
*Defined in [src/NamedExpressions.ts:26](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/NamedExpressions.ts#L26)*
___
### options
• **options**? : *[NamedExpressionOptions](https://hyperformula.handsontable.com/docs/api/globals.md#namedexpressionoptions)*
*Defined in [src/NamedExpressions.ts:29](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/NamedExpressions.ts#L29)*
## Methods
### copy
▸ **copy**(): *[InternalNamedExpression](https://hyperformula.handsontable.com/docs/api/classes/internalnamedexpression.md)*
*Defined in [src/NamedExpressions.ts:37](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/NamedExpressions.ts#L37)*
**Returns:** *[InternalNamedExpression](https://hyperformula.handsontable.com/docs/api/classes/internalnamedexpression.md)*
___
### normalizeExpressionName
▸ **normalizeExpressionName**(): *string*
*Defined in [src/NamedExpressions.ts:33](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/NamedExpressions.ts#L33)*
**Returns:** *string*
---
## InvalidAddressError
URL: https://hyperformula.handsontable.com/docs/api/classes/invalidaddresserror
# InvalidAddressError
Error thrown when the given address is invalid.
## Constructors
### constructor
\+ **new InvalidAddressError**(`address`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)): *[InvalidAddressError](https://hyperformula.handsontable.com/docs/api/classes/invalidaddresserror.md)*
*Defined in [src/errors.ts:56](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/errors.ts#L56)*
**Parameters:**
Name | Type |
------ | ------ |
`address` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) |
**Returns:** *[InvalidAddressError](https://hyperformula.handsontable.com/docs/api/classes/invalidaddresserror.md)*
## Properties
### message
• **message**: *string*
___
### name
• **name**: *string*
___
### stack
• **stack**? : *undefined | string*
___
### Error
▪ **Error**: *ErrorConstructor*
---
## LanguageAlreadyRegisteredError
URL: https://hyperformula.handsontable.com/docs/api/classes/languagealreadyregisterederror
# LanguageAlreadyRegisteredError
Error thrown when trying to register already registered language
**`see`** [registerLanguage](https://hyperformula.handsontable.com/docs/api/classes/hyperformula.md#static-registerlanguage)
## Constructors
### constructor
\+ **new LanguageAlreadyRegisteredError**(): *[LanguageAlreadyRegisteredError](https://hyperformula.handsontable.com/docs/api/classes/languagealreadyregisterederror.md)*
*Defined in [src/errors.ts:302](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/errors.ts#L302)*
**Returns:** *[LanguageAlreadyRegisteredError](https://hyperformula.handsontable.com/docs/api/classes/languagealreadyregisterederror.md)*
## Properties
### message
• **message**: *string*
___
### name
• **name**: *string*
___
### stack
• **stack**? : *undefined | string*
___
### Error
▪ **Error**: *ErrorConstructor*
---
## LanguageNotRegisteredError
URL: https://hyperformula.handsontable.com/docs/api/classes/languagenotregisterederror
# LanguageNotRegisteredError
Error thrown when trying to retrieve not registered language
**`see`** [getLanguage](https://hyperformula.handsontable.com/docs/api/classes/hyperformula.md#static-getlanguage)
**`see`** [unregisterLanguage](https://hyperformula.handsontable.com/docs/api/classes/hyperformula.md#static-unregisterlanguage)
## Constructors
### constructor
\+ **new LanguageNotRegisteredError**(): *[LanguageNotRegisteredError](https://hyperformula.handsontable.com/docs/api/classes/languagenotregisterederror.md)*
*Defined in [src/errors.ts:291](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/errors.ts#L291)*
**Returns:** *[LanguageNotRegisteredError](https://hyperformula.handsontable.com/docs/api/classes/languagenotregisterederror.md)*
## Properties
### message
• **message**: *string*
___
### name
• **name**: *string*
___
### stack
• **stack**? : *undefined | string*
___
### Error
▪ **Error**: *ErrorConstructor*
---
## HyperFormula
URL: https://hyperformula.handsontable.com/docs/api/classes/hyperformula
# HyperFormula
This is a class for creating HyperFormula instance, all the following public methods
are related to this class.
The instance can be created only by calling one of the static methods
`buildFromArray`, `buildFromSheets` or `buildEmpty` and should be disposed of with the
`destroy` method when it's no longer needed to free the resources.
The instance can be seen as a workbook where worksheets can be created and
manipulated. They are organized within a widely known structure of columns and rows
which can be manipulated as well. The smallest possible data unit are the cells, which
may contain simple values or formulas to be calculated.
All CRUD methods are called directly on HyperFormula instance and will trigger
corresponding lifecycle events. The events are marked accordingly, as well as thrown
errors, so they can be correctly handled.
## Static Properties
### buildDate
▪ **buildDate**: *string* = process.env.HT_BUILD_DATE as string
*Defined in [src/HyperFormula.ts:105](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L105)*
Latest build date.
___
### languages
▪ **languages**: *Record‹string, RawTranslationPackage›*
*Defined in [src/HyperFormula.ts:121](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L121)*
When using the UMD build, this property contains all available languages to use with the [registerLanguage](#registerlanguage) method.
For more information, see the [Localizing functions](https://hyperformula.handsontable.com/docs/guide/localizing-functions.md) guide.
___
### releaseDate
▪ **releaseDate**: *string* = process.env.HT_RELEASE_DATE as string
*Defined in [src/HyperFormula.ts:112](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L112)*
A release date.
___
### version
▪ **version**: *string* = process.env.HT_VERSION as string
*Defined in [src/HyperFormula.ts:98](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L98)*
Version of the HyperFormula.
## Static Accessors
### defaultConfig
• **get defaultConfig**(): *[ConfigParams](https://hyperformula.handsontable.com/docs/api/interfaces/configparams.md)*
*Defined in [src/HyperFormula.ts:160](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L160)*
Returns all of HyperFormula's default [configuration options](https://hyperformula.handsontable.com/docs/guide/configuration-options.md).
**`example`**
```js
// returns all default configuration options
const defaultConfig = HyperFormula.defaultConfig;
```
**`category`** Static Accessors
**Returns:** *[ConfigParams](https://hyperformula.handsontable.com/docs/api/interfaces/configparams.md)*
## Factories
### buildEmpty
▸ **buildEmpty**(`configInput`: Partial‹[ConfigParams](https://hyperformula.handsontable.com/docs/api/interfaces/configparams.md)›, `namedExpressions`: [SerializedNamedExpression](https://hyperformula.handsontable.com/docs/api/interfaces/serializednamedexpression.md)[]): *[HyperFormula](https://hyperformula.handsontable.com/docs/api/classes/hyperformula.md)*
*Defined in [src/HyperFormula.ts:353](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L353)*
Builds an empty engine instance.
Can be configured with the optional parameter that represents a [ConfigParams](https://hyperformula.handsontable.com/docs/api/interfaces/configparams.md).
If not specified the engine will be built with the default configuration.
**`example`**
```js
const namedExpressions = [
{
name: 'theUltimateQuestionOfLife',
expression: '=42',
},
];
// build with no initial data and with optional config parameter maxColumns
const hfInstance = HyperFormula.buildEmpty({ maxColumns: 1000 }, namedExpressions);
```
**Parameters:**
Name | Type | Default | Description |
------ | ------ | ------ | ------ |
`configInput` | Partial‹[ConfigParams](https://hyperformula.handsontable.com/docs/api/interfaces/configparams.md)› | {} | engine configuration |
`namedExpressions` | [SerializedNamedExpression](https://hyperformula.handsontable.com/docs/api/interfaces/serializednamedexpression.md)[] | [] | starting named expressions |
**Returns:** *[HyperFormula](https://hyperformula.handsontable.com/docs/api/classes/hyperformula.md)*
___
### buildFromArray
▸ **buildFromArray**(`sheet`: [Sheet](https://hyperformula.handsontable.com/docs/api/globals.md#sheet), `configInput`: Partial‹[ConfigParams](https://hyperformula.handsontable.com/docs/api/interfaces/configparams.md)›, `namedExpressions`: [SerializedNamedExpression](https://hyperformula.handsontable.com/docs/api/interfaces/serializednamedexpression.md)[]): *[HyperFormula](https://hyperformula.handsontable.com/docs/api/classes/hyperformula.md)*
*Defined in [src/HyperFormula.ts:279](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L279)*
Builds the engine for a sheet from a two-dimensional array representation.
The engine is created with a single sheet.
Can be configured with the optional second parameter that represents a [ConfigParams](https://hyperformula.handsontable.com/docs/api/interfaces/configparams.md).
If not specified, the engine will be built with the default configuration.
**`throws`** [SheetSizeLimitExceededError](https://hyperformula.handsontable.com/docs/api/classes/sheetsizelimitexceedederror.md) when sheet size exceeds the limits
**`throws`** [InvalidArgumentsError](https://hyperformula.handsontable.com/docs/api/classes/invalidargumentserror.md) when sheet is not an array of arrays
**`throws`** [FunctionPluginValidationError](https://hyperformula.handsontable.com/docs/api/classes/functionpluginvalidationerror.md) when plugin class definition is not consistent with metadata
**`example`**
```js
// data represented as an array
const sheetData = [
['0', '=SUM(1, 2, 3)', '52'],
['=SUM(A1:C1)', '', '=A1'],
['2', '=SUM(A1:C1)', '=theUltimateQuestionOfLife'],
];
const namedExpressions = [
{
name: 'theUltimateQuestionOfLife',
expression: '=42',
},
];
// method with optional config parameter maxColumns
const hfInstance = HyperFormula.buildFromArray(sheetData, { maxColumns: 1000 }, namedExpressions);
```
**Parameters:**
Name | Type | Default | Description |
------ | ------ | ------ | ------ |
`sheet` | [Sheet](https://hyperformula.handsontable.com/docs/api/globals.md#sheet) | - | two-dimensional array representation of sheet |
`configInput` | Partial‹[ConfigParams](https://hyperformula.handsontable.com/docs/api/interfaces/configparams.md)› | {} | engine configuration |
`namedExpressions` | [SerializedNamedExpression](https://hyperformula.handsontable.com/docs/api/interfaces/serializednamedexpression.md)[] | [] | starting named expressions |
**Returns:** *[HyperFormula](https://hyperformula.handsontable.com/docs/api/classes/hyperformula.md)*
___
### buildFromSheets
▸ **buildFromSheets**(`sheets`: [Sheets](https://hyperformula.handsontable.com/docs/api/globals.md#sheets), `configInput`: Partial‹[ConfigParams](https://hyperformula.handsontable.com/docs/api/interfaces/configparams.md)›, `namedExpressions`: [SerializedNamedExpression](https://hyperformula.handsontable.com/docs/api/interfaces/serializednamedexpression.md)[]): *[HyperFormula](https://hyperformula.handsontable.com/docs/api/classes/hyperformula.md)*
*Defined in [src/HyperFormula.ts:326](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L326)*
Builds the engine from an object containing multiple sheets with names.
The engine is created with one or more sheets.
Can be configured with the optional second parameter that represents a [ConfigParams](https://hyperformula.handsontable.com/docs/api/interfaces/configparams.md).
If not specified the engine will be built with the default configuration.
**`throws`** [SheetSizeLimitExceededError](https://hyperformula.handsontable.com/docs/api/classes/sheetsizelimitexceedederror.md) when sheet size exceeds the limits
**`throws`** [InvalidArgumentsError](https://hyperformula.handsontable.com/docs/api/classes/invalidargumentserror.md) when any sheet is not an array of arrays
**`throws`** [FunctionPluginValidationError](https://hyperformula.handsontable.com/docs/api/classes/functionpluginvalidationerror.md) when plugin class definition is not consistent with metadata
**`example`**
```js
// data represented as an object with sheets: Sheet1 and Sheet2
const sheetData = {
'Sheet1': [
['1', '', '=Sheet2!$A1'],
['', '2', '=SUM(1, 2, 3)'],
['=Sheet2!$A2', '2', ''],
],
'Sheet2': [
['', '4', '=Sheet1!$B1'],
['', '8', '=SUM(9, 3, 3)'],
['=Sheet1!$B1', '2', '=theUltimateQuestionOfLife'],
],
};
const namedExpressions = [
{
name: 'theUltimateQuestionOfLife',
expression: '=42',
},
];
// method with optional config parameter useColumnIndex
const hfInstance = HyperFormula.buildFromSheets(sheetData, { useColumnIndex: true }, namedExpressions);
```
**Parameters:**
Name | Type | Default | Description |
------ | ------ | ------ | ------ |
`sheets` | [Sheets](https://hyperformula.handsontable.com/docs/api/globals.md#sheets) | - | object with sheets definition |
`configInput` | Partial‹[ConfigParams](https://hyperformula.handsontable.com/docs/api/interfaces/configparams.md)› | {} | engine configuration |
`namedExpressions` | [SerializedNamedExpression](https://hyperformula.handsontable.com/docs/api/interfaces/serializednamedexpression.md)[] | [] | starting named expressions |
**Returns:** *[HyperFormula](https://hyperformula.handsontable.com/docs/api/classes/hyperformula.md)*
___
## Instance
### destroy
▸ **destroy**(): *void*
*Defined in [src/HyperFormula.ts:4755](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L4755)*
Destroys instance of HyperFormula.
**`example`**
```js
// destroys the instance
hfInstance.destroy();
```
**Returns:** *void*
___
### getConfig
▸ **getConfig**(): *[ConfigParams](https://hyperformula.handsontable.com/docs/api/interfaces/configparams.md)*
*Defined in [src/HyperFormula.ts:1180](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L1180)*
Returns current configuration of the engine instance.
For more information, see the [Configuration options guide](https://hyperformula.handsontable.com/docs/guide/configuration-options.md).
**`example`**
```js
// should return all config metadata including default and those which were added
const hfConfig = hfInstance.getConfig();
```
**Returns:** *[ConfigParams](https://hyperformula.handsontable.com/docs/api/interfaces/configparams.md)*
___
### rebuildAndRecalculate
▸ **rebuildAndRecalculate**(): *void*
*Defined in [src/HyperFormula.ts:1194](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L1194)*
Rebuilds the HyperFormula instance preserving the current sheets data.
**`example`**
```js
hfInstance.rebuildAndRecalculate();
```
**Returns:** *void*
___
### updateConfig
▸ **updateConfig**(`newParams`: Partial‹[ConfigParams](https://hyperformula.handsontable.com/docs/api/interfaces/configparams.md)›): *void*
*Defined in [src/HyperFormula.ts:1157](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L1157)*
Updates the config with given new metadata. It is an expensive operation, as it might trigger rebuilding the engine and recalculation of all formulas.
For more information, see the [Configuration options guide](https://hyperformula.handsontable.com/docs/guide/configuration-options.md).
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/expectedvalueoftypeerror.md) when some parameters of config are of wrong type (e.g., currencySymbol)
**`throws`** [ConfigValueEmpty](https://hyperformula.handsontable.com/docs/api/classes/configvalueempty.md) when some parameters of config are of invalid value (e.g., currencySymbol)
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['1', '2'],
]);
// add a config param, for example maxColumns,
// you can check the configuration with getConfig method
hfInstance.updateConfig({ maxColumns: 1000 });
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`newParams` | Partial‹[ConfigParams](https://hyperformula.handsontable.com/docs/api/interfaces/configparams.md)› | configuration options to be updated or added |
**Returns:** *void*
___
## Sheets
### addSheet
▸ **addSheet**(`sheetName?`: undefined | string): *string*
*Defined in [src/HyperFormula.ts:2771](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L2771)*
Adds a new sheet to the HyperFormula instance. Returns given or autogenerated name of a new sheet.
Note that this method may trigger dependency graph recalculation.
**`fires`** [sheetAdded](https://hyperformula.handsontable.com/docs/api/interfaces/listeners.md#sheetadded) after the sheet was added
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/expectedvalueoftypeerror.md) if any of its basic type argument is of wrong type
**`throws`** [SheetNameAlreadyTakenError](https://hyperformula.handsontable.com/docs/api/classes/sheetnamealreadytakenerror.md) when sheet with a given name already exists
**`example`**
```js
const hfInstance = HyperFormula.buildFromSheets({
MySheet1: [ ['1'] ],
MySheet2: [ ['10'] ],
});
// should return 'MySheet3'
const nameProvided = hfInstance.addSheet('MySheet3');
// should return autogenerated 'Sheet4'
// because no name was provided and 3 other ones already exist
const generatedName = hfInstance.addSheet();
```
**Parameters:**
Name | Type |
------ | ------ |
`sheetName?` | undefined | string |
**Returns:** *string*
___
### clearSheet
▸ **clearSheet**(`sheetId`: number): *[ExportedChange](https://hyperformula.handsontable.com/docs/api/globals.md#exportedchange)[]*
*Defined in [src/HyperFormula.ts:2919](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L2919)*
Clears the sheet content. Double-checks if the sheet exists.
Returns [an array of cells whose values changed as a result of this operation](https://hyperformula.handsontable.com/docs/guide/basic-operations.md#changes-array).
Note that this method may trigger dependency graph recalculation.
**`fires`** [valuesUpdated](https://hyperformula.handsontable.com/docs/api/interfaces/listeners.md#valuesupdated) if recalculation was triggered by this change
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/expectedvalueoftypeerror.md) if any of its basic type argument is of wrong type
**`throws`** [NoSheetWithIdError](https://hyperformula.handsontable.com/docs/api/classes/nosheetwithiderror.md) when the given sheet ID does not exist
**`example`**
```js
const hfInstance = HyperFormula.buildFromSheets({
MySheet1: [ ['=SUM(MySheet2!A1:A2)'] ],
MySheet2: [ ['10'] ],
});
// should return a list of cells which values changed after the operation,
// their absolute addresses and new values, in this example it will return:
// [{
// address: { sheet: 0, col: 0, row: 0 },
// newValue: 0,
// }]
const changes = hfInstance.clearSheet(0);
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`sheetId` | number | sheet ID. |
**Returns:** *[ExportedChange](https://hyperformula.handsontable.com/docs/api/globals.md#exportedchange)[]*
___
### countSheets
▸ **countSheets**(): *number*
*Defined in [src/HyperFormula.ts:3608](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L3608)*
Returns the number of existing sheets.
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['1', '2'],
]);
// should return the number of sheets which is '1'
const sheetsCount = hfInstance.countSheets();
```
**Returns:** *number*
___
### doesSheetExist
▸ **doesSheetExist**(`sheetName`: string): *boolean*
*Defined in [src/HyperFormula.ts:3327](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L3327)*
Returns `true` whether sheet with a given name exists. The method accepts sheet name to be checked.
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/expectedvalueoftypeerror.md) if any of its basic type argument is of wrong type
**`example`**
```js
const hfInstance = HyperFormula.buildFromSheets({
MySheet1: [ ['1'] ],
MySheet2: [ ['10'] ],
});
// should return 'true' since 'MySheet1' exists
const sheetExist = hfInstance.doesSheetExist('MySheet1');
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`sheetName` | string | name of the sheet, case-insensitive. |
**Returns:** *boolean*
___
### getAllSheetsDimensions
▸ **getAllSheetsDimensions**(): *Record‹string, [SheetDimensions](https://hyperformula.handsontable.com/docs/api/globals.md#sheetdimensions)›*
*Defined in [src/HyperFormula.ts:1033](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L1033)*
Returns a map containing dimensions of all sheets for the engine instance represented as a key-value pairs where keys are sheet IDs and dimensions are returned as numbers, width and height respectively.
**`throws`** [NoSheetWithIdError](https://hyperformula.handsontable.com/docs/api/classes/nosheetwithiderror.md) when the given sheet ID does not exist
**`example`**
```js
const hfInstance = HyperFormula.buildFromSheets({
Sheet1: [
['1', '2', '=Sheet2!$A1'],
],
Sheet2: [
['3'],
['4'],
],
});
// should return the dimensions of all sheets:
// { Sheet1: { width: 3, height: 1 }, Sheet2: { width: 1, height: 2 } }
const allSheetsDimensions = hfInstance.getAllSheetsDimensions();
```
**Returns:** *Record‹string, [SheetDimensions](https://hyperformula.handsontable.com/docs/api/globals.md#sheetdimensions)›*
___
### getAllSheetsFormulas
▸ **getAllSheetsFormulas**(): *Record‹string, (string | undefined)[][]›*
*Defined in [src/HyperFormula.ts:1104](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L1104)*
Returns formulas of all sheets in a form of an object which property keys are strings and values are 2D arrays of strings or possibly `undefined` when the call does not contain a formula.
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['1', '2', '=A1+10'],
]);
// should return only formulas: { Sheet1: [ [ undefined, undefined, '=A1+10' ] ] }
const allSheetsFormulas = hfInstance.getAllSheetsFormulas();
```
**Returns:** *Record‹string, (string | undefined)[][]›*
___
### getAllSheetsSerialized
▸ **getAllSheetsSerialized**(): *Record‹string, [RawCellContent](https://hyperformula.handsontable.com/docs/api/globals.md#rawcellcontent)[][]›*
*Defined in [src/HyperFormula.ts:1129](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L1129)*
Returns formulas or values of all sheets in a form of an object which property keys are strings and values are 2D arrays of [RawCellContent](https://hyperformula.handsontable.com/docs/api/globals.md#rawcellcontent).
Each non-formula cell is serialized to the exact value it was set with, preserving its type.
For example, a cell set with the string `'1'` is serialized as the string `'1'`, while a cell set with the number `1` is serialized as the number `1`.
**`throws`** [EvaluationSuspendedError](https://hyperformula.handsontable.com/docs/api/classes/evaluationsuspendederror.md) when the evaluation is suspended
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['1', 2, '=A1+10'],
]);
// should return all sheets serialized content: { Sheet1: [ [ '1', 2, '=A1+10' ] ] }
// note: the string '1' stays a string and the number 2 stays a number
const allSheetsSerialized = hfInstance.getAllSheetsSerialized();
```
**Returns:** *Record‹string, [RawCellContent](https://hyperformula.handsontable.com/docs/api/globals.md#rawcellcontent)[][]›*
___
### getAllSheetsValues
▸ **getAllSheetsValues**(): *Record‹string, [CellValue](https://hyperformula.handsontable.com/docs/api/globals.md#cellvalue)[][]›*
*Defined in [src/HyperFormula.ts:1085](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L1085)*
Returns values of all sheets in a form of an object which property keys are strings and values are 2D arrays of [CellValue](https://hyperformula.handsontable.com/docs/api/globals.md#cellvalue).
**`throws`** [EvaluationSuspendedError](https://hyperformula.handsontable.com/docs/api/classes/evaluationsuspendederror.md) when the evaluation is suspended
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['1', '=A1+10', '3'],
]);
// should return all sheets values: { Sheet1: [ [ 1, 11, 3 ] ] }
const allSheetsValues = hfInstance.getAllSheetsValues();
```
**Returns:** *Record‹string, [CellValue](https://hyperformula.handsontable.com/docs/api/globals.md#cellvalue)[][]›*
___
### getSheetDimensions
▸ **getSheetDimensions**(`sheetId`: number): *[SheetDimensions](https://hyperformula.handsontable.com/docs/api/globals.md#sheetdimensions)*
*Defined in [src/HyperFormula.ts:1060](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L1060)*
Returns dimensions of a specified sheet.
The sheet dimensions is represented with numbers: width and height.
Note: Due to the memory optimizations, some of the empty bottom rows and rightmost columns are not counted to the dimensions.
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/expectedvalueoftypeerror.md) if any of its basic type argument is of wrong type
**`throws`** [NoSheetWithIdError](https://hyperformula.handsontable.com/docs/api/classes/nosheetwithiderror.md) when the given sheet ID does not exist
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['1', '2', '=Sheet2!$A1'],
]);
// should return provided sheet's dimensions: { width: 3, height: 1 }
const sheetDimensions = hfInstance.getSheetDimensions(0);
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`sheetId` | number | sheet ID number |
**Returns:** *[SheetDimensions](https://hyperformula.handsontable.com/docs/api/globals.md#sheetdimensions)*
___
### getSheetFormulas
▸ **getSheetFormulas**(`sheetId`: number): *(string | undefined)[][]*
*Defined in [src/HyperFormula.ts:970](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L970)*
Returns an array with normalized formula strings from [Sheet](https://hyperformula.handsontable.com/docs/api/globals.md#sheet) or `undefined` for a cells that have no value.
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/expectedvalueoftypeerror.md) if any of its basic type argument is of wrong type
**`throws`** [NoSheetWithIdError](https://hyperformula.handsontable.com/docs/api/classes/nosheetwithiderror.md) when the given sheet ID does not exist
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['0', '=SUM(1, 2, 3)', '=A1'],
['1', '=TEXT(A2, "0.0%")', '=C1'],
['2', '=SUM(A1:C1)', '=C1'],
]);
// should return all formulas of a sheet:
// [
// [undefined, '=SUM(1, 2, 3)', '=A1'],
// [undefined, '=TEXT(A2, "0.0%")', '=C1'],
// [undefined, '=SUM(A1:C1)', '=C1'],
// ];
const sheetFormulas = hfInstance.getSheetFormulas(0);
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`sheetId` | number | sheet ID number |
**Returns:** *(string | undefined)[][]*
___
### getSheetId
▸ **getSheetId**(`sheetName`: string): *number | undefined*
*Defined in [src/HyperFormula.ts:3302](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L3302)*
Returns a unique sheet ID assigned to the sheet with a given name or `undefined` if the sheet does not exist.
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/expectedvalueoftypeerror.md) if any of its basic type argument is of wrong type
**`example`**
```js
const hfInstance = HyperFormula.buildFromSheets({
MySheet1: [ ['1'] ],
MySheet2: [ ['10'] ],
});
// should return '0' because 'MySheet1' is of ID '0'
const sheetID = hfInstance.getSheetId('MySheet1');
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`sheetName` | string | name of the sheet, for which we want to retrieve ID, case-insensitive. |
**Returns:** *number | undefined*
___
### getSheetName
▸ **getSheetName**(`sheetId`: number): *string | undefined*
*Defined in [src/HyperFormula.ts:3256](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L3256)*
Returns a unique sheet name assigned to the sheet of a given ID or `undefined` if the there is no sheet with a given ID.
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/expectedvalueoftypeerror.md) if any of its basic type argument is of wrong type
**`example`**
```js
const hfInstance = HyperFormula.buildFromSheets({
MySheet1: [ ['1'] ],
MySheet2: [ ['10'] ],
});
// should return 'MySheet2' as this sheet is the second one
const sheetName = hfInstance.getSheetName(1);
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`sheetId` | number | ID of the sheet, for which we want to retrieve name |
**Returns:** *string | undefined*
___
### getSheetNames
▸ **getSheetNames**(): *string[]*
*Defined in [src/HyperFormula.ts:3278](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L3278)*
List all sheet names.
Returns an array of sheet names as strings.
**`example`**
```js
const hfInstance = HyperFormula.buildFromSheets({
MySheet1: [ ['1'] ],
MySheet2: [ ['10'] ],
});
// should return all sheets names: ['MySheet1', 'MySheet2']
const sheetNames = hfInstance.getSheetNames();
```
**Returns:** *string[]*
___
### getSheetSerialized
▸ **getSheetSerialized**(`sheetId`: number): *[RawCellContent](https://hyperformula.handsontable.com/docs/api/globals.md#rawcellcontent)[][]*
*Defined in [src/HyperFormula.ts:1003](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L1003)*
Returns an array of arrays of [RawCellContent](https://hyperformula.handsontable.com/docs/api/globals.md#rawcellcontent) with serialized content of cells from [Sheet](https://hyperformula.handsontable.com/docs/api/globals.md#sheet), either a cell formula or an explicit value.
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/expectedvalueoftypeerror.md) if any of its basic type argument is of wrong type
**`throws`** [EvaluationSuspendedError](https://hyperformula.handsontable.com/docs/api/classes/evaluationsuspendederror.md) when the evaluation is suspended
**`throws`** [NoSheetWithIdError](https://hyperformula.handsontable.com/docs/api/classes/nosheetwithiderror.md) when the given sheet ID does not exist
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['0', '=SUM(1, 2, 3)', '=A1'],
['1', '=TEXT(A2, "0.0%")', '=C1'],
['2', '=SUM(A1:C1)', '=C1'],
]);
// should return:
// [
// ['0', '=SUM(1, 2, 3)', '=A1'],
// ['1', '=TEXT(A2, "0.0%")', '=C1'],
// ['2', '=SUM(A1:C1)', '=C1'],
// ];
const serializedContent = hfInstance.getSheetSerialized(0);
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`sheetId` | number | sheet ID number |
**Returns:** *[RawCellContent](https://hyperformula.handsontable.com/docs/api/globals.md#rawcellcontent)[][]*
___
### getSheetValues
▸ **getSheetValues**(`sheetId`: number): *[CellValue](https://hyperformula.handsontable.com/docs/api/globals.md#cellvalue)[][]*
*Defined in [src/HyperFormula.ts:937](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L937)*
Returns an array of arrays of [CellValue](https://hyperformula.handsontable.com/docs/api/globals.md#cellvalue) with values of all cells from [Sheet](https://hyperformula.handsontable.com/docs/api/globals.md#sheet).
Applies rounding and post-processing.
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/expectedvalueoftypeerror.md) if any of its basic type argument is of wrong type
**`throws`** [NoSheetWithIdError](https://hyperformula.handsontable.com/docs/api/classes/nosheetwithiderror.md) when the given sheet ID does not exist
**`throws`** [EvaluationSuspendedError](https://hyperformula.handsontable.com/docs/api/classes/evaluationsuspendederror.md) when the evaluation is suspended
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['0', '=SUM(1, 2, 3)', '=A1'],
['1', '=TEXT(A2, "0.0%")', '=C1'],
['2', '=SUM(A1:C1)', '=C1'],
]);
// should return all values of a sheet: [[0, 6, 0], [1, '1.0%', 0], [2, 6, 0]]
const sheetValues = hfInstance.getSheetValues(0);
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`sheetId` | number | sheet ID number |
**Returns:** *[CellValue](https://hyperformula.handsontable.com/docs/api/globals.md#cellvalue)[][]*
___
### isItPossibleToAddSheet
▸ **isItPossibleToAddSheet**(`sheetName`: string): *boolean*
*Defined in [src/HyperFormula.ts:2732](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L2732)*
Returns information whether it is possible to add a sheet to the engine.
Checks against particular rules to ascertain that addSheet can be called.
If returns `true`, doing [addSheet](https://hyperformula.handsontable.com/docs/api/classes/hyperformula.md#addsheet) operation won't throw any errors, and it is possible to add sheet with provided name.
Returns `false` if the chosen name is already used.
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/expectedvalueoftypeerror.md) if any of its basic type argument is of wrong type
**`example`**
```js
const hfInstance = HyperFormula.buildFromSheets({
MySheet1: [ ['1'] ],
MySheet2: [ ['10'] ],
});
// should return 'false' because 'MySheet2' already exists
const isAddable = hfInstance.isItPossibleToAddSheet('MySheet2');
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`sheetName` | string | sheet name, case-insensitive |
**Returns:** *boolean*
___
### isItPossibleToClearSheet
▸ **isItPossibleToClearSheet**(`sheetId`: number): *boolean*
*Defined in [src/HyperFormula.ts:2877](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L2877)*
Returns information whether it is possible to clear a specified sheet.
If returns `true`, doing [clearSheet](https://hyperformula.handsontable.com/docs/api/classes/hyperformula.md#clearsheet) operation won't throw any errors, provided sheet exists and its content can be cleared.
Returns `false` otherwise
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/expectedvalueoftypeerror.md) if any of its basic type argument is of wrong type
**`example`**
```js
const hfInstance = HyperFormula.buildFromSheets({
MySheet1: [ ['1'] ],
MySheet2: [ ['10'] ],
});
// should return 'true' because 'MySheet2' exists and can be cleared
const isClearable = hfInstance.isItPossibleToClearSheet(1);
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`sheetId` | number | sheet ID. |
**Returns:** *boolean*
___
### isItPossibleToRemoveSheet
▸ **isItPossibleToRemoveSheet**(`sheetId`: number): *boolean*
*Defined in [src/HyperFormula.ts:2803](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L2803)*
Returns information whether it is possible to remove sheet for the engine.
Returns `true` if the provided sheet exists, and therefore it can be removed, doing [removeSheet](https://hyperformula.handsontable.com/docs/api/classes/hyperformula.md#removesheet) operation won't throw any errors.
Returns `false` otherwise
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/expectedvalueoftypeerror.md) if any of its basic type argument is of wrong type
**`example`**
```js
const hfInstance = HyperFormula.buildFromSheets({
MySheet1: [ ['1'] ],
MySheet2: [ ['10'] ],
});
// should return 'true' because sheet with ID 1 exists and is removable
const isRemovable = hfInstance.isItPossibleToRemoveSheet(1);
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`sheetId` | number | sheet ID. |
**Returns:** *boolean*
___
### isItPossibleToRenameSheet
▸ **isItPossibleToRenameSheet**(`sheetId`: number, `newName`: string): *boolean*
*Defined in [src/HyperFormula.ts:3635](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L3635)*
Returns information whether it is possible to rename sheet.
Returns `true` if the sheet with provided id exists and new name is available
Returns `false` if sheet cannot be renamed
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/expectedvalueoftypeerror.md) if any of its basic type argument is of wrong type
**`example`**
```js
const hfInstance = HyperFormula.buildFromSheets({
MySheet1: [ ['1'] ],
MySheet2: [ ['10'] ],
});
// returns true
hfInstance.isItPossibleToRenameSheet(0, 'MySheet0');
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`sheetId` | number | a sheet number |
`newName` | string | a name of the sheet to be given |
**Returns:** *boolean*
___
### isItPossibleToReplaceSheetContent
▸ **isItPossibleToReplaceSheetContent**(`sheetId`: number, `values`: [RawCellContent](https://hyperformula.handsontable.com/docs/api/globals.md#rawcellcontent)[][]): *boolean*
*Defined in [src/HyperFormula.ts:2949](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L2949)*
Returns information whether it is possible to replace the sheet content.
If returns `true`, doing [setSheetContent](https://hyperformula.handsontable.com/docs/api/classes/hyperformula.md#setsheetcontent) operation won't throw any errors, the provided sheet exists and then its content can be replaced.
Returns `false` otherwise
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/expectedvalueoftypeerror.md) if any of its basic type argument is of wrong type
**`example`**
```js
const hfInstance = HyperFormula.buildFromSheets({
MySheet1: [ ['1'] ],
MySheet2: [ ['10'] ],
});
// should return 'true' because sheet of ID 0 exists
// and the provided content can be placed in this sheet
const isReplaceable = hfInstance.isItPossibleToReplaceSheetContent(0, [['50'], ['60']]);
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`sheetId` | number | sheet ID. |
`values` | [RawCellContent](https://hyperformula.handsontable.com/docs/api/globals.md#rawcellcontent)[][] | array of new values |
**Returns:** *boolean*
___
### removeSheet
▸ **removeSheet**(`sheetId`: number): *[ExportedChange](https://hyperformula.handsontable.com/docs/api/globals.md#exportedchange)[]*
*Defined in [src/HyperFormula.ts:2846](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L2846)*
Removes a sheet
Returns [an array of cells whose values changed as a result of this operation](https://hyperformula.handsontable.com/docs/guide/basic-operations.md#changes-array).
Note that this method may trigger dependency graph recalculation.
**`fires`** [sheetRemoved](https://hyperformula.handsontable.com/docs/api/interfaces/listeners.md#sheetremoved) after the sheet was removed
**`fires`** [valuesUpdated](https://hyperformula.handsontable.com/docs/api/interfaces/listeners.md#valuesupdated) if recalculation was triggered by this change
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/expectedvalueoftypeerror.md) if any of its basic type argument is of wrong type
**`throws`** [NoSheetWithIdError](https://hyperformula.handsontable.com/docs/api/classes/nosheetwithiderror.md) when the given sheet ID does not exist
**`example`**
```js
const hfInstance = HyperFormula.buildFromSheets({
MySheet1: [ ['=SUM(MySheet2!A1:A2)'] ],
MySheet2: [ ['10'] ],
});
// should return a list of cells which values changed after the operation,
// their absolute addresses and new values, in this example it will return:
// [{
// address: { sheet: 0, col: 0, row: 0 },
// newValue: { error: [CellError], value: '#REF!' },
// }]
const changes = hfInstance.removeSheet(1);
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`sheetId` | number | sheet ID. |
**Returns:** *[ExportedChange](https://hyperformula.handsontable.com/docs/api/globals.md#exportedchange)[]*
___
### renameSheet
▸ **renameSheet**(`sheetId`: number, `newName`: string): *void*
*Defined in [src/HyperFormula.ts:3673](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L3673)*
Renames a specified sheet.
Note that this method may trigger dependency graph recalculation.
**`fires`** [sheetRenamed](https://hyperformula.handsontable.com/docs/api/interfaces/listeners.md#sheetrenamed) after the sheet was renamed
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/expectedvalueoftypeerror.md) if any of its basic type argument is of wrong type
**`throws`** [NoSheetWithIdError](https://hyperformula.handsontable.com/docs/api/classes/nosheetwithiderror.md) when the given sheet ID does not exist
**`throws`** [SheetNameAlreadyTakenError](https://hyperformula.handsontable.com/docs/api/classes/sheetnamealreadytakenerror.md) when the provided sheet name already exists
**`example`**
```js
const hfInstance = HyperFormula.buildFromSheets({
MySheet1: [ ['1'] ],
MySheet2: [ ['10'] ],
});
// renames the sheet 'MySheet1'
hfInstance.renameSheet(0, 'MySheet0');
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`sheetId` | number | a sheet ID |
`newName` | string | a name of the sheet to be given, if is the same as the old one the method does nothing |
**Returns:** *void*
___
### setSheetContent
▸ **setSheetContent**(`sheetId`: number, `values`: [RawCellContent](https://hyperformula.handsontable.com/docs/api/globals.md#rawcellcontent)[][]): *[ExportedChange](https://hyperformula.handsontable.com/docs/api/globals.md#exportedchange)[]*
*Defined in [src/HyperFormula.ts:2986](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L2986)*
Replaces the sheet content with new values.
Returns [an array of cells whose values changed as a result of this operation](https://hyperformula.handsontable.com/docs/guide/basic-operations.md#changes-array).
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/expectedvalueoftypeerror.md) if any of its basic type argument is of wrong type
**`throws`** [NoSheetWithIdError](https://hyperformula.handsontable.com/docs/api/classes/nosheetwithiderror.md) when the given sheet ID does not exist
**`throws`** [InvalidArgumentsError](https://hyperformula.handsontable.com/docs/api/classes/invalidargumentserror.md) when values argument is not an array of arrays
**`example`**
```js
const hfInstance = HyperFormula.buildFromSheets({
MySheet1: [ ['1'] ],
MySheet2: [ ['10'] ],
});
// should return a list of cells which values changed after the operation,
// their absolute addresses and new values
const changes = hfInstance.setSheetContent(0, [['50'], ['60']]);
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`sheetId` | number | sheet ID. |
`values` | [RawCellContent](https://hyperformula.handsontable.com/docs/api/globals.md#rawcellcontent)[][] | array of new values |
**Returns:** *[ExportedChange](https://hyperformula.handsontable.com/docs/api/globals.md#exportedchange)[]*
___
## Ranges
### getFillRangeData
▸ **getFillRangeData**(`source`: [SimpleCellRange](https://hyperformula.handsontable.com/docs/api/interfaces/simplecellrange.md), `target`: [SimpleCellRange](https://hyperformula.handsontable.com/docs/api/interfaces/simplecellrange.md), `offsetsFromTarget`: boolean): *[RawCellContent](https://hyperformula.handsontable.com/docs/api/globals.md#rawcellcontent)[][]*
*Defined in [src/HyperFormula.ts:2688](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L2688)*
Returns values to fill target range using source range, with properly extending the range using wrap-around heuristic.
**`throws`** [EvaluationSuspendedError](https://hyperformula.handsontable.com/docs/api/classes/evaluationsuspendederror.md) when the evaluation is suspended
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/expectedvalueoftypeerror.md) if source or target are of wrong type
**`throws`** [SheetsNotEqual](https://hyperformula.handsontable.com/docs/api/classes/sheetsnotequal.md) if range provided has distinct sheet numbers for start and end
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([[1, '=A1'], ['=$A$1', '2']]);
// should return [['2', '=$A$1', '2'], ['=A3', 1, '=C3'], ['2', '=$A$1', '2']]
hfInstance.getFillRangeData( {start: {sheet: 0, row: 0, col: 0}, end: {sheet: 0, row: 1, col: 1}},
{start: {sheet: 0, row: 1, col: 1}, end: {sheet: 0, row: 3, col: 3}});
```
**Parameters:**
Name | Type | Default | Description |
------ | ------ | ------ | ------ |
`source` | [SimpleCellRange](https://hyperformula.handsontable.com/docs/api/interfaces/simplecellrange.md) | - | of data |
`target` | [SimpleCellRange](https://hyperformula.handsontable.com/docs/api/interfaces/simplecellrange.md) | - | range where data is intended to be put |
`offsetsFromTarget` | boolean | false | if true, offsets are computed from target corner, otherwise from source corner |
**Returns:** *[RawCellContent](https://hyperformula.handsontable.com/docs/api/globals.md#rawcellcontent)[][]*
___
### getRangeFormulas
▸ **getRangeFormulas**(`source`: [SimpleCellRange](https://hyperformula.handsontable.com/docs/api/interfaces/simplecellrange.md)): *(string | undefined)[][]*
*Defined in [src/HyperFormula.ts:2615](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L2615)*
Returns cell formulas in given range.
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/expectedvalueoftypeerror.md) if source is of wrong type
**`throws`** [SheetsNotEqual](https://hyperformula.handsontable.com/docs/api/classes/sheetsnotequal.md) if range provided has distinct sheet numbers for start and end
**`throws`** [NoSheetWithIdError](https://hyperformula.handsontable.com/docs/api/classes/nosheetwithiderror.md) when the given sheet ID does not exist
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['=SUM(1, 2)', '2', '10'],
['5', '6', '7'],
['40', '30', '20'],
]);
// returns cell formulas of a given range only:
// [ [ '=SUM(1, 2)', undefined ], [ undefined, undefined ] ]
const rangeFormulas = hfInstance.getRangeFormulas({ start: { sheet: 0, col: 0, row: 0 }, end: { sheet: 0, col: 1, row: 1 } });
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`source` | [SimpleCellRange](https://hyperformula.handsontable.com/docs/api/interfaces/simplecellrange.md) | rectangular range |
**Returns:** *(string | undefined)[][]*
___
### getRangeSerialized
▸ **getRangeSerialized**(`source`: [SimpleCellRange](https://hyperformula.handsontable.com/docs/api/interfaces/simplecellrange.md)): *[RawCellContent](https://hyperformula.handsontable.com/docs/api/globals.md#rawcellcontent)[][]*
*Defined in [src/HyperFormula.ts:2654](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L2654)*
Returns serialized cells in given range.
Each non-formula cell is serialized to the exact value it was set with, preserving its type
(e.g., a cell set with the string `'2'` is serialized as the string `'2'`, while a cell set with the number `2` is serialized as the number `2`).
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/expectedvalueoftypeerror.md) if source is of wrong type
**`throws`** [SheetsNotEqual](https://hyperformula.handsontable.com/docs/api/classes/sheetsnotequal.md) if range provided has distinct sheet numbers for start and end
**`throws`** [NoSheetWithIdError](https://hyperformula.handsontable.com/docs/api/classes/nosheetwithiderror.md) when the given sheet ID does not exist
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['=SUM(1, 2)', 2, 10],
[5, 6, 7],
[40, 30, 20],
]);
// should return serialized cell content for the given range:
// [ [ '=SUM(1, 2)', 2 ], [ 5, 6 ] ]
const rangeSerialized = hfInstance.getRangeSerialized({ start: { sheet: 0, col: 0, row: 0 }, end: { sheet: 0, col: 1, row: 1 } });
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`source` | [SimpleCellRange](https://hyperformula.handsontable.com/docs/api/interfaces/simplecellrange.md) | rectangular range |
**Returns:** *[RawCellContent](https://hyperformula.handsontable.com/docs/api/globals.md#rawcellcontent)[][]*
___
### getRangeValues
▸ **getRangeValues**(`source`: [SimpleCellRange](https://hyperformula.handsontable.com/docs/api/interfaces/simplecellrange.md)): *[CellValue](https://hyperformula.handsontable.com/docs/api/globals.md#cellvalue)[][]*
*Defined in [src/HyperFormula.ts:2579](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L2579)*
Returns the cell content of a given range in a [CellValue](https://hyperformula.handsontable.com/docs/api/globals.md#cellvalue)[][] format.
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/expectedvalueoftypeerror.md) if source is of wrong type
**`throws`** [SheetsNotEqual](https://hyperformula.handsontable.com/docs/api/classes/sheetsnotequal.md) if range provided has distinct sheet numbers for start and end
**`throws`** [NoSheetWithIdError](https://hyperformula.handsontable.com/docs/api/classes/nosheetwithiderror.md) when the given sheet ID does not exist
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['=SUM(1, 2)', '2', '10'],
['5', '6', '7'],
['40', '30', '20'],
]);
// returns calculated cells content: [ [ 3, 2 ], [ 5, 6 ] ]
const rangeValues = hfInstance.getRangeValues({ start: { sheet: 0, col: 0, row: 0 }, end: { sheet: 0, col: 1, row: 1 } });
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`source` | [SimpleCellRange](https://hyperformula.handsontable.com/docs/api/interfaces/simplecellrange.md) | rectangular range |
**Returns:** *[CellValue](https://hyperformula.handsontable.com/docs/api/globals.md#cellvalue)[][]*
___
## Rows
### addRows
▸ **addRows**(`sheetId`: number, ...`indexes`: [ColumnRowIndex](https://hyperformula.handsontable.com/docs/api/globals.md#columnrowindex)[]): *[ExportedChange](https://hyperformula.handsontable.com/docs/api/globals.md#exportedchange)[]*
*Defined in [src/HyperFormula.ts:1826](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L1826)*
Adds multiple rows into a specified position in a given sheet.
Does nothing if rows are outside effective sheet size.
Returns [an array of cells whose values changed as a result of this operation](https://hyperformula.handsontable.com/docs/guide/basic-operations.md#changes-array).
Note that this method may trigger dependency graph recalculation.
**`fires`** [valuesUpdated](https://hyperformula.handsontable.com/docs/api/interfaces/listeners.md#valuesupdated) if recalculation was triggered by this change
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/expectedvalueoftypeerror.md) if any of its basic type argument is of wrong type
**`throws`** [NoSheetWithIdError](https://hyperformula.handsontable.com/docs/api/classes/nosheetwithiderror.md) when the given sheet ID does not exist
**`throws`** [SheetSizeLimitExceededError](https://hyperformula.handsontable.com/docs/api/classes/sheetsizelimitexceedederror.md) when performing this operation would result in sheet size limits exceeding
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['1'],
['2'],
]);
// should return a list of cells which values changed after the operation,
// their absolute addresses and new values
const changes = hfInstance.addRows(0, [0, 1]);
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`sheetId` | number | sheet ID in which rows will be added |
`...indexes` | [ColumnRowIndex](https://hyperformula.handsontable.com/docs/api/globals.md#columnrowindex)[] | non-contiguous indexes with format [row, amount], where row is a row number above which the rows will be added |
**Returns:** *[ExportedChange](https://hyperformula.handsontable.com/docs/api/globals.md#exportedchange)[]*
___
### isItPossibleToAddRows
▸ **isItPossibleToAddRows**(`sheetId`: number, ...`indexes`: [ColumnRowIndex](https://hyperformula.handsontable.com/docs/api/globals.md#columnrowindex)[]): *boolean*
*Defined in [src/HyperFormula.ts:1784](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L1784)*
Returns information whether it is possible to add rows into a specified position in a given sheet.
Checks against particular rules to ascertain that addRows can be called.
If returns `true`, doing [addRows](https://hyperformula.handsontable.com/docs/api/classes/hyperformula.md#addrows) operation won't throw any errors.
Returns `false` if adding rows would exceed the sheet size limit or given arguments are invalid.
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/expectedvalueoftypeerror.md) if any of its basic type argument is of wrong type
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['1', '2', '3'],
]);
// should return 'true' for this example,
// it is possible to add one row in the second row of sheet 0
const isAddable = hfInstance.isItPossibleToAddRows(0, [1, 1]);
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`sheetId` | number | sheet ID in which rows will be added |
`...indexes` | [ColumnRowIndex](https://hyperformula.handsontable.com/docs/api/globals.md#columnrowindex)[] | non-contiguous indexes with format [row, amount], where row is a row number above which the rows will be added |
**Returns:** *boolean*
___
### isItPossibleToMoveRows
▸ **isItPossibleToMoveRows**(`sheetId`: number, `startRow`: number, `numberOfRows`: number, `targetRow`: number): *boolean*
*Defined in [src/HyperFormula.ts:2181](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L2181)*
Returns information whether it is possible to move a particular number of rows to a specified position in a given sheet.
Checks against particular rules to ascertain that moveRows can be called.
If returns `true`, doing [moveRows](https://hyperformula.handsontable.com/docs/api/classes/hyperformula.md#moverows) operation won't throw any errors.
Returns `false` if the operation might be disrupted and causes side effects by the fact that there is an array inside the selected rows, the target location includes an array or the provided address is invalid.
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/expectedvalueoftypeerror.md) if any of its basic type argument is of wrong type
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['1'],
['2'],
]);
// should return 'true' for this example
// it is possible to move one row from row 0 into row 2
const isMovable = hfInstance.isItPossibleToMoveRows(0, 0, 1, 2);
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`sheetId` | number | a sheet number in which the operation will be performed |
`startRow` | number | number of the first row to move |
`numberOfRows` | number | number of rows to move |
`targetRow` | number | row number before which rows will be moved |
**Returns:** *boolean*
___
### isItPossibleToRemoveRows
▸ **isItPossibleToRemoveRows**(`sheetId`: number, ...`indexes`: [ColumnRowIndex](https://hyperformula.handsontable.com/docs/api/globals.md#columnrowindex)[]): *boolean*
*Defined in [src/HyperFormula.ts:1857](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L1857)*
Returns information whether it is possible to remove rows from a specified position in a given sheet.
Checks against particular rules to ascertain that removeRows can be called.
If returns `true`, doing [removeRows](https://hyperformula.handsontable.com/docs/api/classes/hyperformula.md#removerows) operation won't throw any errors.
Returns `false` if given arguments are invalid.
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/expectedvalueoftypeerror.md) if any of its basic type argument is of wrong type
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['1'],
['2'],
]);
// should return 'true' for this example
// it is possible to remove one row from row 1 of sheet 0
const isRemovable = hfInstance.isItPossibleToRemoveRows(0, [1, 1]);
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`sheetId` | number | sheet ID from which rows will be removed |
`...indexes` | [ColumnRowIndex](https://hyperformula.handsontable.com/docs/api/globals.md#columnrowindex)[] | non-contiguous indexes with format: [row, amount] |
**Returns:** *boolean*
___
### isItPossibleToSetRowOrder
▸ **isItPossibleToSetRowOrder**(`sheetId`: number, `newRowOrder`: number[]): *boolean*
*Defined in [src/HyperFormula.ts:1579](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L1579)*
Checks if it is possible to reorder rows of a sheet according to a permutation.
Parameter `newRowOrder` should have the form `[ newPositionForRow0, newPositionForRow1, newPositionForRow2, ... ]`,
i.e. the value at index `i` is the new position for the row that is currently at index `i`.
See [setRowOrder](https://hyperformula.handsontable.com/docs/api/classes/hyperformula.md#setroworder) for details.
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/expectedvalueoftypeerror.md) if any of its basic type argument is of wrong type
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['A'],
['B'],
['C']
]);
// returns true
hfInstance.isItPossibleToSetRowOrder(0, [1, 2, 0]);
// returns false (array length must match the number of rows)
hfInstance.isItPossibleToSetRowOrder(0, [2]);
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`sheetId` | number | ID of a sheet to operate on |
`newRowOrder` | number[] | permutation of rows |
**Returns:** *boolean*
___
### isItPossibleToSwapRowIndexes
▸ **isItPossibleToSwapRowIndexes**(`sheetId`: number, `rowMapping`: [number, number][]): *boolean*
*Defined in [src/HyperFormula.ts:1492](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L1492)*
Checks if it is possible to reorder rows of a sheet according to a source-target mapping.
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/expectedvalueoftypeerror.md) if any of its basic type argument is of wrong type
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
[1],
[2],
[4, 5],
]);
// returns true
const isSwappable = hfInstance.isItPossibleToSwapRowIndexes(0, [[0, 2], [2, 0]]);
// returns false
const isSwappable = hfInstance.isItPossibleToSwapRowIndexes(0, [[0, 1]]);
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`sheetId` | number | ID of a sheet to operate on |
`rowMapping` | [number, number][] | array mapping original positions to final positions of rows |
**Returns:** *boolean*
___
### moveRows
▸ **moveRows**(`sheetId`: number, `startRow`: number, `numberOfRows`: number, `targetRow`: number): *[ExportedChange](https://hyperformula.handsontable.com/docs/api/globals.md#exportedchange)[]*
*Defined in [src/HyperFormula.ts:2228](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L2228)*
Moves a particular number of rows to a specified position in a given sheet.
Returns [an array of cells whose values changed as a result of this operation](https://hyperformula.handsontable.com/docs/guide/basic-operations.md#changes-array).
Note that this method may trigger dependency graph recalculation.
**`fires`** [valuesUpdated](https://hyperformula.handsontable.com/docs/api/interfaces/listeners.md#valuesupdated) if recalculation was triggered by this change
**`throws`** [NoSheetWithIdError](https://hyperformula.handsontable.com/docs/api/classes/nosheetwithiderror.md) when the given sheet ID does not exist
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/expectedvalueoftypeerror.md) if any of its basic type argument is of wrong type
**`throws`** [InvalidArgumentsError](https://hyperformula.handsontable.com/docs/api/classes/invalidargumentserror.md) when the given arguments are invalid
**`throws`** [SourceLocationHasArrayError](https://hyperformula.handsontable.com/docs/api/classes/sourcelocationhasarrayerror.md) when the source location has array inside - array cannot be moved
**`throws`** [TargetLocationHasArrayError](https://hyperformula.handsontable.com/docs/api/classes/targetlocationhasarrayerror.md) when the target location has array inside - cells cannot be replaced by the array
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['1'],
['2'],
]);
// should return a list of cells which values changed after the operation,
// their absolute addresses and new values
const changes = hfInstance.moveRows(0, 0, 1, 2);
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`sheetId` | number | a sheet number in which the operation will be performed |
`startRow` | number | number of the first row to move |
`numberOfRows` | number | number of rows to move |
`targetRow` | number | row number before which rows will be moved |
**Returns:** *[ExportedChange](https://hyperformula.handsontable.com/docs/api/globals.md#exportedchange)[]*
___
### removeRows
▸ **removeRows**(`sheetId`: number, ...`indexes`: [ColumnRowIndex](https://hyperformula.handsontable.com/docs/api/globals.md#columnrowindex)[]): *[ExportedChange](https://hyperformula.handsontable.com/docs/api/globals.md#exportedchange)[]*
*Defined in [src/HyperFormula.ts:1898](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L1898)*
Removes multiple rows from a specified position in a given sheet.
Does nothing if rows are outside the effective sheet size.
Returns [an array of cells whose values changed as a result of this operation](https://hyperformula.handsontable.com/docs/guide/basic-operations.md#changes-array).
Note that this method may trigger dependency graph recalculation.
**`fires`** [valuesUpdated](https://hyperformula.handsontable.com/docs/api/interfaces/listeners.md#valuesupdated) if recalculation was triggered by this change
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/expectedvalueoftypeerror.md) if any of its basic type argument is of wrong type
**`throws`** [InvalidArgumentsError](https://hyperformula.handsontable.com/docs/api/classes/invalidargumentserror.md) when the given arguments are invalid
**`throws`** [NoSheetWithIdError](https://hyperformula.handsontable.com/docs/api/classes/nosheetwithiderror.md) when the given sheet ID does not exist
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['1'],
['2'],
]);
// should return: [{ sheet: 0, col: 1, row: 2, value: null }] for this example
const changes = hfInstance.removeRows(0, [1, 1]);
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`sheetId` | number | sheet ID from which rows will be removed |
`...indexes` | [ColumnRowIndex](https://hyperformula.handsontable.com/docs/api/globals.md#columnrowindex)[] | non-contiguous indexes with format: [row, amount] |
**Returns:** *[ExportedChange](https://hyperformula.handsontable.com/docs/api/globals.md#exportedchange)[]*
___
### setRowOrder
▸ **setRowOrder**(`sheetId`: number, `newRowOrder`: number[]): *[ExportedChange](https://hyperformula.handsontable.com/docs/api/globals.md#exportedchange)[]*
*Defined in [src/HyperFormula.ts:1544](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L1544)*
Reorders rows of a sheet according to a permutation of 0-based indexes.
Parameter `newRowOrder` should have the form `[ newPositionForRow0, newPositionForRow1, newPositionForRow2, ... ]`.
In other words, the value at index `i` is the new position for the row that is currently at index `i`.
Note that this is the opposite of `[ previousPositionForRow0, previousPositionForRow1, ... ]`.
This method might be used to [sort the rows of a sheet](https://hyperformula.handsontable.com/docs/guide/sorting-data.md).
Returns [an array of cells whose values changed as a result of this operation](https://hyperformula.handsontable.com/docs/guide/basic-operations.md#changes-array).
Note: This method may trigger dependency graph recalculation.
**`fires`** [valuesUpdated](https://hyperformula.handsontable.com/docs/api/interfaces/listeners.md#valuesupdated) if recalculation was triggered by this change
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/expectedvalueoftypeerror.md) if any of its basic type argument is of wrong type
**`throws`** [NoSheetWithIdError](https://hyperformula.handsontable.com/docs/api/classes/nosheetwithiderror.md) when the given sheet ID does not exist
**`throws`** [InvalidArgumentsError](https://hyperformula.handsontable.com/docs/api/classes/invalidargumentserror.md) when rowMapping does not define correct row permutation for some subset of rows of the given sheet
**`throws`** [SourceLocationHasArrayError](https://hyperformula.handsontable.com/docs/api/classes/sourcelocationhasarrayerror.md) when the selected position has array inside
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['A'],
['B'],
['C']
]);
// Move 'A' to index 1, 'B' to index 2, and 'C' to index 0.
const newRowOrder = [1, 2, 0]; // [ newPosForA, newPosForB, newPosForC ]
const changes = hfInstance.setRowOrder(0, newRowOrder);
// Sheet after this operation: [['C'], ['A'], ['B']]
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`sheetId` | number | ID of a sheet to operate on |
`newRowOrder` | number[] | permutation of rows; array length must match the number of rows returned by [getSheetDimensions()](#getsheetdimensions) |
**Returns:** *[ExportedChange](https://hyperformula.handsontable.com/docs/api/globals.md#exportedchange)[]*
___
### swapRowIndexes
▸ **swapRowIndexes**(`sheetId`: number, `rowMapping`: [number, number][]): *[ExportedChange](https://hyperformula.handsontable.com/docs/api/globals.md#exportedchange)[]*
*Defined in [src/HyperFormula.ts:1461](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L1461)*
Reorders rows of a sheet according to a source-target mapping.
Returns [an array of cells whose values changed as a result of this operation](https://hyperformula.handsontable.com/docs/guide/basic-operations.md#changes-array).
Note that this method may trigger dependency graph recalculation.
**`fires`** [valuesUpdated](https://hyperformula.handsontable.com/docs/api/interfaces/listeners.md#valuesupdated) if recalculation was triggered by this change
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/expectedvalueoftypeerror.md) if any of its basic type argument is of wrong type
**`throws`** [NoSheetWithIdError](https://hyperformula.handsontable.com/docs/api/classes/nosheetwithiderror.md) when the given sheet ID does not exist
**`throws`** [InvalidArgumentsError](https://hyperformula.handsontable.com/docs/api/classes/invalidargumentserror.md) when rowMapping does not define correct row permutation for some subset of rows of the given sheet
**`throws`** [SourceLocationHasArrayError](https://hyperformula.handsontable.com/docs/api/classes/sourcelocationhasarrayerror.md) when the selected position has array inside
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
[1],
[2],
[4, 5],
]);
// should set swap rows 0 and 2 in place, returns:
// [{
// address: { sheet: 0, col: 0, row: 2 },
// newValue: 1,
// },
// {
// address: { sheet: 0, col: 1, row: 2 },
// newValue: null,
// },
// {
// address: { sheet: 0, col: 0, row: 0 },
// newValue: 4,
// },
// {
// address: { sheet: 0, col: 1, row: 0 },
// newValue: 5,
// }]
const changes = hfInstance.swapRowIndexes(0, [[0, 2], [2, 0]]);
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`sheetId` | number | ID of a sheet to operate on |
`rowMapping` | [number, number][] | array mapping original positions to final positions of rows |
**Returns:** *[ExportedChange](https://hyperformula.handsontable.com/docs/api/globals.md#exportedchange)[]*
___
## Columns
### addColumns
▸ **addColumns**(`sheetId`: number, ...`indexes`: [ColumnRowIndex](https://hyperformula.handsontable.com/docs/api/globals.md#columnrowindex)[]): *[ExportedChange](https://hyperformula.handsontable.com/docs/api/globals.md#exportedchange)[]*
*Defined in [src/HyperFormula.ts:1974](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L1974)*
Adds multiple columns into a specified position in a given sheet.
Does nothing if the columns are outside the effective sheet size.
Returns [an array of cells whose values changed as a result of this operation](https://hyperformula.handsontable.com/docs/guide/basic-operations.md#changes-array).
Note that this method may trigger dependency graph recalculation.
**`fires`** [valuesUpdated](https://hyperformula.handsontable.com/docs/api/interfaces/listeners.md#valuesupdated) if recalculation was triggered by this change
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/expectedvalueoftypeerror.md) if any of its basic type argument is of wrong type
**`throws`** [NoSheetWithIdError](https://hyperformula.handsontable.com/docs/api/classes/nosheetwithiderror.md) when the given sheet ID does not exist
**`throws`** [InvalidArgumentsError](https://hyperformula.handsontable.com/docs/api/classes/invalidargumentserror.md) when the given arguments are invalid
**`throws`** [SheetSizeLimitExceededError](https://hyperformula.handsontable.com/docs/api/classes/sheetsizelimitexceedederror.md) when performing this operation would result in sheet size limits exceeding
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['=RAND()', '42'],
]);
// should return a list of cells which values changed after the operation,
// their absolute addresses and new values, for this example:
// [{
// address: { sheet: 0, col: 1, row: 0 },
// newValue: 0.92754862796338,
// }]
const changes = hfInstance.addColumns(0, [0, 1]);
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`sheetId` | number | sheet ID in which columns will be added |
`...indexes` | [ColumnRowIndex](https://hyperformula.handsontable.com/docs/api/globals.md#columnrowindex)[] | non-contiguous indexes with format: [column, amount], where column is a column number from which new columns will be added |
**Returns:** *[ExportedChange](https://hyperformula.handsontable.com/docs/api/globals.md#exportedchange)[]*
___
### isItPossibleToAddColumns
▸ **isItPossibleToAddColumns**(`sheetId`: number, ...`indexes`: [ColumnRowIndex](https://hyperformula.handsontable.com/docs/api/globals.md#columnrowindex)[]): *boolean*
*Defined in [src/HyperFormula.ts:1928](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L1928)*
Returns information whether it is possible to add columns into a specified position in a given sheet.
Checks against particular rules to ascertain that addColumns can be called.
If returns `true`, doing [addColumns](https://hyperformula.handsontable.com/docs/api/classes/hyperformula.md#addcolumns) operation won't throw any errors.
Returns `false` if adding columns would exceed the sheet size limit or given arguments are invalid.
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/expectedvalueoftypeerror.md) if any of its basic type argument is of wrong type
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['1', '2'],
]);
// should return 'true' for this example,
// it is possible to add 1 column in sheet 0, at column 1
const isAddable = hfInstance.isItPossibleToAddColumns(0, [1, 1]);
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`sheetId` | number | sheet ID in which columns will be added |
`...indexes` | [ColumnRowIndex](https://hyperformula.handsontable.com/docs/api/globals.md#columnrowindex)[] | non-contiguous indexes with format: [column, amount], where column is a column number from which new columns will be added |
**Returns:** *boolean*
___
### isItPossibleToMoveColumns
▸ **isItPossibleToMoveColumns**(`sheetId`: number, `startColumn`: number, `numberOfColumns`: number, `targetColumn`: number): *boolean*
*Defined in [src/HyperFormula.ts:2263](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L2263)*
Returns information whether it is possible to move a particular number of columns to a specified position in a given sheet.
Checks against particular rules to ascertain that moveColumns can be called.
If returns `true`, doing [moveColumns](https://hyperformula.handsontable.com/docs/api/classes/hyperformula.md#movecolumns) operation won't throw any errors.
Returns `false` if the operation might be disrupted and causes side effects by the fact that there is an array inside the selected columns, the target location includes an array or the provided address is invalid.
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/expectedvalueoftypeerror.md) if any of its basic type argument is of wrong type
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['1', '2'],
]);
// should return 'true' for this example
// it is possible to move one column from column 1 into column 2 of sheet 0
const isMovable = hfInstance.isItPossibleToMoveColumns(0, 1, 1, 2);
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`sheetId` | number | a sheet number in which the operation will be performed |
`startColumn` | number | number of the first column to move |
`numberOfColumns` | number | number of columns to move |
`targetColumn` | number | column number before which columns will be moved |
**Returns:** *boolean*
___
### isItPossibleToRemoveColumns
▸ **isItPossibleToRemoveColumns**(`sheetId`: number, ...`indexes`: [ColumnRowIndex](https://hyperformula.handsontable.com/docs/api/globals.md#columnrowindex)[]): *boolean*
*Defined in [src/HyperFormula.ts:2004](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L2004)*
Returns information whether it is possible to remove columns from a specified position in a given sheet.
Checks against particular rules to ascertain that removeColumns can be called.
If returns `true`, doing [removeColumns](https://hyperformula.handsontable.com/docs/api/classes/hyperformula.md#removecolumns) operation won't throw any errors.
Returns `false` if given arguments are invalid.
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/expectedvalueoftypeerror.md) if any of its basic type argument is of wrong type
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['1', '2'],
]);
// should return 'true' for this example
// it is possible to remove one column, in place of the second column of sheet 0
const isRemovable = hfInstance.isItPossibleToRemoveColumns(0, [1, 1]);
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`sheetId` | number | sheet ID from which columns will be removed |
`...indexes` | [ColumnRowIndex](https://hyperformula.handsontable.com/docs/api/globals.md#columnrowindex)[] | non-contiguous indexes with format [column, amount] |
**Returns:** *boolean*
___
### isItPossibleToSetColumnOrder
▸ **isItPossibleToSetColumnOrder**(`sheetId`: number, `newColumnOrder`: number[]): *boolean*
*Defined in [src/HyperFormula.ts:1748](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L1748)*
Checks if it is possible to reorder columns of a sheet according to a permutation.
Parameter `newColumnOrder` should have the form `[ newPositionForColumn0, newPositionForColumn1, newPositionForColumn2, ... ]`,
i.e. the value at index `i` is the new position for the column that is currently at index `i`.
See [setColumnOrder](https://hyperformula.handsontable.com/docs/api/classes/hyperformula.md#setcolumnorder) for details.
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/expectedvalueoftypeerror.md) if any of its basic type argument is of wrong type
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['A', 'B', 'C']
]);
// returns true
hfInstance.isItPossibleToSetColumnOrder(0, [1, 2, 0]);
// returns false (array length must match the number of columns)
hfInstance.isItPossibleToSetColumnOrder(0, [1]);
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`sheetId` | number | ID of a sheet to operate on |
`newColumnOrder` | number[] | permutation of columns |
**Returns:** *boolean*
___
### isItPossibleToSwapColumnIndexes
▸ **isItPossibleToSwapColumnIndexes**(`sheetId`: number, `columnMapping`: [number, number][]): *boolean*
*Defined in [src/HyperFormula.ts:1665](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L1665)*
Checks if it is possible to reorder columns of a sheet according to a source-target mapping.
**`fires`** [valuesUpdated](https://hyperformula.handsontable.com/docs/api/interfaces/listeners.md#valuesupdated) if recalculation was triggered by this change
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/expectedvalueoftypeerror.md) if any of its basic type argument is of wrong type
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
[1, 2, 4],
[5]
]);
// returns true
hfInstance.isItPossibleToSwapColumnIndexes(0, [[0, 2], [2, 0]]);
// returns false
hfInstance.isItPossibleToSwapColumnIndexes(0, [[0, 1]]);
```
**Parameters:**
Name | Type |
------ | ------ |
`sheetId` | number |
`columnMapping` | [number, number][] |
**Returns:** *boolean*
___
### moveColumns
▸ **moveColumns**(`sheetId`: number, `startColumn`: number, `numberOfColumns`: number, `targetColumn`: number): *[ExportedChange](https://hyperformula.handsontable.com/docs/api/globals.md#exportedchange)[]*
*Defined in [src/HyperFormula.ts:2316](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L2316)*
Moves a particular number of columns to a specified position in a given sheet.
Returns [an array of cells whose values changed as a result of this operation](https://hyperformula.handsontable.com/docs/guide/basic-operations.md#changes-array).
Note that this method may trigger dependency graph recalculation.
**`fires`** [valuesUpdated](https://hyperformula.handsontable.com/docs/api/interfaces/listeners.md#valuesupdated) if recalculation was triggered by this change
**`throws`** [NoSheetWithIdError](https://hyperformula.handsontable.com/docs/api/classes/nosheetwithiderror.md) when the given sheet ID does not exist
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/expectedvalueoftypeerror.md) if any of its basic type argument is of wrong type
**`throws`** [InvalidArgumentsError](https://hyperformula.handsontable.com/docs/api/classes/invalidargumentserror.md) when the given arguments are invalid
**`throws`** [SourceLocationHasArrayError](https://hyperformula.handsontable.com/docs/api/classes/sourcelocationhasarrayerror.md) when the source location has array inside - array cannot be moved
**`throws`** [TargetLocationHasArrayError](https://hyperformula.handsontable.com/docs/api/classes/targetlocationhasarrayerror.md) when the target location has array inside - cells cannot be replaced by the array
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['1', '2', '3', '=RAND()', '=SUM(A1:C1)'],
]);
// should return a list of cells which values changed after the operation,
// their absolute addresses and new values, for this example:
// [{
// address: { sheet: 0, col: 1, row: 0 },
// newValue: 0.16210054671639,
// }, {
// address: { sheet: 0, col: 4, row: 0 },
// newValue: 6.16210054671639,
// }]
const changes = hfInstance.moveColumns(0, 1, 1, 2);
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`sheetId` | number | a sheet number in which the operation will be performed |
`startColumn` | number | number of the first column to move |
`numberOfColumns` | number | number of columns to move |
`targetColumn` | number | column number before which columns will be moved |
**Returns:** *[ExportedChange](https://hyperformula.handsontable.com/docs/api/globals.md#exportedchange)[]*
___
### removeColumns
▸ **removeColumns**(`sheetId`: number, ...`indexes`: [ColumnRowIndex](https://hyperformula.handsontable.com/docs/api/globals.md#columnrowindex)[]): *[ExportedChange](https://hyperformula.handsontable.com/docs/api/globals.md#exportedchange)[]*
*Defined in [src/HyperFormula.ts:2049](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L2049)*
Removes multiple columns from a specified position in a given sheet.
Does nothing if columns are outside the effective sheet size.
Returns [an array of cells whose values changed as a result of this operation](https://hyperformula.handsontable.com/docs/guide/basic-operations.md#changes-array).
Note that this method may trigger dependency graph recalculation.
**`fires`** [valuesUpdated](https://hyperformula.handsontable.com/docs/api/interfaces/listeners.md#valuesupdated) if recalculation was triggered by this change
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/expectedvalueoftypeerror.md) if any of its basic type argument is of wrong type
**`throws`** [NoSheetWithIdError](https://hyperformula.handsontable.com/docs/api/classes/nosheetwithiderror.md) when the given sheet ID does not exist
**`throws`** [InvalidArgumentsError](https://hyperformula.handsontable.com/docs/api/classes/invalidargumentserror.md) when the given arguments are invalid
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['0', '=SUM(1, 2, 3)', '=A1'],
]);
// should return a list of cells which values changed after the operation,
// their absolute addresses and new values, in this example it will return:
// [{
// address: { sheet: 0, col: 1, row: 0 },
// newValue: { error: [CellError], value: '#REF!' },
// }]
const changes = hfInstance.removeColumns(0, [0, 1]);
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`sheetId` | number | sheet ID from which columns will be removed |
`...indexes` | [ColumnRowIndex](https://hyperformula.handsontable.com/docs/api/globals.md#columnrowindex)[] | non-contiguous indexes with format: [column, amount] |
**Returns:** *[ExportedChange](https://hyperformula.handsontable.com/docs/api/globals.md#exportedchange)[]*
___
### setColumnOrder
▸ **setColumnOrder**(`sheetId`: number, `newColumnOrder`: number[]): *[ExportedChange](https://hyperformula.handsontable.com/docs/api/globals.md#exportedchange)[]*
*Defined in [src/HyperFormula.ts:1715](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L1715)*
Reorders columns of a sheet according to a permutation of 0-based indexes.
Parameter `newColumnOrder` should have the form `[ newPositionForColumn0, newPositionForColumn1, newPositionForColumn2, ... ]`.
In other words, the value at index `i` is the new position for the column that is currently at index `i`.
Note that this is the opposite of `[ previousPositionForColumn0, previousPositionForColumn1, ... ]`.
This method might be used to [sort the columns of a sheet](https://hyperformula.handsontable.com/docs/guide/sorting-data.md).
Returns [an array of cells whose values changed as a result of this operation](https://hyperformula.handsontable.com/docs/guide/basic-operations.md#changes-array).
Note: This method may trigger dependency graph recalculation.
**`fires`** [valuesUpdated](https://hyperformula.handsontable.com/docs/api/interfaces/listeners.md#valuesupdated) if recalculation was triggered by this change
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/expectedvalueoftypeerror.md) if any of its basic type argument is of wrong type
**`throws`** [NoSheetWithIdError](https://hyperformula.handsontable.com/docs/api/classes/nosheetwithiderror.md) when the given sheet ID does not exist
**`throws`** [InvalidArgumentsError](https://hyperformula.handsontable.com/docs/api/classes/invalidargumentserror.md) when columnMapping does not define correct column permutation for some subset of columns of the given sheet
**`throws`** [SourceLocationHasArrayError](https://hyperformula.handsontable.com/docs/api/classes/sourcelocationhasarrayerror.md) when the selected position has array inside
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['A', 'B', 'C']
]);
// Move 'A' to index 1, 'B' to index 2, and 'C' to index 0.
const newColumnOrder = [1, 2, 0]; // [ newPosForA, newPosForB, newPosForC ]
const changes = hfInstance.setColumnOrder(0, newColumnOrder);
// Sheet after this operation: [['C', 'A', 'B']]
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`sheetId` | number | ID of a sheet to operate on |
`newColumnOrder` | number[] | permutation of columns; array length must match the number of columns returned by [getSheetDimensions()](#getsheetdimensions) |
**Returns:** *[ExportedChange](https://hyperformula.handsontable.com/docs/api/globals.md#exportedchange)[]*
___
### swapColumnIndexes
▸ **swapColumnIndexes**(`sheetId`: number, `columnMapping`: [number, number][]): *[ExportedChange](https://hyperformula.handsontable.com/docs/api/globals.md#exportedchange)[]*
*Defined in [src/HyperFormula.ts:1637](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L1637)*
Reorders columns of a sheet according to a source-target mapping.
Returns [an array of cells whose values changed as a result of this operation](https://hyperformula.handsontable.com/docs/guide/basic-operations.md#changes-array).
Note that this method may trigger dependency graph recalculation.
**`fires`** [valuesUpdated](https://hyperformula.handsontable.com/docs/api/interfaces/listeners.md#valuesupdated) if recalculation was triggered by this change
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/expectedvalueoftypeerror.md) if any of its basic type argument is of wrong type
**`throws`** [NoSheetWithIdError](https://hyperformula.handsontable.com/docs/api/classes/nosheetwithiderror.md) when the given sheet ID does not exist
**`throws`** [InvalidArgumentsError](https://hyperformula.handsontable.com/docs/api/classes/invalidargumentserror.md) when columnMapping does not define correct column permutation for some subset of columns of the given sheet
**`throws`** [SourceLocationHasArrayError](https://hyperformula.handsontable.com/docs/api/classes/sourcelocationhasarrayerror.md) when the selected position has array inside
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
[1, 2, 4],
[5]
]);
// should set swap columns 0 and 2 in place, returns:
// [{
// address: { sheet: 0, col: 2, row: 0 },
// newValue: 1,
// },
// {
// address: { sheet: 0, col: 2, row: 1 },
// newValue: 5,
// },
// {
// address: { sheet: 0, col: 0, row: 0 },
// newValue: 4,
// },
// {
// address: { sheet: 0, col: 0, row: 1 },
// newValue: null,
// }]
const changes = hfInstance.swapColumnIndexes(0, [[0, 2], [2, 0]]);
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`sheetId` | number | ID of a sheet to operate on |
`columnMapping` | [number, number][] | array mapping original positions to final positions of columns |
**Returns:** *[ExportedChange](https://hyperformula.handsontable.com/docs/api/globals.md#exportedchange)[]*
___
## Cells
### doesCellHaveFormula
▸ **doesCellHaveFormula**(`cellAddress`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)): *boolean*
*Defined in [src/HyperFormula.ts:3419](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L3419)*
Returns `true` if the specified cell contains a formula.
The method accepts cell coordinates as object with column, row and sheet numbers.
**`throws`** [NoSheetWithIdError](https://hyperformula.handsontable.com/docs/api/classes/nosheetwithiderror.md) when the given sheet ID does not exist
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/expectedvalueoftypeerror.md) if cellAddress is of wrong type
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['=SUM(A2:A3)', '2'],
]);
// should return 'true' since the A1 cell contains a formula
const A1Formula = hfInstance.doesCellHaveFormula({ sheet: 0, col: 0, row: 0 });
// should return 'false' since the B1 cell does not contain a formula
const B1NoFormula = hfInstance.doesCellHaveFormula({ sheet: 0, col: 1, row: 0 });
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`cellAddress` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) | cell coordinates |
**Returns:** *boolean*
___
### doesCellHaveSimpleValue
▸ **doesCellHaveSimpleValue**(`cellAddress`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)): *boolean*
*Defined in [src/HyperFormula.ts:3388](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L3388)*
Returns `true` if the specified cell contains a simple value.
The method accepts cell coordinates as object with column, row and sheet numbers.
**`throws`** [NoSheetWithIdError](https://hyperformula.handsontable.com/docs/api/classes/nosheetwithiderror.md) when the given sheet ID does not exist
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/expectedvalueoftypeerror.md) if cellAddress is of wrong type
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['=SUM(A2:A3)', '2'],
]);
// should return 'true' since the selected cell contains a simple value
const isA1Simple = hfInstance.doesCellHaveSimpleValue({ sheet: 0, col: 0, row: 0 });
// should return 'false' since the selected cell does not contain a simple value
const isB1Simple = hfInstance.doesCellHaveSimpleValue({ sheet: 0, col: 1, row: 0 });
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`cellAddress` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) | cell coordinates |
**Returns:** *boolean*
___
### getCellFormula
▸ **getCellFormula**(`cellAddress`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)): *string | undefined*
*Defined in [src/HyperFormula.ts:843](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L843)*
Returns a normalized formula string from the cell of a given address or `undefined` for an address that does not exist and empty values.
**`throws`** [NoSheetWithIdError](https://hyperformula.handsontable.com/docs/api/classes/nosheetwithiderror.md) when the given sheet ID does not exist
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/expectedvalueoftypeerror.md) when cellAddress is of incorrect type
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['=SUM(1, 2, 3)', '0'],
]);
// should return a normalized A1 cell formula: '=SUM(1, 2, 3)'
const A1Formula = hfInstance.getCellFormula({ sheet: 0, col: 0, row: 0 });
// should return a normalized B1 cell formula: 'undefined'
const B1Formula = hfInstance.getCellFormula({ sheet: 0, col: 1, row: 0 });
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`cellAddress` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) | cell coordinates |
**Returns:** *string | undefined*
___
### getCellHyperlink
▸ **getCellHyperlink**(`cellAddress`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)): *string | undefined*
*Defined in [src/HyperFormula.ts:873](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L873)*
Returns the `HYPERLINK` url for a cell of a given address or `undefined` for an address that does not exist or a cell that is not `HYPERLINK`
**`throws`** [NoSheetWithIdError](https://hyperformula.handsontable.com/docs/api/classes/nosheetwithiderror.md) when the given sheet ID does not exist
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/expectedvalueoftypeerror.md) when cellAddress is of incorrect type
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['=HYPERLINK("https://hyperformula.handsontable.com/", "HyperFormula")', '0'],
]);
// should return url of 'HYPERLINK': https://hyperformula.handsontable.com/
const A1Hyperlink = hfInstance.getCellHyperlink({ sheet: 0, col: 0, row: 0 });
// should return 'undefined' for a cell that is not 'HYPERLINK'
const B1Hyperlink = hfInstance.getCellHyperlink({ sheet: 0, col: 1, row: 0 });
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`cellAddress` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) | cell coordinates |
**Returns:** *string | undefined*
___
### getCellSerialized
▸ **getCellSerialized**(`cellAddress`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)): *[RawCellContent](https://hyperformula.handsontable.com/docs/api/globals.md#rawcellcontent)*
*Defined in [src/HyperFormula.ts:905](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L905)*
Returns [RawCellContent](https://hyperformula.handsontable.com/docs/api/globals.md#rawcellcontent) with a serialized content of the cell of a given address: either a cell formula, an explicit value, or an error.
**`throws`** [NoSheetWithIdError](https://hyperformula.handsontable.com/docs/api/classes/nosheetwithiderror.md) when the given sheet ID does not exist
**`throws`** [EvaluationSuspendedError](https://hyperformula.handsontable.com/docs/api/classes/evaluationsuspendederror.md) when the evaluation is suspended
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/expectedvalueoftypeerror.md) when cellAddress is of incorrect type
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['=SUM(1, 2, 3)', '0'],
]);
// should return serialized content of A1 cell: '=SUM(1, 2, 3)'
const cellA1Serialized = hfInstance.getCellSerialized({ sheet: 0, col: 0, row: 0 });
// should return serialized content of B1 cell: '0'
const cellB1Serialized = hfInstance.getCellSerialized({ sheet: 0, col: 1, row: 0 });
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`cellAddress` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) | cell coordinates |
**Returns:** *[RawCellContent](https://hyperformula.handsontable.com/docs/api/globals.md#rawcellcontent)*
___
### getCellType
▸ **getCellType**(`cellAddress`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)): *[CellType](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-celltype)*
*Defined in [src/HyperFormula.ts:3356](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L3356)*
Returns the type of a cell at a given address.
The method accepts cell coordinates as object with column, row and sheet numbers.
**`throws`** [NoSheetWithIdError](https://hyperformula.handsontable.com/docs/api/classes/nosheetwithiderror.md) when the given sheet ID does not exist
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/expectedvalueoftypeerror.md) if cellAddress is of wrong type
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['=SUM(A2:A3)', '2'],
]);
// should return 'FORMULA', the cell of given coordinates is of this type
const cellA1Type = hfInstance.getCellType({ sheet: 0, col: 0, row: 0 });
// should return 'VALUE', the cell of given coordinates is of this type
const cellB1Type = hfInstance.getCellType({ sheet: 0, col: 1, row: 0 });
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`cellAddress` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) | cell coordinates |
**Returns:** *[CellType](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-celltype)*
___
### getCellValue
▸ **getCellValue**(`cellAddress`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)): *[CellValue](https://hyperformula.handsontable.com/docs/api/globals.md#cellvalue)*
*Defined in [src/HyperFormula.ts:812](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L812)*
Returns the cell value of a given address.
Applies rounding and post-processing.
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/expectedvalueoftypeerror.md) when cellAddress is of incorrect type
**`throws`** [NoSheetWithIdError](https://hyperformula.handsontable.com/docs/api/classes/nosheetwithiderror.md) when the given sheet ID does not exist
**`throws`** [EvaluationSuspendedError](https://hyperformula.handsontable.com/docs/api/classes/evaluationsuspendederror.md) when the evaluation is suspended
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['=SUM(1, 2, 3)', '2'],
]);
// get value of A1 cell, should be '6'
const A1Value = hfInstance.getCellValue({ sheet: 0, col: 0, row: 0 });
// get value of B1 cell, should be '2'
const B1Value = hfInstance.getCellValue({ sheet: 0, col: 1, row: 0 });
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`cellAddress` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) | cell coordinates |
**Returns:** *[CellValue](https://hyperformula.handsontable.com/docs/api/globals.md#cellvalue)*
___
### getCellValueDetailedType
▸ **getCellValueDetailedType**(`cellAddress`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)): *[CellValueDetailedType](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-cellvaluedetailedtype)*
*Defined in [src/HyperFormula.ts:3550](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L3550)*
Returns detailed type of the cell value of a given address.
The method accepts cell coordinates as object with column, row and sheet numbers.
For more information, see the [Types of values guide](https://hyperformula.handsontable.com/docs/guide/types-of-values.md).
**`throws`** [NoSheetWithIdError](https://hyperformula.handsontable.com/docs/api/classes/nosheetwithiderror.md) when the given sheet ID does not exist
**`throws`** [EvaluationSuspendedError](https://hyperformula.handsontable.com/docs/api/classes/evaluationsuspendederror.md) when the evaluation is suspended
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/expectedvalueoftypeerror.md) if cellAddress is of wrong type
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['1%', '1$'],
]);
// should return 'NUMBER_PERCENT', cell value type of provided coordinates is a number with a format inference percent.
const cellType = hfInstance.getCellValueDetailedType({ sheet: 0, col: 0, row: 0 });
// should return 'NUMBER_CURRENCY', cell value type of provided coordinates is a number with a format inference currency.
const cellType = hfInstance.getCellValueDetailedType({ sheet: 0, col: 1, row: 0 });
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`cellAddress` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) | cell coordinates |
**Returns:** *[CellValueDetailedType](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-cellvaluedetailedtype)*
___
### getCellValueFormat
▸ **getCellValueFormat**(`cellAddress`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)): *FormatInfo*
*Defined in [src/HyperFormula.ts:3584](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L3584)*
Returns auxiliary format information of the cell value of a given address.
The method accepts cell coordinates as object with column, row and sheet numbers.
**`throws`** [NoSheetWithIdError](https://hyperformula.handsontable.com/docs/api/classes/nosheetwithiderror.md) when the given sheet ID does not exist
**`throws`** [EvaluationSuspendedError](https://hyperformula.handsontable.com/docs/api/classes/evaluationsuspendederror.md) when the evaluation is suspended
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/expectedvalueoftypeerror.md) if cellAddress is of wrong type
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['1$', '1'],
]);
// should return '$', cell value type of provided coordinates is a number with a format inference currency, parsed as using '$' as currency.
const cellFormat = hfInstance.getCellValueFormat({ sheet: 0, col: 0, row: 0 });
// should return undefined, cell value type of provided coordinates is a number with no format information.
const cellFormat = hfInstance.getCellValueFormat({ sheet: 0, col: 1, row: 0 });
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`cellAddress` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) | cell coordinates |
**Returns:** *FormatInfo*
___
### getCellValueType
▸ **getCellValueType**(`cellAddress`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)): *[CellValueType](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-cellvaluetype)*
*Defined in [src/HyperFormula.ts:3514](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L3514)*
Returns type of the cell value of a given address.
The method accepts cell coordinates as object with column, row and sheet numbers.
For more information, see the [Types of values guide](https://hyperformula.handsontable.com/docs/guide/types-of-values.md).
**`throws`** [NoSheetWithIdError](https://hyperformula.handsontable.com/docs/api/classes/nosheetwithiderror.md) when the given sheet ID does not exist
**`throws`** [EvaluationSuspendedError](https://hyperformula.handsontable.com/docs/api/classes/evaluationsuspendederror.md) when the evaluation is suspended
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/expectedvalueoftypeerror.md) if cellAddress is of wrong type
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['=SUM(1, 2, 3)', '2'],
]);
// should return 'NUMBER', cell value type of provided coordinates is a number
const cellValue = hfInstance.getCellValueType({ sheet: 0, col: 1, row: 0 });
// should return 'NUMBER', cell value type of provided coordinates is a number
const cellValue = hfInstance.getCellValueType({ sheet: 0, col: 0, row: 0 });
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`cellAddress` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) | cell coordinates |
**Returns:** *[CellValueType](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-cellvaluetype)*
___
### isCellEmpty
▸ **isCellEmpty**(`cellAddress`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)): *boolean*
*Defined in [src/HyperFormula.ts:3451](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L3451)*
Returns`true` if the specified cell is empty.
The method accepts cell coordinates as object with column, row and sheet numbers.
**`throws`** [NoSheetWithIdError](https://hyperformula.handsontable.com/docs/api/classes/nosheetwithiderror.md) when the given sheet ID does not exist
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/expectedvalueoftypeerror.md) if cellAddress is of wrong type
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
[null, '1'],
]);
// should return 'true', cell of provided coordinates is empty
const isEmpty = hfInstance.isCellEmpty({ sheet: 0, col: 0, row: 0 });
// should return 'false', cell of provided coordinates is not empty
const isNotEmpty = hfInstance.isCellEmpty({ sheet: 0, col: 1, row: 0 });
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`cellAddress` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) | cell coordinates |
**Returns:** *boolean*
___
### isCellPartOfArray
▸ **isCellPartOfArray**(`cellAddress`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)): *boolean*
*Defined in [src/HyperFormula.ts:3479](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L3479)*
Returns `true` if a given cell is a part of an array.
The method accepts cell coordinates as object with column, row and sheet numbers.
**`throws`** [NoSheetWithIdError](https://hyperformula.handsontable.com/docs/api/classes/nosheetwithiderror.md) when the given sheet ID does not exist
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/expectedvalueoftypeerror.md) if cellAddress is of wrong type
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['{=TRANSPOSE(B1:B1)}'],
]);
// should return 'true', cell of provided coordinates is a part of an array
const isPartOfArray = hfInstance.isCellPartOfArray({ sheet: 0, col: 0, row: 0 });
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`cellAddress` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) | cell coordinates |
**Returns:** *boolean*
___
### isItPossibleToMoveCells
▸ **isItPossibleToMoveCells**(`source`: [SimpleCellRange](https://hyperformula.handsontable.com/docs/api/interfaces/simplecellrange.md), `destinationLeftCorner`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)): *boolean*
*Defined in [src/HyperFormula.ts:2085](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L2085)*
Returns information whether it is possible to move cells to a specified position in a given sheet.
Checks against particular rules to ascertain that moveCells can be called.
If returns `true`, doing [moveCells](https://hyperformula.handsontable.com/docs/api/classes/hyperformula.md#movecells) operation won't throw any errors.
Returns `false` if the operation might be disrupted and causes side effects by the fact that there is an array inside the selected columns, the target location includes an array or the provided address is invalid.
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/expectedvalueoftypeerror.md) if destinationLeftCorner, source, or any of basic type arguments are of wrong type
**`throws`** [SheetsNotEqual](https://hyperformula.handsontable.com/docs/api/classes/sheetsnotequal.md) if range provided has distinct sheet numbers for start and end
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['1', '2'],
]);
// choose the coordinates and assign them to variables
const source = { sheet: 0, col: 1, row: 0 };
const destination = { sheet: 0, col: 3, row: 0 };
// should return 'true' for this example
// it is possible to move a block of width 1 and height 1
// from the corner: column 1 and row 0 of sheet 0
// into destination corner: column 3, row 0 of sheet 0
const isMovable = hfInstance.isItPossibleToMoveCells({ start: source, end: source }, destination);
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`source` | [SimpleCellRange](https://hyperformula.handsontable.com/docs/api/interfaces/simplecellrange.md) | range for a moved block |
`destinationLeftCorner` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) | upper left address of the target cell block |
**Returns:** *boolean*
___
### isItPossibleToSetCellContents
▸ **isItPossibleToSetCellContents**(`address`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) | [SimpleCellRange](https://hyperformula.handsontable.com/docs/api/interfaces/simplecellrange.md)): *boolean*
*Defined in [src/HyperFormula.ts:1356](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L1356)*
Returns information whether it is possible to change the content in a rectangular area bounded by the box.
If returns `true`, doing [setCellContents](https://hyperformula.handsontable.com/docs/api/classes/hyperformula.md#setcellcontents) operation won't throw any errors.
Returns `false` if the address is invalid or the sheet does not exist.
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/expectedvalueoftypeerror.md) if any of its basic type argument is of wrong type
**`throws`** [SheetsNotEqual](https://hyperformula.handsontable.com/docs/api/classes/sheetsnotequal.md) if range provided has distinct sheet numbers for start and end
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['1', '2'],
]);
// top left corner
const address1 = { col: 0, row: 0, sheet: 0 };
// bottom right corner
const address2 = { col: 1, row: 0, sheet: 0 };
// should return 'true' for this example, it is possible to set content of
// width 2, height 1 in the first row and column of sheet 0
const isSettable = hfInstance.isItPossibleToSetCellContents({ start: address1, end: address2 });
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`address` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) | [SimpleCellRange](https://hyperformula.handsontable.com/docs/api/interfaces/simplecellrange.md) | single cell or block of cells to check |
**Returns:** *boolean*
___
### moveCells
▸ **moveCells**(`source`: [SimpleCellRange](https://hyperformula.handsontable.com/docs/api/interfaces/simplecellrange.md), `destinationLeftCorner`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)): *[ExportedChange](https://hyperformula.handsontable.com/docs/api/globals.md#exportedchange)[]*
*Defined in [src/HyperFormula.ts:2142](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L2142)*
Moves the content of a cell block from source to the target location.
Returns [an array of cells whose values changed as a result of this operation](https://hyperformula.handsontable.com/docs/guide/basic-operations.md#changes-array).
Note that this method may trigger dependency graph recalculation.
**`fires`** [valuesUpdated](https://hyperformula.handsontable.com/docs/api/interfaces/listeners.md#valuesupdated) if recalculation was triggered by this change
**`throws`** [NoSheetWithIdError](https://hyperformula.handsontable.com/docs/api/classes/nosheetwithiderror.md) when the given sheet ID does not exist
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/expectedvalueoftypeerror.md) if destinationLeftCorner or source are of wrong type
**`throws`** [InvalidArgumentsError](https://hyperformula.handsontable.com/docs/api/classes/invalidargumentserror.md) when the given arguments are invalid
**`throws`** [SheetSizeLimitExceededError](https://hyperformula.handsontable.com/docs/api/classes/sheetsizelimitexceedederror.md) when performing this operation would result in sheet size limits exceeding
**`throws`** [SourceLocationHasArrayError](https://hyperformula.handsontable.com/docs/api/classes/sourcelocationhasarrayerror.md) when the source location has array inside - array cannot be moved
**`throws`** [TargetLocationHasArrayError](https://hyperformula.handsontable.com/docs/api/classes/targetlocationhasarrayerror.md) when the target location has array inside - cells cannot be replaced by the array
**`throws`** [SheetsNotEqual](https://hyperformula.handsontable.com/docs/api/classes/sheetsnotequal.md) if range provided has distinct sheet numbers for start and end
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['=RAND()', '42'],
]);
// choose the coordinates and assign them to variables
const source = { sheet: 0, col: 1, row: 0 };
const destination = { sheet: 0, col: 3, row: 0 };
// should return a list of cells which values changed after the operation,
// their absolute addresses and new values, for this example:
// [{
// address: { sheet: 0, col: 0, row: 0 },
// newValue: 0.93524248002062,
// }]
const changes = hfInstance.moveCells({ start: source, end: source }, destination);
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`source` | [SimpleCellRange](https://hyperformula.handsontable.com/docs/api/interfaces/simplecellrange.md) | range for a moved block |
`destinationLeftCorner` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) | upper left address of the target cell block |
**Returns:** *[ExportedChange](https://hyperformula.handsontable.com/docs/api/globals.md#exportedchange)[]*
___
### setCellContents
▸ **setCellContents**(`topLeftCornerAddress`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md), `cellContents`: [RawCellContent](https://hyperformula.handsontable.com/docs/api/globals.md#rawcellcontent)[][] | [RawCellContent](https://hyperformula.handsontable.com/docs/api/globals.md#rawcellcontent)): *[ExportedChange](https://hyperformula.handsontable.com/docs/api/globals.md#exportedchange)[]*
*Defined in [src/HyperFormula.ts:1409](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L1409)*
Sets the content for a block of cells of a given coordinates.
Returns [an array of cells whose values changed as a result of this operation](https://hyperformula.handsontable.com/docs/guide/basic-operations.md#changes-array).
Note that this method may trigger dependency graph recalculation.
**`fires`** [valuesUpdated](https://hyperformula.handsontable.com/docs/api/interfaces/listeners.md#valuesupdated) if recalculation was triggered by this change
**`throws`** [NoSheetWithIdError](https://hyperformula.handsontable.com/docs/api/classes/nosheetwithiderror.md) when the given sheet ID does not exist
**`throws`** [InvalidArgumentsError](https://hyperformula.handsontable.com/docs/api/classes/invalidargumentserror.md) when the value is not an array of arrays or a raw cell value
**`throws`** [SheetSizeLimitExceededError](https://hyperformula.handsontable.com/docs/api/classes/sheetsizelimitexceedederror.md) when performing this operation would result in sheet size limits exceeding
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/expectedvalueoftypeerror.md) if topLeftCornerAddress argument is of wrong type
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['1', '2', '=A1'],
]);
// should set the content, returns:
// [{
// address: { sheet: 0, col: 3, row: 0 },
// newValue: 2,
// }]
const changes = hfInstance.setCellContents({ col: 3, row: 0, sheet: 0 }, [['=B1']]);
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`topLeftCornerAddress` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) | top left corner of block of cells |
`cellContents` | [RawCellContent](https://hyperformula.handsontable.com/docs/api/globals.md#rawcellcontent)[][] | [RawCellContent](https://hyperformula.handsontable.com/docs/api/globals.md#rawcellcontent) | array with content |
**Returns:** *[ExportedChange](https://hyperformula.handsontable.com/docs/api/globals.md#exportedchange)[]*
___
## Named Expressions
### addNamedExpression
▸ **addNamedExpression**(`expressionName`: string, `expression`: [RawCellContent](https://hyperformula.handsontable.com/docs/api/globals.md#rawcellcontent), `scope?`: undefined | number, `options?`: [NamedExpressionOptions](https://hyperformula.handsontable.com/docs/api/globals.md#namedexpressionoptions)): *[ExportedChange](https://hyperformula.handsontable.com/docs/api/globals.md#exportedchange)[]*
*Defined in [src/HyperFormula.ts:3904](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L3904)*
Adds a specified named expression.
Returns [an array of cells whose values changed as a result of this operation](https://hyperformula.handsontable.com/docs/guide/basic-operations.md#changes-array).
Note that this method may trigger dependency graph recalculation.
**`fires`** [namedExpressionAdded](https://hyperformula.handsontable.com/docs/api/interfaces/listeners.md#namedexpressionadded) always, unless [batch](https://hyperformula.handsontable.com/docs/api/classes/hyperformula.md#batch) mode is used
**`fires`** [valuesUpdated](https://hyperformula.handsontable.com/docs/api/interfaces/listeners.md#valuesupdated) if recalculation was triggered by this change
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/expectedvalueoftypeerror.md) if any of its basic type argument is of wrong type
**`throws`** [NamedExpressionNameIsAlreadyTakenError](https://hyperformula.handsontable.com/docs/api/classes/namedexpressionnameisalreadytakenerror.md) when the named-expression name is not available.
**`throws`** [NamedExpressionNameIsInvalidError](https://hyperformula.handsontable.com/docs/api/classes/namedexpressionnameisinvaliderror.md) when the named-expression name is not valid
**`throws`** [NoRelativeAddressesAllowedError](https://hyperformula.handsontable.com/docs/api/classes/norelativeaddressesallowederror.md) when the named-expression formula contains relative references
**`throws`** [NoSheetWithIdError](https://hyperformula.handsontable.com/docs/api/classes/nosheetwithiderror.md) if no sheet with given sheetId exists
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['42'],
]);
// add own expression, scope limited to 'Sheet1' (sheetId=0), the method should return a list of cells which values
// changed after the operation, their absolute addresses and new values
// for this example:
// [{
// name: 'prettyName',
// newValue: 142,
// }]
const changes = hfInstance.addNamedExpression('prettyName', '=Sheet1!$A$1+100', 0);
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`expressionName` | string | a name of the expression to be added |
`expression` | [RawCellContent](https://hyperformula.handsontable.com/docs/api/globals.md#rawcellcontent) | the expression |
`scope?` | undefined | number | scope definition, `sheetId` for local scope or `undefined` for global scope |
`options?` | [NamedExpressionOptions](https://hyperformula.handsontable.com/docs/api/globals.md#namedexpressionoptions) | additional metadata related to named expression |
**Returns:** *[ExportedChange](https://hyperformula.handsontable.com/docs/api/globals.md#exportedchange)[]*
___
### changeNamedExpression
▸ **changeNamedExpression**(`expressionName`: string, `newExpression`: [RawCellContent](https://hyperformula.handsontable.com/docs/api/globals.md#rawcellcontent), `scope?`: undefined | number, `options?`: [NamedExpressionOptions](https://hyperformula.handsontable.com/docs/api/globals.md#namedexpressionoptions)): *[ExportedChange](https://hyperformula.handsontable.com/docs/api/globals.md#exportedchange)[]*
*Defined in [src/HyperFormula.ts:4126](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L4126)*
Changes a given named expression to a specified formula.
Returns [an array of cells whose values changed as a result of this operation](https://hyperformula.handsontable.com/docs/guide/basic-operations.md#changes-array).
Note that this method may trigger dependency graph recalculation.
**`fires`** [valuesUpdated](https://hyperformula.handsontable.com/docs/api/interfaces/listeners.md#valuesupdated) if recalculation was triggered by this change
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/expectedvalueoftypeerror.md) if any of its basic type argument is of wrong type
**`throws`** [NamedExpressionDoesNotExistError](https://hyperformula.handsontable.com/docs/api/classes/namedexpressiondoesnotexisterror.md) when the given expression does not exist.
**`throws`** [NoSheetWithIdError](https://hyperformula.handsontable.com/docs/api/classes/nosheetwithiderror.md) if no sheet with given sheetId exists
**`throws`** [[ArrayFormulasNotSupportedError]] when the named expression formula is an array formula
**`throws`** [NoRelativeAddressesAllowedError](https://hyperformula.handsontable.com/docs/api/classes/norelativeaddressesallowederror.md) when the named expression formula contains relative references
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['42'],
]);
// add a named expression, scope limited to 'Sheet1' (sheetId=0)
hfInstance.addNamedExpression('prettyName', '=Sheet1!$A$1+100', 0);
// change the named expression
const changes = hfInstance.changeNamedExpression('prettyName', '=Sheet1!$A$1+200');
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`expressionName` | string | an expression name, case-insensitive. |
`newExpression` | [RawCellContent](https://hyperformula.handsontable.com/docs/api/globals.md#rawcellcontent) | a new expression |
`scope?` | undefined | number | scope definition, `sheetId` for local scope or `undefined` for global scope |
`options?` | [NamedExpressionOptions](https://hyperformula.handsontable.com/docs/api/globals.md#namedexpressionoptions) | additional metadata related to named expression |
**Returns:** *[ExportedChange](https://hyperformula.handsontable.com/docs/api/globals.md#exportedchange)[]*
___
### getAllNamedExpressionsSerialized
▸ **getAllNamedExpressionsSerialized**(): *[SerializedNamedExpression](https://hyperformula.handsontable.com/docs/api/interfaces/serializednamedexpression.md)[]*
*Defined in [src/HyperFormula.ts:4294](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L4294)*
Returns all named expressions serialized.
For more information, see the [Named expressions guide](https://hyperformula.handsontable.com/docs/guide/named-expressions.md).
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['42'],
['50'],
['60'],
]);
// add two named expressions and one scoped
hfInstance.addNamedExpression('prettyName', '=Sheet1!$A$1+100');
hfInstance.addNamedExpression('anotherPrettyName', '=Sheet1!$A$2+100');
hfInstance.addNamedExpression('prettyName3', '=Sheet1!$A$3+100', 0);
// get all expressions serialized
// should return:
// [
// {name: 'prettyName', expression: '=Sheet1!$A$1+100', options: undefined, scope: undefined},
// {name: 'anotherPrettyName', expression: '=Sheet1!$A$2+100', options: undefined, scope: undefined},
// {name: 'alsoPrettyName', expression: '=Sheet1!$A$3+100', options: undefined, scope: 0}
// ]
const allExpressions = hfInstance.getAllNamedExpressionsSerialized();
```
**Returns:** *[SerializedNamedExpression](https://hyperformula.handsontable.com/docs/api/interfaces/serializednamedexpression.md)[]*
___
### getNamedExpression
▸ **getNamedExpression**(`expressionName`: string, `scope?`: undefined | number): *[NamedExpression](https://hyperformula.handsontable.com/docs/api/interfaces/namedexpression.md) | undefined*
*Defined in [src/HyperFormula.ts:4029](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L4029)*
Returns a named expression, or `undefined` for a named expression that does not exist or does not hold a formula.
For more information, see the [Named expressions guide](https://hyperformula.handsontable.com/docs/guide/named-expressions.md).
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/expectedvalueoftypeerror.md) if any of its basic type argument is of wrong type
**`throws`** [NoSheetWithIdError](https://hyperformula.handsontable.com/docs/api/classes/nosheetwithiderror.md) if no sheet with given sheetId exists
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['42'],
]);
// add a named expression in 'Sheet1' (sheetId=0)
hfInstance.addNamedExpression('prettyName', '=Sheet1!$A$1+100', 0);
// returns a named expression that corresponds to the passed name from 'Sheet1' (sheetId=0)
// for this example, returns:
// {name: 'prettyName', expression: '=Sheet1!$A$1+100', options: undefined, scope: 0}
const myFormula = hfInstance.getNamedExpression('prettyName', 0);
// for a named expression that doesn't exist, returns 'undefined':
const myFormulaTwo = hfInstance.getNamedExpression('uglyName', 0);
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`expressionName` | string | expression name, case-insensitive. |
`scope?` | undefined | number | scope definition, `sheetId` for local scope or `undefined` for global scope |
**Returns:** *[NamedExpression](https://hyperformula.handsontable.com/docs/api/interfaces/namedexpression.md) | undefined*
___
### getNamedExpressionFormula
▸ **getNamedExpressionFormula**(`expressionName`: string, `scope?`: undefined | number): *string | undefined*
*Defined in [src/HyperFormula.ts:3984](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L3984)*
Returns a normalized formula string for given named expression, or `undefined` for a named expression that does not exist or does not hold a formula.
For more information, see the [Named expressions guide](https://hyperformula.handsontable.com/docs/guide/named-expressions.md).
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/expectedvalueoftypeerror.md) if any of its basic type argument is of wrong type
**`throws`** [NoSheetWithIdError](https://hyperformula.handsontable.com/docs/api/classes/nosheetwithiderror.md) if no sheet with given sheetId exists
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['42'],
]);
// add a named expression in 'Sheet1' (sheetId=0)
hfInstance.addNamedExpression('prettyName', '=Sheet1!$A$1+100', 0);
// returns a normalized formula string corresponding to the passed name from 'Sheet1' (sheetId=0),
// '=Sheet1!A1+100' for this example
const myFormula = hfInstance.getNamedExpressionFormula('prettyName', 0);
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`expressionName` | string | expression name, case-insensitive. |
`scope?` | undefined | number | scope definition, `sheetId` for local scope or `undefined` for global scope |
**Returns:** *string | undefined*
___
### getNamedExpressionValue
▸ **getNamedExpressionValue**(`expressionName`: string, `scope?`: undefined | number): *[CellValue](https://hyperformula.handsontable.com/docs/api/globals.md#cellvalue) | undefined*
*Defined in [src/HyperFormula.ts:3942](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L3942)*
Gets specified named expression value.
Returns a [CellValue](https://hyperformula.handsontable.com/docs/api/globals.md#cellvalue) or undefined if the given named expression does not exist.
For more information, see the [Named expressions guide](https://hyperformula.handsontable.com/docs/guide/named-expressions.md).
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/expectedvalueoftypeerror.md) if any of its basic type argument is of wrong type
**`throws`** [NoSheetWithIdError](https://hyperformula.handsontable.com/docs/api/classes/nosheetwithiderror.md) if no sheet with given sheetId exists
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['42'],
]);
// add a named expression, only 'Sheet1' (sheetId=0) considered as it is the scope
hfInstance.addNamedExpression('prettyName', '=Sheet1!$A$1+100', 'Sheet1');
// returns the calculated value of a passed named expression, '142' for this example
const myFormula = hfInstance.getNamedExpressionValue('prettyName', 'Sheet1');
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`expressionName` | string | expression name, case-insensitive. |
`scope?` | undefined | number | scope definition, `sheetId` for local scope or `undefined` for global scope |
**Returns:** *[CellValue](https://hyperformula.handsontable.com/docs/api/globals.md#cellvalue) | undefined*
___
### isItPossibleToAddNamedExpression
▸ **isItPossibleToAddNamedExpression**(`expressionName`: string, `expression`: [RawCellContent](https://hyperformula.handsontable.com/docs/api/globals.md#rawcellcontent), `scope?`: undefined | number): *boolean*
*Defined in [src/HyperFormula.ts:3852](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L3852)*
Returns information whether it is possible to add named expression into a specific scope.
Checks against particular rules to ascertain that addNamedExpression can be called.
If returns `true`, doing [addNamedExpression](https://hyperformula.handsontable.com/docs/api/classes/hyperformula.md#addnamedexpression) operation won't throw any errors.
Returns `false` if the operation might be disrupted.
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/expectedvalueoftypeerror.md) if any of its basic type argument is of wrong type
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['42'],
]);
// should return 'true' for this example,
// it is possible to add named expression to global scope
const isAddable = hfInstance.isItPossibleToAddNamedExpression('prettyName', '=Sheet1!$A$1+100');
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`expressionName` | string | a name of the expression to be added |
`expression` | [RawCellContent](https://hyperformula.handsontable.com/docs/api/globals.md#rawcellcontent) | the expression |
`scope?` | undefined | number | scope definition, `sheetId` for local scope or `undefined` for global scope |
**Returns:** *boolean*
___
### isItPossibleToChangeNamedExpression
▸ **isItPossibleToChangeNamedExpression**(`expressionName`: string, `newExpression`: [RawCellContent](https://hyperformula.handsontable.com/docs/api/globals.md#rawcellcontent), `scope?`: undefined | number): *boolean*
*Defined in [src/HyperFormula.ts:4078](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L4078)*
Returns information whether it is possible to change named expression in a specific scope.
Checks against particular rules to ascertain that changeNamedExpression can be called.
If returns `true`, doing [changeNamedExpression](https://hyperformula.handsontable.com/docs/api/classes/hyperformula.md#changenamedexpression) operation won't throw any errors.
Returns `false` if the operation might be disrupted.
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/expectedvalueoftypeerror.md) if any of its basic type argument is of wrong type
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['42'],
]);
// add a named expression
hfInstance.addNamedExpression('prettyName', '=Sheet1!$A$1+100');
// should return 'true' for this example,
// it is possible to change named expression
const isAddable = hfInstance.isItPossibleToChangeNamedExpression('prettyName', '=Sheet1!$A$1+100');
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`expressionName` | string | an expression name, case-insensitive. |
`newExpression` | [RawCellContent](https://hyperformula.handsontable.com/docs/api/globals.md#rawcellcontent) | a new expression |
`scope?` | undefined | number | scope definition, `sheetId` for local scope or `undefined` for global scope |
**Returns:** *boolean*
___
### isItPossibleToRemoveNamedExpression
▸ **isItPossibleToRemoveNamedExpression**(`expressionName`: string, `scope?`: undefined | number): *boolean*
*Defined in [src/HyperFormula.ts:4162](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L4162)*
Returns information whether it is possible to remove named expression from a specific scope.
Checks against particular rules to ascertain that removeNamedExpression can be called.
If returns `true`, doing [removeNamedExpression](https://hyperformula.handsontable.com/docs/api/classes/hyperformula.md#removenamedexpression) operation won't throw any errors.
Returns `false` if the operation might be disrupted.
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/expectedvalueoftypeerror.md) if any of its basic type argument is of wrong type
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['42'],
]);
// add a named expression
hfInstance.addNamedExpression('prettyName', '=Sheet1!$A$1+100');
// should return 'true' for this example,
// it is possible to change named expression
const isAddable = hfInstance.isItPossibleToRemoveNamedExpression('prettyName');
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`expressionName` | string | an expression name, case-insensitive. |
`scope?` | undefined | number | scope definition, `sheetId` for local scope or `undefined` for global scope |
**Returns:** *boolean*
___
### listNamedExpressions
▸ **listNamedExpressions**(`scope?`: undefined | number): *string[]*
*Defined in [src/HyperFormula.ts:4256](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L4256)*
Lists named expressions.
- If scope parameter is provided, returns an array of expression names defined for this scope.
- If scope parameter is undefined, returns an array of global expression names.
For more information, see the [Named expressions guide](https://hyperformula.handsontable.com/docs/guide/named-expressions.md).
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/expectedvalueoftypeerror.md) if any of its basic type argument is of wrong type
**`throws`** [NoSheetWithIdError](https://hyperformula.handsontable.com/docs/api/classes/nosheetwithiderror.md) if no sheet with given sheetId exists
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['42'],
['50'],
['60'],
]);
// add two named expressions and one scoped
hfInstance.addNamedExpression('prettyName', '=Sheet1!$A$1+100');
hfInstance.addNamedExpression('anotherPrettyName', '=Sheet1!$A$2+100');
hfInstance.addNamedExpression('alsoPrettyName', '=Sheet1!$A$3+100', 0);
// list the expressions, should return: ['prettyName', 'anotherPrettyName'] for this example
const listOfExpressions = hfInstance.listNamedExpressions();
// list the expressions, should return: ['alsoPrettyName'] for this example
const listOfExpressions = hfInstance.listNamedExpressions(0);
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`scope?` | undefined | number | scope of the named expressions, `sheetId` for local scope or `undefined` for global scope |
**Returns:** *string[]*
___
### removeNamedExpression
▸ **removeNamedExpression**(`expressionName`: string, `scope?`: undefined | number): *[ExportedChange](https://hyperformula.handsontable.com/docs/api/globals.md#exportedchange)[]*
*Defined in [src/HyperFormula.ts:4207](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L4207)*
Removes a named expression.
Returns [an array of cells whose values changed as a result of this operation](https://hyperformula.handsontable.com/docs/guide/basic-operations.md#changes-array).
Note that this method may trigger dependency graph recalculation.
**`fires`** [namedExpressionRemoved](https://hyperformula.handsontable.com/docs/api/interfaces/listeners.md#namedexpressionremoved) after the expression was removed
**`fires`** [valuesUpdated](https://hyperformula.handsontable.com/docs/api/interfaces/listeners.md#valuesupdated) if recalculation was triggered by this change
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/expectedvalueoftypeerror.md) if any of its basic type argument is of wrong type
**`throws`** [NamedExpressionDoesNotExistError](https://hyperformula.handsontable.com/docs/api/classes/namedexpressiondoesnotexisterror.md) when the given expression does not exist.
**`throws`** [NoSheetWithIdError](https://hyperformula.handsontable.com/docs/api/classes/nosheetwithiderror.md) if no sheet with given sheetId exists
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['42'],
]);
// add a named expression
hfInstance.addNamedExpression('prettyName', '=Sheet1!$A$1+100', 0);
// remove the named expression
const changes = hfInstance.removeNamedExpression('prettyName', 0);
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`expressionName` | string | expression name, case-insensitive. |
`scope?` | undefined | number | scope definition, `sheetId` for local scope or `undefined` for global scope |
**Returns:** *[ExportedChange](https://hyperformula.handsontable.com/docs/api/globals.md#exportedchange)[]*
___
## Helpers
### calculateFormula
▸ **calculateFormula**(`formulaString`: string, `sheetId`: number): *[CellValue](https://hyperformula.handsontable.com/docs/api/globals.md#cellvalue) | [CellValue](https://hyperformula.handsontable.com/docs/api/globals.md#cellvalue)[][]*
*Defined in [src/HyperFormula.ts:4359](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L4359)*
Calculates fire-and-forget formula, returns the calculated value.
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/expectedvalueoftypeerror.md) if any of its basic type arguments is of wrong type.
**`throws`** [NotAFormulaError](https://hyperformula.handsontable.com/docs/api/classes/notaformulaerror.md) when the provided string is not a valid formula (i.e., doesn't start with `=`).
**`throws`** [NoSheetWithIdError](https://hyperformula.handsontable.com/docs/api/classes/nosheetwithiderror.md) when the provided `sheetID` doesn't exist.
**`example`**
```js
const hfInstance = HyperFormula.buildFromSheets({
Sheet1: [['58']],
Sheet2: [['1', '2', '3'], ['4', '5', '6']]
});
// returns the calculated formula's value
// for this example, returns `68`
const calculatedFormula = hfInstance.calculateFormula('=A1+10', 0);
// for this example, returns [['11', '12', '13'], ['14', '15', '16']]
const calculatedFormula = hfInstance.calculateFormula('=A1:B3+10', 1);
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`formulaString` | string | A formula in a proper format, starting with `=`. |
`sheetId` | number | The ID of a sheet in context of which the formula gets evaluated. |
**Returns:** *[CellValue](https://hyperformula.handsontable.com/docs/api/globals.md#cellvalue) | [CellValue](https://hyperformula.handsontable.com/docs/api/globals.md#cellvalue)[][]*
___
### getAvailableFunctions
▸ **getAvailableFunctions**(): *FunctionListEntry[]*
*Defined in [src/HyperFormula.ts:4530](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L4530)*
Returns metadata of all functions available in this instance for a function picker, with names translated
according to the language set in this instance's configuration. Each entry contains the translated name, the
language-independent canonical name, the category, and a short description. Entries are sorted alphabetically by
their localized name, using the collation rules of the host environment, so the exact order of names that differ
only by case or diacritics may vary between hosts.
The list reflects this instance's own registry: the built-in functions and any custom (user-registered)
functions, plus their aliases. An alias is listed under its own id, borrowing its target's category and
description, with the target id exposed as `aliasOf`. Custom functions ship no catalogue entry, so their
`category` is `'Custom'` and they carry no `shortDescription` — with one exception: the catalogue is keyed by
function id, so a custom plugin registered *over* a built-in id inherits that id's entry and is listed with the
built-in's category and description.
That registry is a snapshot taken when the instance was built, not a live view of the global one: a function
registered with [registerFunctionPlugin](https://hyperformula.handsontable.com/docs/api/classes/hyperformula.md#static-registerfunctionplugin) or [registerFunction](https://hyperformula.handsontable.com/docs/api/classes/hyperformula.md#static-registerfunction) afterwards reaches only the engines built
later, so an engine kept across a late registration keeps reporting the set it was built with.
A function with no translation entry for the configured language is omitted: the interpreter refuses to evaluate
an untranslated id, so listing it would advertise a function that cannot be called — in practice, a custom
plugin registered without translations for that language. A translation set to an empty string is not a missing
entry: it falls back to the canonical id, so the function stays listed under its canonical name.
**`example`**
```js
const hfInstance = HyperFormula.buildEmpty();
// get the list of available functions, translated for the configured language
const functions = hfInstance.getAvailableFunctions();
```
**Returns:** *FunctionListEntry[]*
___
### getCellDependents
▸ **getCellDependents**(`address`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) | [SimpleCellRange](https://hyperformula.handsontable.com/docs/api/interfaces/simplecellrange.md)): *([SimpleCellRange](https://hyperformula.handsontable.com/docs/api/interfaces/simplecellrange.md) | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md))[]*
*Defined in [src/HyperFormula.ts:3183](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L3183)*
Returns all the out-neighbors in the [dependency graph](https://hyperformula.handsontable.com/docs/guide/dependency-graph.md) for a given cell address or range. Including:
- All cells with formulas that contain the given cell address or range
- Some of the ranges that contain the given cell address or range
The exact result depends on the optimizations applied by the HyperFormula to the dependency graph, some of which are described in the section ["Optimizations for large ranges"](https://hyperformula.handsontable.com/docs/guide/dependency-graph.md#optimizations-for-large-ranges).
The returned array includes also named expression dependents. They are represented as cell references with sheet ID `-1`.
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/expectedvalueoftypeerror.md) if address is not [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) or [SimpleCellRange](https://hyperformula.handsontable.com/docs/api/interfaces/simplecellrange.md)
**`throws`** [SheetsNotEqual](https://hyperformula.handsontable.com/docs/api/classes/sheetsnotequal.md) if range provided has distinct sheet numbers for start and end
**`throws`** [NoSheetWithIdError](https://hyperformula.handsontable.com/docs/api/classes/nosheetwithiderror.md) when the given sheet ID does not exist
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray( [ ['1', '=A1', '=A1+B1'] ] );
hfInstance.getCellDependents({ sheet: 0, col: 0, row: 0});
// returns [{ sheet: 0, col: 1, row: 0}, { sheet: 0, col: 2, row: 0}]
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`address` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) | [SimpleCellRange](https://hyperformula.handsontable.com/docs/api/interfaces/simplecellrange.md) | object representation of an absolute address or range of addresses |
**Returns:** *([SimpleCellRange](https://hyperformula.handsontable.com/docs/api/interfaces/simplecellrange.md) | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md))[]*
___
### getCellPrecedents
▸ **getCellPrecedents**(`address`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) | [SimpleCellRange](https://hyperformula.handsontable.com/docs/api/interfaces/simplecellrange.md)): *([SimpleCellRange](https://hyperformula.handsontable.com/docs/api/interfaces/simplecellrange.md) | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md))[]*
*Defined in [src/HyperFormula.ts:3221](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L3221)*
Returns all the in-neighbors in the [dependency graph](https://hyperformula.handsontable.com/docs/guide/dependency-graph.md) for a given cell address or range. In particular:
- If the argument is a single cell, `getCellPrecedents()` returns all cells and ranges contained in that cell's formula.
- If the argument is a range of cells, `getCellPrecedents()` returns some of the cell addresses and smaller ranges contained in that range (but not all of them). The exact result depends on the optimizations applied by the HyperFormula to the dependency graph, some of which are described in the section ["Optimizations for large ranges"](https://hyperformula.handsontable.com/docs/guide/dependency-graph.md#optimizations-for-large-ranges).
The returned array includes also named expression precedents. They are represented as cell references with sheet ID `-1`.
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/expectedvalueoftypeerror.md) if address is of wrong type
**`throws`** [NoSheetWithIdError](https://hyperformula.handsontable.com/docs/api/classes/nosheetwithiderror.md) when the given sheet ID does not exist
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray( [ ['1', '=A1', '=A1+B1'] ] );
hfInstance.getCellPrecedents({ sheet: 0, col: 2, row: 0});
// returns [{ sheet: 0, col: 0, row: 0}, { sheet: 0, col: 1, row: 0}]
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`address` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) | [SimpleCellRange](https://hyperformula.handsontable.com/docs/api/interfaces/simplecellrange.md) | object representation of an absolute address or range of addresses |
**Returns:** *([SimpleCellRange](https://hyperformula.handsontable.com/docs/api/interfaces/simplecellrange.md) | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md))[]*
___
### getFunctionDetails
▸ **getFunctionDetails**(`canonicalName`: string): *FunctionDetails | undefined*
*Defined in [src/HyperFormula.ts:4575](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L4575)*
Returns the full metadata of a single function registered in this instance, with names translated according to
the language set in this instance's configuration: the parameter list (with per-parameter optionality), the
number of trailing parameters that repeat (`repeatLastArgs`), the category, a short description, and the
documentation link (`documentationUrl`) and usage examples (`examples`) — every built-in authors both.
Resolves both built-in and custom (user-registered) functions, as well as aliases. An alias reports its
target's metadata (including examples, which spell the target's name) under the alias id, with the target id
exposed as `aliasOf`. Returns `undefined` when the function id is unknown, not registered in this instance, or
has no translation entry for the configured language (an untranslated id cannot be evaluated, so it is not
described either, which keeps this method consistent with [getAvailableFunctions](https://hyperformula.handsontable.com/docs/api/classes/hyperformula.md#getavailablefunctions)).
For a custom function, `category` is `'Custom'`, there is no `shortDescription`, `documentationUrl` or
`examples`, and parameters are reported positionally (`Arg1`, `Arg2`, ...). A custom plugin registered over a
built-in id is the exception: the catalogue is keyed by function id, so it reports that built-in's authored
metadata alongside the parameter list of the implementation actually registered.
`canonicalName` is matched exactly, in two ways worth knowing:
- It is **case-sensitive**, unlike formula syntax. `'SUMIF'` resolves; `'sumif'` and `'SumIf'` return
`undefined`, even though `=sumif(...)` evaluates.
- It must be the **canonical (English) id, never a localized name**. `localizedName` is output only: under
`plPL` this method reports `localizedName: 'SUMA.JEŻELI'` for `'SUMIF'`, but passing `'SUMA.JEŻELI'` back in
returns `undefined`. To look up an entry from [getAvailableFunctions](https://hyperformula.handsontable.com/docs/api/classes/hyperformula.md#getavailablefunctions), pass its `canonicalName`.
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/expectedvalueoftypeerror.md) if any of its basic type argument is of wrong type
**`example`**
```js
const hfInstance = HyperFormula.buildEmpty();
// get the details of the SUMIF function, translated for the configured language
const details = hfInstance.getFunctionDetails('SUMIF');
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`canonicalName` | string | the language-independent function id, e.g. `'SUMIF'` |
**Returns:** *FunctionDetails | undefined*
___
### getNamedExpressionsFromFormula
▸ **getNamedExpressionsFromFormula**(`formulaString`: string): *string[]*
*Defined in [src/HyperFormula.ts:4390](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L4390)*
Return a list of named expressions used by a formula.
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/expectedvalueoftypeerror.md) if any of its basic type arguments is of wrong type.
**`throws`** [NotAFormulaError](https://hyperformula.handsontable.com/docs/api/classes/notaformulaerror.md) when the provided string is not a valid formula (i.e., doesn't start with `=`).
**`example`**
```js
const hfInstance = HyperFormula.buildEmpty();
// returns a list of named expressions used by a formula
// for this example, returns ['foo', 'bar']
const namedExpressions = hfInstance.getNamedExpressionsFromFormula('=foo+bar*2');
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`formulaString` | string | A formula in a proper format, starting with `=`. |
**Returns:** *string[]*
___
### normalizeFormula
▸ **normalizeFormula**(`formulaString`: string): *string*
*Defined in [src/HyperFormula.ts:4323](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L4323)*
Parses and then unparses a formula.
Returns a normalized formula (e.g., restores the original capitalization of sheet names, function names, cell addresses, and named expressions).
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/expectedvalueoftypeerror.md) if any of its basic type argument is of wrong type
**`throws`** [NotAFormulaError](https://hyperformula.handsontable.com/docs/api/classes/notaformulaerror.md) when the provided string is not a valid formula, i.e., does not start with "="
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['42'],
['50'],
]);
// returns '=Sheet1!$A$1+10'
const normalizedFormula = hfInstance.normalizeFormula('=SHEET1!$A$1+10');
// returns '=3*$A$1'
const normalizedFormula = hfInstance.normalizeFormula('=3*$a$1');
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`formulaString` | string | a formula in a proper format - it must start with "=" |
**Returns:** *string*
___
### numberToDate
▸ **numberToDate**(`inputNumber`: number): *[DateTime](https://hyperformula.handsontable.com/docs/api/globals.md#datetime)*
*Defined in [src/HyperFormula.ts:4629](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L4629)*
Interprets number as a date.
For more information, see the [Date and time handling guide](https://hyperformula.handsontable.com/docs/guide/date-and-time-handling.md).
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/expectedvalueoftypeerror.md) if any of its basic type argument is of wrong type
**`example`**
```js
const hfInstance = HyperFormula.buildEmpty();
// pass the number of days since nullDate
// the method should return formatted date, for this example:
// {year: 2020, month: 1, day: 15}
const dateFromNumber = hfInstance.numberToDate(43845);
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`inputNumber` | number | number of days since nullDate, should be non-negative, fractions are ignored. |
**Returns:** *[DateTime](https://hyperformula.handsontable.com/docs/api/globals.md#datetime)*
___
### numberToDateTime
▸ **numberToDateTime**(`inputNumber`: number): *[DateTime](https://hyperformula.handsontable.com/docs/api/globals.md#datetime)*
*Defined in [src/HyperFormula.ts:4603](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L4603)*
Interprets number as a date + time.
For more information, see the [Date and time handling guide](https://hyperformula.handsontable.com/docs/guide/date-and-time-handling.md).
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/expectedvalueoftypeerror.md) if any of its basic type argument is of wrong type
**`example`**
```js
const hfInstance = HyperFormula.buildEmpty();
// pass the number of days since nullDate
// the method should return formatted date and time, for this example:
// {year: 2020, month: 1, day: 15, hours: 2, minutes: 24, seconds: 0}
const dateTimeFromNumber = hfInstance.numberToDateTime(43845.1);
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`inputNumber` | number | number of days since nullDate, should be non-negative, fractions are interpreted as hours/minutes/seconds. |
**Returns:** *[DateTime](https://hyperformula.handsontable.com/docs/api/globals.md#datetime)*
___
### numberToTime
▸ **numberToTime**(`inputNumber`: number): *[DateTime](https://hyperformula.handsontable.com/docs/api/globals.md#datetime)*
*Defined in [src/HyperFormula.ts:4654](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L4654)*
Interprets number as a time (hours/minutes/seconds).
For more information, see the [Date and time handling guide](https://hyperformula.handsontable.com/docs/guide/date-and-time-handling.md).
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/expectedvalueoftypeerror.md) if any of its basic type argument is of wrong type
**`example`**
```js
const hfInstance = HyperFormula.buildEmpty();
// pass a number to be interpreted as a time
// should return {hours: 26, minutes: 24} for this example
const timeFromNumber = hfInstance.numberToTime(1.1);
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`inputNumber` | number | time in 24h units. |
**Returns:** *[DateTime](https://hyperformula.handsontable.com/docs/api/globals.md#datetime)*
___
### simpleCellAddressFromString
▸ **simpleCellAddressFromString**(`cellAddress`: string, `contextSheetId`: number): *[SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) | undefined*
*Defined in [src/HyperFormula.ts:3024](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L3024)*
Computes the simple (absolute) address of a cell address, based on its string representation.
- If a sheet name is present in the string representation but is not present in the engine, returns `undefined`.
- If no sheet name is present in the string representation, uses `contextSheetId` as a sheet id in the returned address.
For more information, see the [Cell references guide](https://hyperformula.handsontable.com/docs/guide/cell-references.md).
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/expectedvalueoftypeerror.md) if any of its basic type argument is of wrong type
**`example`**
```js
const hfInstance = HyperFormula.buildEmpty();
hfInstance.addSheet('Sheet0'); //sheetId = 0
// returns { sheet: 42, col: 0, row: 0 }
const simpleCellAddress = hfInstance.simpleCellAddressFromString('A1', 42);
// returns { sheet: 0, col: 0, row: 5 }
const simpleCellAddress = hfInstance.simpleCellAddressFromString('Sheet0!A6', 42);
// returns { sheet: 0, col: 0, row: 5 }
const simpleCellAddress = hfInstance.simpleCellAddressFromString('Sheet0!$A$6', 42);
// returns 'undefined', as there's no 'Sheet 2' in the HyperFormula instance
const simpleCellAddress = hfInstance.simpleCellAddressFromString('Sheet2!A6', 42);
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`cellAddress` | string | string representation of cell address in A1 notation |
`contextSheetId` | number | sheet id used to construct the simple address in case of missing sheet name in `cellAddress` argument |
**Returns:** *[SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) | undefined*
___
### simpleCellAddressToString
▸ **simpleCellAddressToString**(`cellAddress`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md), `optionsOrContextSheetId`: object | number): *undefined | string*
*Defined in [src/HyperFormula.ts:3093](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L3093)*
Computes string representation of an absolute address in A1 notation. If `cellAddress.sheet` is not present in the engine, returns `undefined`.
For more information, see the [Cell references guide](https://hyperformula.handsontable.com/docs/guide/cell-references.md).
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/expectedvalueoftypeerror.md) if its arguments are of wrong type
**`example`**
```js
const hfInstance = HyperFormula.buildEmpty();
hfInstance.addSheet('Sheet0'); //sheetId = 0
const addr = { sheet: 0, col: 1, row: 1 };
// should return 'B2'
const A1Notation = hfInstance.simpleCellAddressToString(addr);
// should return 'B2'
const A1Notation = hfInstance.simpleCellAddressToString(addr, { includeSheetName: false });
// should return 'Sheet0!B2'
const A1Notation = hfInstance.simpleCellAddressToString(addr, { includeSheetName: true });
// should return 'B2' as context sheet id is the same as addr.sheet
const A1Notation = hfInstance.simpleCellAddressToString(addr, 0);
// should return 'Sheet0!B2' as context sheet id is different from addr.sheet
const A1Notation = hfInstance.simpleCellAddressToString(addr, 42);
```
**Parameters:**
Name | Type | Default | Description |
------ | ------ | ------ | ------ |
`cellAddress` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) | - | object representation of an absolute address |
`optionsOrContextSheetId` | object | number | {} | options object or number used as context sheet id to construct the string address (see examples) |
**Returns:** *undefined | string*
___
### simpleCellRangeFromString
▸ **simpleCellRangeFromString**(`cellRange`: string, `contextSheetId`: number): *[SimpleCellRange](https://hyperformula.handsontable.com/docs/api/interfaces/simplecellrange.md) | undefined*
*Defined in [src/HyperFormula.ts:3053](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L3053)*
Computes simple (absolute) address of a cell range based on its string representation.
If sheet name is present in string representation but not present in the engine, returns `undefined`.
For more information, see the [Cell references guide](https://hyperformula.handsontable.com/docs/guide/cell-references.md).
**`throws`** [NoSheetWithIdError](https://hyperformula.handsontable.com/docs/api/classes/nosheetwithiderror.md) when the given sheet ID does not exist
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/expectedvalueoftypeerror.md) if any of its basic type argument is of wrong type
**`example`**
```js
const hfInstance = HyperFormula.buildEmpty();
hfInstance.addSheet('Sheet0'); //sheetId = 0
// should return { start: { sheet: 0, col: 0, row: 0 }, end: { sheet: 0, col: 1, row: 0 } }
const simpleCellAddress = hfInstance.simpleCellRangeFromString('A1:A2', 0);
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`cellRange` | string | string representation of cell range in A1 notation |
`contextSheetId` | number | sheet id used to construct the simple address in case of missing sheet name in `cellRange` argument |
**Returns:** *[SimpleCellRange](https://hyperformula.handsontable.com/docs/api/interfaces/simplecellrange.md) | undefined*
___
### simpleCellRangeToString
▸ **simpleCellRangeToString**(`cellRange`: [SimpleCellRange](https://hyperformula.handsontable.com/docs/api/interfaces/simplecellrange.md), `optionsOrContextSheetId`: object | number): *string | undefined*
*Defined in [src/HyperFormula.ts:3146](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L3146)*
Computes string representation of an absolute range in A1 notation.
Returns `undefined` if:
- `cellRange` is not a valid range,
- `cellRange.start.sheet` and `cellRange.start.end` are different,
- `cellRange.start.sheet` is not present in the engine,
- `cellRange.start.end` is not present in the engine.
Note: This method is useful only for cell ranges; does not work with column ranges and row ranges.
For more information, see the [Cell references guide](https://hyperformula.handsontable.com/docs/guide/cell-references.md).
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/expectedvalueoftypeerror.md) if its arguments are of wrong type
**`example`**
```js
const hfInstance = HyperFormula.buildEmpty();
hfInstance.addSheet('Sheet0'); //sheetId = 0
const range = { start: { sheet: 0, col: 1, row: 1 }, end: { sheet: 0, col: 2, row: 1 } };
// should return 'B2:C2'
const A1Notation = hfInstance.simpleCellRangeToString(range);
// should return 'B2:C2'
const A1Notation = hfInstance.simpleCellRangeToString(range, { includeSheetName: false });
// should return 'Sheet0!B2:C2'
const A1Notation = hfInstance.simpleCellRangeToString(range, { includeSheetName: true });
// should return 'B2:C2' as context sheet id is the same as range.start.sheet and range.end.sheet
const A1Notation = hfInstance.simpleCellRangeToString(range, 0);
// should return 'Sheet0!B2:C2' as context sheet id is different from range.start.sheet and range.end.sheet
const A1Notation = hfInstance.simpleCellRangeToString(range, 42);
```
**Parameters:**
Name | Type | Default | Description |
------ | ------ | ------ | ------ |
`cellRange` | [SimpleCellRange](https://hyperformula.handsontable.com/docs/api/interfaces/simplecellrange.md) | - | object representation of an absolute range |
`optionsOrContextSheetId` | object | number | {} | options object or number used as context sheet id to construct the string address (see examples) |
**Returns:** *string | undefined*
___
### validateFormula
▸ **validateFormula**(`formulaString`: string): *boolean*
*Defined in [src/HyperFormula.ts:4424](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L4424)*
Validates the formula.
If the provided string starts with "=" and is a parsable formula, the method returns `true`.
The validation is purely grammatical: the method doesn't verify if the formula can be calculated or not.
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/expectedvalueoftypeerror.md) if any of its basic type argument is of wrong type
**`example`**
```js
// checks if the given string is a valid formula, should return 'true' for this example
const isFormula = hfInstance.validateFormula('=SUM(1, 2)');
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`formulaString` | string | a formula in a proper format - it must start with "=" |
**Returns:** *boolean*
___
## Clipboard
### clearClipboard
▸ **clearClipboard**(): *void*
*Defined in [src/HyperFormula.ts:2494](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L2494)*
Clears the clipboard content.
**`example`**
```js
// clears the clipboard, isClipboardEmpty() should return true if called afterwards
hfInstance.clearClipboard();
```
The usage of the internal clipboard is described thoroughly in the [Clipboard Operations guide](https://hyperformula.handsontable.com/docs/guide/clipboard-operations.md).
**Returns:** *void*
___
### copy
▸ **copy**(`source`: [SimpleCellRange](https://hyperformula.handsontable.com/docs/api/interfaces/simplecellrange.md)): *[CellValue](https://hyperformula.handsontable.com/docs/api/globals.md#cellvalue)[][]*
*Defined in [src/HyperFormula.ts:2354](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L2354)*
Stores a copy of the cell block in internal clipboard for the further paste.
Returns the copied values for use in external clipboard.
For more information, see the [Clipboard Operations guide](https://hyperformula.handsontable.com/docs/guide/clipboard-operations.md).
**`throws`** [NoSheetWithIdError](https://hyperformula.handsontable.com/docs/api/classes/nosheetwithiderror.md) when the given sheet ID does not exist
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/expectedvalueoftypeerror.md) if source is of wrong type
**`throws`** [SheetsNotEqual](https://hyperformula.handsontable.com/docs/api/classes/sheetsnotequal.md) if range provided has distinct sheet numbers for start and end
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['1', '2'],
]);
// it copies [ [ 2 ] ]
const clipboardContent = hfInstance.copy({
start: { sheet: 0, col: 1, row: 0 },
end: { sheet: 0, col: 1, row: 0 },
});
```
The usage of the internal clipboard is described thoroughly in the [Clipboard Operations guide](https://hyperformula.handsontable.com/docs/guide/clipboard-operations.md).
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`source` | [SimpleCellRange](https://hyperformula.handsontable.com/docs/api/interfaces/simplecellrange.md) | rectangle range to copy |
**Returns:** *[CellValue](https://hyperformula.handsontable.com/docs/api/globals.md#cellvalue)[][]*
___
### cut
▸ **cut**(`source`: [SimpleCellRange](https://hyperformula.handsontable.com/docs/api/interfaces/simplecellrange.md)): *[CellValue](https://hyperformula.handsontable.com/docs/api/globals.md#cellvalue)[][]*
*Defined in [src/HyperFormula.ts:2394](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L2394)*
Stores information of the cell block in internal clipboard for further paste.
Calling [paste](https://hyperformula.handsontable.com/docs/api/classes/hyperformula.md#paste) right after this method is equivalent to call [moveCells](https://hyperformula.handsontable.com/docs/api/classes/hyperformula.md#movecells).
Almost any CRUD operation called after this method will abort the cut operation.
Returns the cut values for use in external clipboard.
For more information, see the [Clipboard Operations guide](https://hyperformula.handsontable.com/docs/guide/clipboard-operations.md).
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/expectedvalueoftypeerror.md) if source is of wrong type
**`throws`** [SheetsNotEqual](https://hyperformula.handsontable.com/docs/api/classes/sheetsnotequal.md) if range provided has distinct sheet numbers for start and end
**`throws`** [NoSheetWithIdError](https://hyperformula.handsontable.com/docs/api/classes/nosheetwithiderror.md) when the given sheet ID does not exist
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['1', '2'],
]);
// returns the values that were cut: [ [ 1 ] ]
const clipboardContent = hfInstance.cut({
start: { sheet: 0, col: 0, row: 0 },
end: { sheet: 0, col: 0, row: 0 },
});
```
The usage of the internal clipboard is described thoroughly in the [Clipboard Operations guide](https://hyperformula.handsontable.com/docs/guide/clipboard-operations.md).
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`source` | [SimpleCellRange](https://hyperformula.handsontable.com/docs/api/interfaces/simplecellrange.md) | rectangle range to cut |
**Returns:** *[CellValue](https://hyperformula.handsontable.com/docs/api/globals.md#cellvalue)[][]*
___
### isClipboardEmpty
▸ **isClipboardEmpty**(): *boolean*
*Defined in [src/HyperFormula.ts:2477](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L2477)*
Returns information whether there is something in the clipboard.
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['1', '2'],
]);
// copy desired content
const clipboardContent = hfInstance.copy({
start: { sheet: 0, col: 1, row: 0 },
end: { sheet: 0, col: 1, row: 0 },
});
// returns 'false', there is content in the clipboard
const isClipboardEmpty = hfInstance.isClipboardEmpty();
```
The usage of the internal clipboard is described thoroughly in the [Clipboard Operations guide](https://hyperformula.handsontable.com/docs/guide/clipboard-operations.md).
**Returns:** *boolean*
___
### paste
▸ **paste**(`targetLeftCorner`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)): *[ExportedChange](https://hyperformula.handsontable.com/docs/api/globals.md#exportedchange)[]*
*Defined in [src/HyperFormula.ts:2445](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L2445)*
When called after [copy](https://hyperformula.handsontable.com/docs/api/classes/hyperformula.md#copy) it pastes copied values and formulas into a cell block.
When called after [cut](https://hyperformula.handsontable.com/docs/api/classes/hyperformula.md#cut) it performs [moveCells](https://hyperformula.handsontable.com/docs/api/classes/hyperformula.md#movecells) operation into the cell block.
Does nothing if the clipboard is empty.
For more information, see the [Clipboard Operations guide](https://hyperformula.handsontable.com/docs/guide/clipboard-operations.md).
Returns [an array of cells whose values changed as a result of this operation](https://hyperformula.handsontable.com/docs/guide/basic-operations.md#changes-array).
Note that this method may trigger dependency graph recalculation.
**`fires`** [valuesUpdated](https://hyperformula.handsontable.com/docs/api/interfaces/listeners.md#valuesupdated) if recalculation was triggered by this change
**`throws`** [NoSheetWithIdError](https://hyperformula.handsontable.com/docs/api/classes/nosheetwithiderror.md) when the given sheet ID does not exist
**`throws`** [EvaluationSuspendedError](https://hyperformula.handsontable.com/docs/api/classes/evaluationsuspendederror.md) when the evaluation is suspended
**`throws`** [SheetSizeLimitExceededError](https://hyperformula.handsontable.com/docs/api/classes/sheetsizelimitexceedederror.md) when performing this operation would result in sheet size limits exceeding
**`throws`** [NothingToPasteError](https://hyperformula.handsontable.com/docs/api/classes/nothingtopasteerror.md) when clipboard is empty
**`throws`** [TargetLocationHasArrayError](https://hyperformula.handsontable.com/docs/api/classes/targetlocationhasarrayerror.md) when the selected target area has array inside
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/expectedvalueoftypeerror.md) if targetLeftCorner is of wrong type
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['1', '2'],
]);
// [ [ 2 ] ] was copied
const clipboardContent = hfInstance.copy({
start: { sheet: 0, col: 1, row: 0 },
end: { sheet: 0, col: 1, row: 0 },
});
// returns a list of modified cells: their absolute addresses and new values
const changes = hfInstance.paste({ sheet: 0, col: 1, row: 0 });
```
The usage of the internal clipboard is described thoroughly in the [Clipboard Operations guide](https://hyperformula.handsontable.com/docs/guide/clipboard-operations.md).
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`targetLeftCorner` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) | upper left address of the target cell block |
**Returns:** *[ExportedChange](https://hyperformula.handsontable.com/docs/api/globals.md#exportedchange)[]*
___
## Undo and Redo
### clearRedoStack
▸ **clearRedoStack**(): *void*
*Defined in [src/HyperFormula.ts:2524](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L2524)*
Clears the redo stack in undoRedo history.
For more information, see the [Undo-Redo guide](https://hyperformula.handsontable.com/docs/guide/undo-redo.md).
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['1', '2', '3'],
]);
// do an operation, for example remove columns
hfInstance.removeColumns(0, [0, 1]);
// undo the operation
hfInstance.undo();
// redo the operation
hfInstance.redo();
// clear the redo stack
hfInstance.clearRedoStack();
```
**Returns:** *void*
___
### clearUndoStack
▸ **clearUndoStack**(): *void*
*Defined in [src/HyperFormula.ts:2551](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L2551)*
Clears the undo stack in undoRedo history.
For more information, see the [Undo-Redo guide](https://hyperformula.handsontable.com/docs/guide/undo-redo.md).
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['1', '2', '3'],
]);
// do an operation, for example remove columns
hfInstance.removeColumns(0, [0, 1]);
// undo the operation
hfInstance.undo();
// clear the undo stack
hfInstance.clearUndoStack();
```
**Returns:** *void*
___
### isThereSomethingToRedo
▸ **isThereSomethingToRedo**(): *boolean*
*Defined in [src/HyperFormula.ts:1324](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L1324)*
Checks if there is at least one operation that can be re-done.
For more information, see the [Undo-Redo guide](https://hyperformula.handsontable.com/docs/guide/undo-redo.md).
**`example`**
```js
hfInstance.undo();
// when there is an action to redo, this returns 'true'
const isSomethingToRedo = hfInstance.isThereSomethingToRedo();
```
**Returns:** *boolean*
___
### isThereSomethingToUndo
▸ **isThereSomethingToUndo**(): *boolean*
*Defined in [src/HyperFormula.ts:1305](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L1305)*
Checks if there is at least one operation that can be undone.
For more information, see the [Undo-Redo guide](https://hyperformula.handsontable.com/docs/guide/undo-redo.md).
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['1'],
['2'],
['3'],
]);
// perform CRUD operation, for example remove the second row
hfInstance.removeRows(0, [1, 1]);
// should return 'true', it is possible to undo last operation
// which is removing rows in this example
const isSomethingToUndo = hfInstance.isThereSomethingToUndo();
```
**Returns:** *boolean*
___
### redo
▸ **redo**(): *[ExportedChange](https://hyperformula.handsontable.com/docs/api/globals.md#exportedchange)[]*
*Defined in [src/HyperFormula.ts:1277](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L1277)*
Re-do recently undone operation.
For more information, see the [Undo-Redo guide](https://hyperformula.handsontable.com/docs/guide/undo-redo.md).
Returns [an array of cells whose values changed as a result of this operation](https://hyperformula.handsontable.com/docs/guide/basic-operations.md#changes-array).
Note that this method may trigger dependency graph recalculation.
**`fires`** [valuesUpdated](https://hyperformula.handsontable.com/docs/api/interfaces/listeners.md#valuesupdated) if recalculation was triggered by this change
**`throws`** [NoOperationToRedoError](https://hyperformula.handsontable.com/docs/api/classes/nooperationtoredoerror.md) when there is no operation running that can be re-done
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['1'],
['2'],
['3'],
]);
// perform CRUD operation, for example remove the second row
hfInstance.removeRows(0, [1, 1]);
// undo the operation, it should return previous values: [['1'], ['2'], ['3']]
hfInstance.undo();
// do a redo, it should return the values after removing the second row: [['1'], ['3']]
const changes = hfInstance.redo();
```
**Returns:** *[ExportedChange](https://hyperformula.handsontable.com/docs/api/globals.md#exportedchange)[]*
___
### undo
▸ **undo**(): *[ExportedChange](https://hyperformula.handsontable.com/docs/api/globals.md#exportedchange)[]*
*Defined in [src/HyperFormula.ts:1239](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L1239)*
Undo the previous operation.
For more information, see the [Undo-Redo guide](https://hyperformula.handsontable.com/docs/guide/undo-redo.md).
Returns [an array of cells whose values changed as a result of this operation](https://hyperformula.handsontable.com/docs/guide/basic-operations.md#changes-array).
Note that this method may trigger dependency graph recalculation.
**`fires`** [valuesUpdated](https://hyperformula.handsontable.com/docs/api/interfaces/listeners.md#valuesupdated) if recalculation was triggered by this change
**`throws`** [NoOperationToUndoError](https://hyperformula.handsontable.com/docs/api/classes/nooperationtoundoerror.md) when there is no operation running that can be undone
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['1', '2'],
['3', ''],
]);
// perform CRUD operation, for example remove the second row
hfInstance.removeRows(0, [1, 1]);
// undo the operation, it should return the changes
const changes = hfInstance.undo();
```
**Returns:** *[ExportedChange](https://hyperformula.handsontable.com/docs/api/globals.md#exportedchange)[]*
___
## Batch
### batch
▸ **batch**(`batchOperations`: function): *[ExportedChange](https://hyperformula.handsontable.com/docs/api/globals.md#exportedchange)[]*
*Defined in [src/HyperFormula.ts:3714](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L3714)*
Runs the provided callback as a single [batch operation](https://hyperformula.handsontable.com/docs/guide/batch-operations.md) and returns the changed cells.
Returns [an array of cells whose values changed as a result of all batched operations](https://hyperformula.handsontable.com/docs/guide/basic-operations.md#changes-array).
Note that this method may trigger dependency graph recalculation.
**`fires`** [valuesUpdated](https://hyperformula.handsontable.com/docs/api/interfaces/listeners.md#valuesupdated) if recalculation was triggered by this change
**`fires`** [evaluationSuspended](https://hyperformula.handsontable.com/docs/api/interfaces/listeners.md#evaluationsuspended) always
**`fires`** [evaluationResumed](https://hyperformula.handsontable.com/docs/api/interfaces/listeners.md#evaluationresumed) after the recomputation of necessary values
**`example`**
```js
const hfInstance = HyperFormula.buildFromSheets({
MySheet1: [ ['1'] ],
MySheet2: [ ['10'] ],
});
// multiple operations in a single callback will trigger evaluation only once
// and only one set of changes is returned as a combined result of all
// the operations that were triggered within the callback
const changes = hfInstance.batch(() => {
hfInstance.setCellContents({ col: 3, row: 0, sheet: 0 }, [['=B1']]);
hfInstance.setCellContents({ col: 4, row: 0, sheet: 0 }, [['=A1']]);
});
```
**Parameters:**
▪ **batchOperations**: *function*
a function with operations to be performed
▸ (): *void*
**Returns:** *[ExportedChange](https://hyperformula.handsontable.com/docs/api/globals.md#exportedchange)[]*
___
### isEvaluationSuspended
▸ **isEvaluationSuspended**(): *boolean*
*Defined in [src/HyperFormula.ts:3823](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L3823)*
Checks if the dependency graph recalculation process is [suspended](https://hyperformula.handsontable.com/docs/guide/batch-operations.md) or not.
**`example`**
```js
const hfInstance = HyperFormula.buildEmpty();
// suspend the evaluation
hfInstance.suspendEvaluation();
// between suspendEvaluation() and resumeEvaluation()
// or inside batch() callback it will return 'true', otherwise 'false'
const isEvaluationSuspended = hfInstance.isEvaluationSuspended();
const changes = hfInstance.resumeEvaluation();
```
**Returns:** *boolean*
___
### resumeEvaluation
▸ **resumeEvaluation**(): *[ExportedChange](https://hyperformula.handsontable.com/docs/api/globals.md#exportedchange)[]*
*Defined in [src/HyperFormula.ts:3797](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L3797)*
Resumes the dependency graph recalculation that was [suspended](https://hyperformula.handsontable.com/docs/guide/batch-operations.md) with [suspendEvaluation](https://hyperformula.handsontable.com/docs/api/classes/hyperformula.md#suspendevaluation).
It also triggers the recalculation and returns [an array of cells whose values changed as a result of all batched operations](https://hyperformula.handsontable.com/docs/guide/basic-operations.md#changes-array).
**`fires`** [valuesUpdated](https://hyperformula.handsontable.com/docs/api/interfaces/listeners.md#valuesupdated) if recalculation was triggered by this change
**`fires`** [evaluationResumed](https://hyperformula.handsontable.com/docs/api/interfaces/listeners.md#evaluationresumed) after the recomputation of necessary values
**`example`**
```js
const hfInstance = HyperFormula.buildFromSheets({
MySheet1: [ ['1'] ],
MySheet2: [ ['10'] ],
});
// similar to batch() but operations are not within a callback,
// one method suspends the recalculation
// the second will resume calculations and return the changes
// first, suspend the evaluation
hfInstance.suspendEvaluation();
// perform operations
hfInstance.setCellContents({ col: 3, row: 0, sheet: 0 }, [['=B1']]);
hfInstance.setSheetContent(1, [['50'], ['60']]);
// resume the evaluation
const changes = hfInstance.resumeEvaluation();
```
**Returns:** *[ExportedChange](https://hyperformula.handsontable.com/docs/api/globals.md#exportedchange)[]*
___
### suspendEvaluation
▸ **suspendEvaluation**(): *void*
*Defined in [src/HyperFormula.ts:3761](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L3761)*
Suspends the dependency graph recalculation to start a [batch operation](https://hyperformula.handsontable.com/docs/guide/batch-operations.md).
It allows optimizing the performance.
With this method, multiple CRUD operations can be done without triggering recalculation after every operation.
Suspending evaluation should result in an overall faster calculation compared to recalculating after each operation separately.
To resume the evaluation use [resumeEvaluation](https://hyperformula.handsontable.com/docs/api/classes/hyperformula.md#resumeevaluation).
**`fires`** [evaluationSuspended](https://hyperformula.handsontable.com/docs/api/interfaces/listeners.md#evaluationsuspended) always
**`example`**
```js
const hfInstance = HyperFormula.buildFromSheets({
MySheet1: [ ['1'] ],
MySheet2: [ ['10'] ],
});
// similar to batch() but operations are not within a callback,
// one method suspends the recalculation
// the second will resume calculations and return the changes
// suspend the evaluation with this method
hfInstance.suspendEvaluation();
// perform operations
hfInstance.setCellContents({ col: 3, row: 0, sheet: 0 }, [['=B1']]);
hfInstance.setSheetContent(1, [['50'], ['60']]);
// use resumeEvaluation to resume
const changes = hfInstance.resumeEvaluation();
```
**Returns:** *void*
___
## Events
### off
▸ **off**‹**Event**›(`event`: Event, `listener`: Listeners[Event]): *void*
*Defined in [src/HyperFormula.ts:4740](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L4740)*
Unsubscribes from an event or from all events.
For the list of all available events, see [Listeners](https://hyperformula.handsontable.com/docs/api/interfaces/listeners.md).
**`example`**
```js
const hfInstance = HyperFormula.buildEmpty();
// define a simple function to be called upon emitting an event
const handler = ( ) => { console.log('baz') }
// subscribe to a 'sheetAdded', pass the handler
hfInstance.on('sheetAdded', handler);
// add a sheet to trigger an event,
// console should print 'baz' each time a sheet is added
hfInstance.addSheet('FooBar');
// unsubscribe from a 'sheetAdded'
hfInstance.off('sheetAdded', handler);
// add a sheet, the console should not print anything
hfInstance.addSheet('FooBaz');
```
**Type parameters:**
▪ **Event**: *keyof Listeners*
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`event` | Event | the name of the event to subscribe to |
`listener` | Listeners[Event] | to be called when event is emitted |
**Returns:** *void*
___
### on
▸ **on**‹**Event**›(`event`: Event, `listener`: Listeners[Event]): *void*
*Defined in [src/HyperFormula.ts:4680](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L4680)*
Subscribes to an event.
For the list of all available events, see [Listeners](https://hyperformula.handsontable.com/docs/api/interfaces/listeners.md).
**`example`**
```js
const hfInstance = HyperFormula.buildEmpty();
// subscribe to a 'sheetAdded', pass a simple handler
hfInstance.on('sheetAdded', ( ) => { console.log('foo') });
// add a sheet to trigger an event,
// console should print 'foo' after each time sheet is added in this example
hfInstance.addSheet('FooBar');
```
**Type parameters:**
▪ **Event**: *keyof Listeners*
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`event` | Event | the name of the event to subscribe to |
`listener` | Listeners[Event] | to be called when event is emitted |
**Returns:** *void*
___
### once
▸ **once**‹**Event**›(`event`: Event, `listener`: Listeners[Event]): *void*
*Defined in [src/HyperFormula.ts:4706](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L4706)*
Subscribes to an event once.
For the list of all available events, see [Listeners](https://hyperformula.handsontable.com/docs/api/interfaces/listeners.md).
**`example`**
```js
const hfInstance = HyperFormula.buildEmpty();
// subscribe to a 'sheetAdded', pass a simple handler
hfInstance.once('sheetAdded', ( ) => { console.log('foo') });
// call addSheet twice,
// console should print 'foo' only once when the sheet is added in this example
hfInstance.addSheet('FooBar');
hfInstance.addSheet('FooBaz');
```
**Type parameters:**
▪ **Event**: *keyof Listeners*
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`event` | Event | the name of the event to subscribe to |
`listener` | Listeners[Event] | to be called when event is emitted |
**Returns:** *void*
___
## Custom Functions
### getAllFunctionPlugins
▸ **getAllFunctionPlugins**(): *FunctionPluginDefinition[]*
*Defined in [src/HyperFormula.ts:4493](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L4493)*
Returns classes of all plugins registered in this instance of HyperFormula
**`example`**
```js
const hfInstance = HyperFormula.buildEmpty();
// return classes of all plugins registered, assign to a variable
const allNames = hfInstance.getAllFunctionPlugins();
```
**Returns:** *FunctionPluginDefinition[]*
___
### getFunctionPlugin
▸ **getFunctionPlugin**(`functionId`: string): *FunctionPluginDefinition | undefined*
*Defined in [src/HyperFormula.ts:4475](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L4475)*
Returns class of a plugin used by function with given id
For more information, see the [Custom functions guide](https://hyperformula.handsontable.com/docs/guide/custom-functions.md).
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/expectedvalueoftypeerror.md) if any of its basic type argument is of wrong type
**`example`**
```js
// import your own plugin
import { MyExamplePlugin } from './file_with_your_plugin';
const hfInstance = HyperFormula.buildEmpty();
// register a plugin
HyperFormula.registerFunctionPlugin(MyExamplePlugin);
// get the plugin
const myPlugin = hfInstance.getFunctionPlugin('EXAMPLE');
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`functionId` | string | id of a function, e.g., 'SUMIF' |
**Returns:** *FunctionPluginDefinition | undefined*
___
### getRegisteredFunctionNames
▸ **getRegisteredFunctionNames**(): *string[]*
*Defined in [src/HyperFormula.ts:4445](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L4445)*
Returns translated names of all functions registered in this instance of HyperFormula
according to the language set in the configuration
**`example`**
```js
const hfInstance = HyperFormula.buildEmpty();
// return translated names of all functions, assign to a variable
const allNames = hfInstance.getRegisteredFunctionNames();
```
**Returns:** *string[]*
___
## Static Methods
### getAllFunctionPlugins
▸ **getAllFunctionPlugins**(): *FunctionPluginDefinition[]*
*Defined in [src/HyperFormula.ts:652](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L652)*
Returns classes of all plugins registered in HyperFormula.
**`example`**
```js
// return classes of all plugins
const allClasses = HyperFormula.getAllFunctionPlugins();
```
**Returns:** *FunctionPluginDefinition[]*
___
### getFunctionPlugin
▸ **getFunctionPlugin**(`functionId`: string): *FunctionPluginDefinition | undefined*
*Defined in [src/HyperFormula.ts:636](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L636)*
Returns class of a plugin used by function with given id
For more information, see the [Custom functions guide](https://hyperformula.handsontable.com/docs/guide/custom-functions.md).
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/expectedvalueoftypeerror.md) if any of its basic type argument is of wrong type
**`example`**
```js
// import your own plugin
import { MyExamplePlugin } from './file_with_your_plugin';
// register a plugin
HyperFormula.registerFunctionPlugin(MyExamplePlugin);
// return the class of a given plugin
const myFunctionClass = HyperFormula.getFunctionPlugin('EXAMPLE');
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`functionId` | string | id of a function, e.g., 'SUMIF' |
**Returns:** *FunctionPluginDefinition | undefined*
___
### getLanguage
▸ **getLanguage**(`languageCode`: string): *TranslationPackage*
*Defined in [src/HyperFormula.ts:375](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L375)*
Returns registered language from its code string.
For more information, see the [Localizing functions guide](https://hyperformula.handsontable.com/docs/guide/localizing-functions.md).
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/expectedvalueoftypeerror.md) if any of its basic type argument is of wrong type
**`throws`** [LanguageNotRegisteredError](https://hyperformula.handsontable.com/docs/api/classes/languagenotregisterederror.md) when trying to retrieve not registered language
**`example`**
```js
// return registered language
const language = HyperFormula.getLanguage('enGB');
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`languageCode` | string | code string of the translation package |
**Returns:** *TranslationPackage*
___
### getRegisteredFunctionNames
▸ **getRegisteredFunctionNames**(`code`: string): *string[]*
*Defined in [src/HyperFormula.ts:606](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L606)*
Returns translated names of all registered functions for a given language
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/expectedvalueoftypeerror.md) if any of its basic type argument is of wrong type
**`example`**
```js
// return a list of function names registered for enGB
const allNames = HyperFormula.getRegisteredFunctionNames('enGB');
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`code` | string | language code |
**Returns:** *string[]*
___
### getRegisteredLanguagesCodes
▸ **getRegisteredLanguagesCodes**(): *string[]*
*Defined in [src/HyperFormula.ts:456](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L456)*
Returns all registered languages codes.
**`example`**
```js
// should return all registered language codes: ['enGB', 'plPL']
const registeredLanguages = HyperFormula.getRegisteredLanguagesCodes();
```
**Returns:** *string[]*
___
### registerFunction
▸ **registerFunction**(`functionId`: string, `plugin`: FunctionPluginDefinition, `translations?`: FunctionTranslationsPackage): *void*
*Defined in [src/HyperFormula.ts:540](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L540)*
Registers a function with a given id if such exists in a plugin.
For more information, see the [Custom functions guide](https://hyperformula.handsontable.com/docs/guide/custom-functions.md).
Note: This method does not affect the existing HyperFormula instances.
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/expectedvalueoftypeerror.md) if any of its basic type argument is of wrong type
**`throws`** [FunctionPluginValidationError](https://hyperformula.handsontable.com/docs/api/classes/functionpluginvalidationerror.md) when function with a given id does not exist in plugin or plugin class definition is not consistent with metadata
**`throws`** [ProtectedFunctionTranslationError](https://hyperformula.handsontable.com/docs/api/classes/protectedfunctiontranslationerror.md) when trying to register translation for protected function
**`example`**
```js
// import your own plugin
import { MyExamplePlugin } from './file_with_your_plugin';
// register a function
HyperFormula.registerFunction('EXAMPLE', MyExamplePlugin);
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`functionId` | string | function id, e.g., 'SUMIF' |
`plugin` | FunctionPluginDefinition | plugin class |
`translations?` | FunctionTranslationsPackage | translations for the function name |
**Returns:** *void*
___
### registerFunctionPlugin
▸ **registerFunctionPlugin**(`plugin`: FunctionPluginDefinition, `translations?`: FunctionTranslationsPackage): *void*
*Defined in [src/HyperFormula.ts:486](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L486)*
Registers all functions in a given plugin with optional translations.
For more information, see the [Custom functions guide](https://hyperformula.handsontable.com/docs/guide/custom-functions.md).
Note: FunctionPlugins must be registered prior to the creation of HyperFormula instances in which they are used.
HyperFormula instances created prior to the registration of a FunctionPlugin are unable to access the FunctionPlugin.
Registering a FunctionPlugin with [[custom-functions]] requires the translations parameter.
**`throws`** [FunctionPluginValidationError](https://hyperformula.handsontable.com/docs/api/classes/functionpluginvalidationerror.md) when plugin class definition is not consistent with metadata
**`throws`** [ProtectedFunctionTranslationError](https://hyperformula.handsontable.com/docs/api/classes/protectedfunctiontranslationerror.md) when trying to register translation for protected function
**`example`**
```js
// import your own plugin
import { MyExamplePlugin } from './file_with_your_plugin';
// register the plugin
HyperFormula.registerFunctionPlugin(MyExamplePlugin);
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`plugin` | FunctionPluginDefinition | plugin class |
`translations?` | FunctionTranslationsPackage | optional package of function names translations |
**Returns:** *void*
___
### registerLanguage
▸ **registerLanguage**(`languageCode`: string, `languagePackage`: RawTranslationPackage): *void*
*Defined in [src/HyperFormula.ts:406](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L406)*
Registers language under given code string.
For more information, see the [Localizing functions guide](https://hyperformula.handsontable.com/docs/guide/localizing-functions.md).
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/expectedvalueoftypeerror.md) if any of its basic type argument is of wrong type
**`throws`** [ProtectedFunctionTranslationError](https://hyperformula.handsontable.com/docs/api/classes/protectedfunctiontranslationerror.md) when trying to register translation for protected function
**`throws`** [LanguageAlreadyRegisteredError](https://hyperformula.handsontable.com/docs/api/classes/languagealreadyregisterederror.md) when given language is already registered
**`example`**
```js
// return registered language
HyperFormula.registerLanguage('enUS', enUS);
const engine = HyperFormula.buildEmpty({language: 'enUS'});
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`languageCode` | string | code string of the translation package |
`languagePackage` | RawTranslationPackage | translation package to be registered |
**Returns:** *void*
___
### unregisterAllFunctions
▸ **unregisterAllFunctions**(): *void*
*Defined in [src/HyperFormula.ts:587](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L587)*
Clears function registry.
Note: This method does not affect the existing HyperFormula instances.
**`example`**
```js
HyperFormula.unregisterAllFunctions();
```
**Returns:** *void*
___
### unregisterFunction
▸ **unregisterFunction**(`functionId`: string): *void*
*Defined in [src/HyperFormula.ts:570](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L570)*
Unregisters a function with a given id.
For more information, see the [Custom functions guide](https://hyperformula.handsontable.com/docs/guide/custom-functions.md).
Note: This method does not affect the existing HyperFormula instances.
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/expectedvalueoftypeerror.md) if any of its basic type argument is of wrong type
**`example`**
```js
// import your own plugin
import { MyExamplePlugin } from './file_with_your_plugin';
// register a function
HyperFormula.registerFunction('EXAMPLE', MyExamplePlugin);
// unregister a function
HyperFormula.unregisterFunction('EXAMPLE');
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`functionId` | string | function id, e.g., 'SUMIF' |
**Returns:** *void*
___
### unregisterFunctionPlugin
▸ **unregisterFunctionPlugin**(`plugin`: FunctionPluginDefinition): *void*
*Defined in [src/HyperFormula.ts:510](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L510)*
Unregisters all functions defined in given plugin.
For more information, see the [Custom functions guide](https://hyperformula.handsontable.com/docs/guide/custom-functions.md).
Note: This method does not affect the existing HyperFormula instances.
**`example`**
```js
// get the class of a plugin
const registeredPluginClass = HyperFormula.getFunctionPlugin('EXAMPLE');
// unregister all functions defined in a plugin of ID 'EXAMPLE'
HyperFormula.unregisterFunctionPlugin(registeredPluginClass);
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`plugin` | FunctionPluginDefinition | plugin class |
**Returns:** *void*
___
### unregisterLanguage
▸ **unregisterLanguage**(`languageCode`: string): *void*
*Defined in [src/HyperFormula.ts:436](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L436)*
Unregisters language that is registered under given code string.
For more information, see the [Localizing functions guide](https://hyperformula.handsontable.com/docs/guide/localizing-functions.md).
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/expectedvalueoftypeerror.md) if any of its basic type argument is of wrong type
**`throws`** [LanguageNotRegisteredError](https://hyperformula.handsontable.com/docs/api/classes/languagenotregisterederror.md) when given language is not registered
**`example`**
```js
// register the language for the instance
HyperFormula.registerLanguage('plPL', plPL);
// unregister plPL
HyperFormula.unregisterLanguage('plPL');
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`languageCode` | string | code string of the translation package |
**Returns:** *void*
---
## InvalidArgumentsError
URL: https://hyperformula.handsontable.com/docs/api/classes/invalidargumentserror
# InvalidArgumentsError
Error thrown when the given arguments are invalid
## Constructors
### constructor
\+ **new InvalidArgumentsError**(`expectedArguments`: string): *[InvalidArgumentsError](https://hyperformula.handsontable.com/docs/api/classes/invalidargumentserror.md)*
*Defined in [src/errors.ts:65](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/errors.ts#L65)*
**Parameters:**
Name | Type |
------ | ------ |
`expectedArguments` | string |
**Returns:** *[InvalidArgumentsError](https://hyperformula.handsontable.com/docs/api/classes/invalidargumentserror.md)*
## Properties
### message
• **message**: *string*
___
### name
• **name**: *string*
___
### stack
• **stack**? : *undefined | string*
___
### Error
▪ **Error**: *ErrorConstructor*
---
## HyperFormulaNS
URL: https://hyperformula.handsontable.com/docs/api/classes/hyperformulans
# HyperFormulaNS
Aggregate class for default export
## Other
### ArraySize
▪ **ArraySize**: *[ArraySize](https://hyperformula.handsontable.com/docs/api/classes/arraysize.md)* = ArraySize
*Defined in [src/index.ts:79](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/index.ts#L79)*
___
### CellError
▪ **CellError**: *[CellError](https://hyperformula.handsontable.com/docs/api/classes/cellerror.md)* = CellError
*Defined in [src/index.ts:67](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/index.ts#L67)*
___
### CellType
▪ **CellType**: *[CellType](https://hyperformula.handsontable.com/docs/api/enums/celltype.md)* = CellType
*Defined in [src/index.ts:68](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/index.ts#L68)*
___
### CellValueDetailedType
▪ **CellValueDetailedType**: *object* = CellValueDetailedType
*Defined in [src/index.ts:70](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/index.ts#L70)*
#### Type declaration:
___
### CellValueType
▪ **CellValueType**: *object* = CellValueType
*Defined in [src/index.ts:69](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/index.ts#L69)*
#### Type declaration:
___
### ConfigValueTooBigError
▪ **ConfigValueTooBigError**: *[ConfigValueTooBigError](https://hyperformula.handsontable.com/docs/api/classes/configvaluetoobigerror.md)* = ConfigValueTooBigError
*Defined in [src/index.ts:74](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/index.ts#L74)*
___
### ConfigValueTooSmallError
▪ **ConfigValueTooSmallError**: *[ConfigValueTooSmallError](https://hyperformula.handsontable.com/docs/api/classes/configvaluetoosmallerror.md)* = ConfigValueTooSmallError
*Defined in [src/index.ts:75](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/index.ts#L75)*
___
### DetailedCellError
▪ **DetailedCellError**: *[DetailedCellError](https://hyperformula.handsontable.com/docs/api/classes/detailedcellerror.md)* = DetailedCellError
*Defined in [src/index.ts:71](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/index.ts#L71)*
___
### EmptyValue
▪ **EmptyValue**: *symbol* = EmptyValue
*Defined in [src/index.ts:81](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/index.ts#L81)*
___
### ErrorType
▪ **ErrorType**: *[ErrorType](https://hyperformula.handsontable.com/docs/api/enums/errortype.md)* = ErrorType
*Defined in [src/index.ts:66](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/index.ts#L66)*
___
### EvaluationSuspendedError
▪ **EvaluationSuspendedError**: *[EvaluationSuspendedError](https://hyperformula.handsontable.com/docs/api/classes/evaluationsuspendederror.md)* = EvaluationSuspendedError
*Defined in [src/index.ts:76](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/index.ts#L76)*
___
### ExpectedOneOfValuesError
▪ **ExpectedOneOfValuesError**: *[ExpectedOneOfValuesError](https://hyperformula.handsontable.com/docs/api/classes/expectedoneofvalueserror.md)* = ExpectedOneOfValuesError
*Defined in [src/index.ts:77](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/index.ts#L77)*
___
### ExpectedValueOfTypeError
▪ **ExpectedValueOfTypeError**: *[ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/expectedvalueoftypeerror.md)* = ExpectedValueOfTypeError
*Defined in [src/index.ts:78](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/index.ts#L78)*
___
### ExportedCellChange
▪ **ExportedCellChange**: *[ExportedCellChange](https://hyperformula.handsontable.com/docs/api/classes/exportedcellchange.md)* = ExportedCellChange
*Defined in [src/index.ts:72](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/index.ts#L72)*
___
### ExportedNamedExpressionChange
▪ **ExportedNamedExpressionChange**: *[ExportedNamedExpressionChange](https://hyperformula.handsontable.com/docs/api/classes/exportednamedexpressionchange.md)* = ExportedNamedExpressionChange
*Defined in [src/index.ts:73](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/index.ts#L73)*
___
### FunctionArgumentType
▪ **FunctionArgumentType**: *FunctionArgumentType* = FunctionArgumentType
*Defined in [src/index.ts:83](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/index.ts#L83)*
___
### FunctionPlugin
▪ **FunctionPlugin**: *FunctionPlugin* = FunctionPlugin
*Defined in [src/index.ts:82](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/index.ts#L82)*
___
### FunctionPluginValidationError
▪ **FunctionPluginValidationError**: *[FunctionPluginValidationError](https://hyperformula.handsontable.com/docs/api/classes/functionpluginvalidationerror.md)* = FunctionPluginValidationError
*Defined in [src/index.ts:84](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/index.ts#L84)*
___
### HyperFormula
▪ **HyperFormula**: *[HyperFormula](https://hyperformula.handsontable.com/docs/api/classes/hyperformula.md)* = HyperFormula
*Defined in [src/index.ts:65](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/index.ts#L65)*
___
### InvalidAddressError
▪ **InvalidAddressError**: *[InvalidAddressError](https://hyperformula.handsontable.com/docs/api/classes/invalidaddresserror.md)* = InvalidAddressError
*Defined in [src/index.ts:85](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/index.ts#L85)*
___
### InvalidArgumentsError
▪ **InvalidArgumentsError**: *[InvalidArgumentsError](https://hyperformula.handsontable.com/docs/api/classes/invalidargumentserror.md)* = InvalidArgumentsError
*Defined in [src/index.ts:86](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/index.ts#L86)*
___
### LanguageAlreadyRegisteredError
▪ **LanguageAlreadyRegisteredError**: *[LanguageAlreadyRegisteredError](https://hyperformula.handsontable.com/docs/api/classes/languagealreadyregisterederror.md)* = LanguageAlreadyRegisteredError
*Defined in [src/index.ts:88](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/index.ts#L88)*
___
### LanguageNotRegisteredError
▪ **LanguageNotRegisteredError**: *[LanguageNotRegisteredError](https://hyperformula.handsontable.com/docs/api/classes/languagenotregisterederror.md)* = LanguageNotRegisteredError
*Defined in [src/index.ts:87](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/index.ts#L87)*
___
### MissingTranslationError
▪ **MissingTranslationError**: *[MissingTranslationError](https://hyperformula.handsontable.com/docs/api/classes/missingtranslationerror.md)* = MissingTranslationError
*Defined in [src/index.ts:89](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/index.ts#L89)*
___
### NamedExpressionDoesNotExistError
▪ **NamedExpressionDoesNotExistError**: *[NamedExpressionDoesNotExistError](https://hyperformula.handsontable.com/docs/api/classes/namedexpressiondoesnotexisterror.md)* = NamedExpressionDoesNotExistError
*Defined in [src/index.ts:90](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/index.ts#L90)*
___
### NamedExpressionNameIsAlreadyTakenError
▪ **NamedExpressionNameIsAlreadyTakenError**: *[NamedExpressionNameIsAlreadyTakenError](https://hyperformula.handsontable.com/docs/api/classes/namedexpressionnameisalreadytakenerror.md)* = NamedExpressionNameIsAlreadyTakenError
*Defined in [src/index.ts:91](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/index.ts#L91)*
___
### NamedExpressionNameIsInvalidError
▪ **NamedExpressionNameIsInvalidError**: *[NamedExpressionNameIsInvalidError](https://hyperformula.handsontable.com/docs/api/classes/namedexpressionnameisinvaliderror.md)* = NamedExpressionNameIsInvalidError
*Defined in [src/index.ts:92](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/index.ts#L92)*
___
### NoOperationToRedoError
▪ **NoOperationToRedoError**: *[NoOperationToRedoError](https://hyperformula.handsontable.com/docs/api/classes/nooperationtoredoerror.md)* = NoOperationToRedoError
*Defined in [src/index.ts:93](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/index.ts#L93)*
___
### NoOperationToUndoError
▪ **NoOperationToUndoError**: *[NoOperationToUndoError](https://hyperformula.handsontable.com/docs/api/classes/nooperationtoundoerror.md)* = NoOperationToUndoError
*Defined in [src/index.ts:94](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/index.ts#L94)*
___
### NoRelativeAddressesAllowedError
▪ **NoRelativeAddressesAllowedError**: *[NoRelativeAddressesAllowedError](https://hyperformula.handsontable.com/docs/api/classes/norelativeaddressesallowederror.md)* = NoRelativeAddressesAllowedError
*Defined in [src/index.ts:95](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/index.ts#L95)*
___
### NoSheetWithIdError
▪ **NoSheetWithIdError**: *[NoSheetWithIdError](https://hyperformula.handsontable.com/docs/api/classes/nosheetwithiderror.md)* = NoSheetWithIdError
*Defined in [src/index.ts:96](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/index.ts#L96)*
___
### NoSheetWithNameError
▪ **NoSheetWithNameError**: *[NoSheetWithNameError](https://hyperformula.handsontable.com/docs/api/classes/nosheetwithnameerror.md)* = NoSheetWithNameError
*Defined in [src/index.ts:97](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/index.ts#L97)*
___
### NotAFormulaError
▪ **NotAFormulaError**: *[NotAFormulaError](https://hyperformula.handsontable.com/docs/api/classes/notaformulaerror.md)* = NotAFormulaError
*Defined in [src/index.ts:98](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/index.ts#L98)*
___
### NothingToPasteError
▪ **NothingToPasteError**: *[NothingToPasteError](https://hyperformula.handsontable.com/docs/api/classes/nothingtopasteerror.md)* = NothingToPasteError
*Defined in [src/index.ts:99](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/index.ts#L99)*
___
### ProtectedFunctionTranslationError
▪ **ProtectedFunctionTranslationError**: *[ProtectedFunctionTranslationError](https://hyperformula.handsontable.com/docs/api/classes/protectedfunctiontranslationerror.md)* = ProtectedFunctionTranslationError
*Defined in [src/index.ts:100](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/index.ts#L100)*
___
### SheetNameAlreadyTakenError
▪ **SheetNameAlreadyTakenError**: *[SheetNameAlreadyTakenError](https://hyperformula.handsontable.com/docs/api/classes/sheetnamealreadytakenerror.md)* = SheetNameAlreadyTakenError
*Defined in [src/index.ts:101](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/index.ts#L101)*
___
### SheetSizeLimitExceededError
▪ **SheetSizeLimitExceededError**: *[SheetSizeLimitExceededError](https://hyperformula.handsontable.com/docs/api/classes/sheetsizelimitexceedederror.md)* = SheetSizeLimitExceededError
*Defined in [src/index.ts:102](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/index.ts#L102)*
___
### SimpleRangeValue
▪ **SimpleRangeValue**: *[SimpleRangeValue](https://hyperformula.handsontable.com/docs/api/classes/simplerangevalue.md)* = SimpleRangeValue
*Defined in [src/index.ts:80](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/index.ts#L80)*
___
### SourceLocationHasArrayError
▪ **SourceLocationHasArrayError**: *[SourceLocationHasArrayError](https://hyperformula.handsontable.com/docs/api/classes/sourcelocationhasarrayerror.md)* = SourceLocationHasArrayError
*Defined in [src/index.ts:103](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/index.ts#L103)*
___
### TargetLocationHasArrayError
▪ **TargetLocationHasArrayError**: *[TargetLocationHasArrayError](https://hyperformula.handsontable.com/docs/api/classes/targetlocationhasarrayerror.md)* = TargetLocationHasArrayError
*Defined in [src/index.ts:104](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/index.ts#L104)*
___
### UnableToParseError
▪ **UnableToParseError**: *[UnableToParseError](https://hyperformula.handsontable.com/docs/api/classes/unabletoparseerror.md)* = UnableToParseError
*Defined in [src/index.ts:105](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/index.ts#L105)*
___
## Static Properties
### buildDate
▪ **buildDate**: *string* = process.env.HT_BUILD_DATE as string
*Defined in [src/HyperFormula.ts:105](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L105)*
Latest build date.
___
### languages
▪ **languages**: *Record‹string, RawTranslationPackage›*
*Defined in [src/HyperFormula.ts:121](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L121)*
When using the UMD build, this property contains all available languages to use with the [registerLanguage](#registerlanguage) method.
For more information, see the [Localizing functions](https://hyperformula.handsontable.com/docs/guide/localizing-functions.md) guide.
___
### releaseDate
▪ **releaseDate**: *string* = process.env.HT_RELEASE_DATE as string
*Defined in [src/HyperFormula.ts:112](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L112)*
A release date.
___
### version
▪ **version**: *string* = process.env.HT_VERSION as string
*Defined in [src/HyperFormula.ts:98](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L98)*
Version of the HyperFormula.
## Static Accessors
### defaultConfig
• **get defaultConfig**(): *[ConfigParams](https://hyperformula.handsontable.com/docs/api/interfaces/configparams.md)*
*Defined in [src/HyperFormula.ts:160](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L160)*
Returns all of HyperFormula's default [configuration options](https://hyperformula.handsontable.com/docs/guide/configuration-options.md).
**`example`**
```js
// returns all default configuration options
const defaultConfig = HyperFormula.defaultConfig;
```
**`category`** Static Accessors
**Returns:** *[ConfigParams](https://hyperformula.handsontable.com/docs/api/interfaces/configparams.md)*
## Factories
### buildEmpty
▸ **buildEmpty**(`configInput`: Partial‹[ConfigParams](https://hyperformula.handsontable.com/docs/api/interfaces/configparams.md)›, `namedExpressions`: [SerializedNamedExpression](https://hyperformula.handsontable.com/docs/api/interfaces/serializednamedexpression.md)[]): *[HyperFormula](https://hyperformula.handsontable.com/docs/api/classes/hyperformula.md)*
*Defined in [src/HyperFormula.ts:353](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L353)*
Builds an empty engine instance.
Can be configured with the optional parameter that represents a [ConfigParams](https://hyperformula.handsontable.com/docs/api/interfaces/configparams.md).
If not specified the engine will be built with the default configuration.
**`example`**
```js
const namedExpressions = [
{
name: 'theUltimateQuestionOfLife',
expression: '=42',
},
];
// build with no initial data and with optional config parameter maxColumns
const hfInstance = HyperFormula.buildEmpty({ maxColumns: 1000 }, namedExpressions);
```
**Parameters:**
Name | Type | Default | Description |
------ | ------ | ------ | ------ |
`configInput` | Partial‹[ConfigParams](https://hyperformula.handsontable.com/docs/api/interfaces/configparams.md)› | {} | engine configuration |
`namedExpressions` | [SerializedNamedExpression](https://hyperformula.handsontable.com/docs/api/interfaces/serializednamedexpression.md)[] | [] | starting named expressions |
**Returns:** *[HyperFormula](https://hyperformula.handsontable.com/docs/api/classes/hyperformula.md)*
___
### buildFromArray
▸ **buildFromArray**(`sheet`: [Sheet](https://hyperformula.handsontable.com/docs/api/globals.md#sheet), `configInput`: Partial‹[ConfigParams](https://hyperformula.handsontable.com/docs/api/interfaces/configparams.md)›, `namedExpressions`: [SerializedNamedExpression](https://hyperformula.handsontable.com/docs/api/interfaces/serializednamedexpression.md)[]): *[HyperFormula](https://hyperformula.handsontable.com/docs/api/classes/hyperformula.md)*
*Defined in [src/HyperFormula.ts:279](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L279)*
Builds the engine for a sheet from a two-dimensional array representation.
The engine is created with a single sheet.
Can be configured with the optional second parameter that represents a [ConfigParams](https://hyperformula.handsontable.com/docs/api/interfaces/configparams.md).
If not specified, the engine will be built with the default configuration.
**`throws`** [SheetSizeLimitExceededError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-sheetsizelimitexceedederror) when sheet size exceeds the limits
**`throws`** [InvalidArgumentsError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-invalidargumentserror) when sheet is not an array of arrays
**`throws`** [FunctionPluginValidationError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-functionpluginvalidationerror) when plugin class definition is not consistent with metadata
**`example`**
```js
// data represented as an array
const sheetData = [
['0', '=SUM(1, 2, 3)', '52'],
['=SUM(A1:C1)', '', '=A1'],
['2', '=SUM(A1:C1)', '=theUltimateQuestionOfLife'],
];
const namedExpressions = [
{
name: 'theUltimateQuestionOfLife',
expression: '=42',
},
];
// method with optional config parameter maxColumns
const hfInstance = HyperFormula.buildFromArray(sheetData, { maxColumns: 1000 }, namedExpressions);
```
**Parameters:**
Name | Type | Default | Description |
------ | ------ | ------ | ------ |
`sheet` | [Sheet](https://hyperformula.handsontable.com/docs/api/globals.md#sheet) | - | two-dimensional array representation of sheet |
`configInput` | Partial‹[ConfigParams](https://hyperformula.handsontable.com/docs/api/interfaces/configparams.md)› | {} | engine configuration |
`namedExpressions` | [SerializedNamedExpression](https://hyperformula.handsontable.com/docs/api/interfaces/serializednamedexpression.md)[] | [] | starting named expressions |
**Returns:** *[HyperFormula](https://hyperformula.handsontable.com/docs/api/classes/hyperformula.md)*
___
### buildFromSheets
▸ **buildFromSheets**(`sheets`: [Sheets](https://hyperformula.handsontable.com/docs/api/globals.md#sheets), `configInput`: Partial‹[ConfigParams](https://hyperformula.handsontable.com/docs/api/interfaces/configparams.md)›, `namedExpressions`: [SerializedNamedExpression](https://hyperformula.handsontable.com/docs/api/interfaces/serializednamedexpression.md)[]): *[HyperFormula](https://hyperformula.handsontable.com/docs/api/classes/hyperformula.md)*
*Defined in [src/HyperFormula.ts:326](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L326)*
Builds the engine from an object containing multiple sheets with names.
The engine is created with one or more sheets.
Can be configured with the optional second parameter that represents a [ConfigParams](https://hyperformula.handsontable.com/docs/api/interfaces/configparams.md).
If not specified the engine will be built with the default configuration.
**`throws`** [SheetSizeLimitExceededError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-sheetsizelimitexceedederror) when sheet size exceeds the limits
**`throws`** [InvalidArgumentsError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-invalidargumentserror) when any sheet is not an array of arrays
**`throws`** [FunctionPluginValidationError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-functionpluginvalidationerror) when plugin class definition is not consistent with metadata
**`example`**
```js
// data represented as an object with sheets: Sheet1 and Sheet2
const sheetData = {
'Sheet1': [
['1', '', '=Sheet2!$A1'],
['', '2', '=SUM(1, 2, 3)'],
['=Sheet2!$A2', '2', ''],
],
'Sheet2': [
['', '4', '=Sheet1!$B1'],
['', '8', '=SUM(9, 3, 3)'],
['=Sheet1!$B1', '2', '=theUltimateQuestionOfLife'],
],
};
const namedExpressions = [
{
name: 'theUltimateQuestionOfLife',
expression: '=42',
},
];
// method with optional config parameter useColumnIndex
const hfInstance = HyperFormula.buildFromSheets(sheetData, { useColumnIndex: true }, namedExpressions);
```
**Parameters:**
Name | Type | Default | Description |
------ | ------ | ------ | ------ |
`sheets` | [Sheets](https://hyperformula.handsontable.com/docs/api/globals.md#sheets) | - | object with sheets definition |
`configInput` | Partial‹[ConfigParams](https://hyperformula.handsontable.com/docs/api/interfaces/configparams.md)› | {} | engine configuration |
`namedExpressions` | [SerializedNamedExpression](https://hyperformula.handsontable.com/docs/api/interfaces/serializednamedexpression.md)[] | [] | starting named expressions |
**Returns:** *[HyperFormula](https://hyperformula.handsontable.com/docs/api/classes/hyperformula.md)*
___
## Instance
### destroy
▸ **destroy**(): *void*
*Defined in [src/HyperFormula.ts:4755](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L4755)*
Destroys instance of HyperFormula.
**`example`**
```js
// destroys the instance
hfInstance.destroy();
```
**Returns:** *void*
___
### getConfig
▸ **getConfig**(): *[ConfigParams](https://hyperformula.handsontable.com/docs/api/interfaces/configparams.md)*
*Defined in [src/HyperFormula.ts:1180](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L1180)*
Returns current configuration of the engine instance.
For more information, see the [Configuration options guide](https://hyperformula.handsontable.com/docs/guide/configuration-options.md).
**`example`**
```js
// should return all config metadata including default and those which were added
const hfConfig = hfInstance.getConfig();
```
**Returns:** *[ConfigParams](https://hyperformula.handsontable.com/docs/api/interfaces/configparams.md)*
___
### rebuildAndRecalculate
▸ **rebuildAndRecalculate**(): *void*
*Defined in [src/HyperFormula.ts:1194](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L1194)*
Rebuilds the HyperFormula instance preserving the current sheets data.
**`example`**
```js
hfInstance.rebuildAndRecalculate();
```
**Returns:** *void*
___
### updateConfig
▸ **updateConfig**(`newParams`: Partial‹[ConfigParams](https://hyperformula.handsontable.com/docs/api/interfaces/configparams.md)›): *void*
*Defined in [src/HyperFormula.ts:1157](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L1157)*
Updates the config with given new metadata. It is an expensive operation, as it might trigger rebuilding the engine and recalculation of all formulas.
For more information, see the [Configuration options guide](https://hyperformula.handsontable.com/docs/guide/configuration-options.md).
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-expectedvalueoftypeerror) when some parameters of config are of wrong type (e.g., currencySymbol)
**`throws`** [ConfigValueEmpty](https://hyperformula.handsontable.com/docs/api/classes/configvalueempty.md) when some parameters of config are of invalid value (e.g., currencySymbol)
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['1', '2'],
]);
// add a config param, for example maxColumns,
// you can check the configuration with getConfig method
hfInstance.updateConfig({ maxColumns: 1000 });
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`newParams` | Partial‹[ConfigParams](https://hyperformula.handsontable.com/docs/api/interfaces/configparams.md)› | configuration options to be updated or added |
**Returns:** *void*
___
## Sheets
### addSheet
▸ **addSheet**(`sheetName?`: undefined | string): *string*
*Defined in [src/HyperFormula.ts:2771](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L2771)*
Adds a new sheet to the HyperFormula instance. Returns given or autogenerated name of a new sheet.
Note that this method may trigger dependency graph recalculation.
**`fires`** [sheetAdded](https://hyperformula.handsontable.com/docs/api/interfaces/listeners.md#sheetadded) after the sheet was added
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-expectedvalueoftypeerror) if any of its basic type argument is of wrong type
**`throws`** [SheetNameAlreadyTakenError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-sheetnamealreadytakenerror) when sheet with a given name already exists
**`example`**
```js
const hfInstance = HyperFormula.buildFromSheets({
MySheet1: [ ['1'] ],
MySheet2: [ ['10'] ],
});
// should return 'MySheet3'
const nameProvided = hfInstance.addSheet('MySheet3');
// should return autogenerated 'Sheet4'
// because no name was provided and 3 other ones already exist
const generatedName = hfInstance.addSheet();
```
**Parameters:**
Name | Type |
------ | ------ |
`sheetName?` | undefined | string |
**Returns:** *string*
___
### clearSheet
▸ **clearSheet**(`sheetId`: number): *[ExportedChange](https://hyperformula.handsontable.com/docs/api/globals.md#exportedchange)[]*
*Defined in [src/HyperFormula.ts:2919](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L2919)*
Clears the sheet content. Double-checks if the sheet exists.
Returns [an array of cells whose values changed as a result of this operation](https://hyperformula.handsontable.com/docs/guide/basic-operations.md#changes-array).
Note that this method may trigger dependency graph recalculation.
**`fires`** [valuesUpdated](https://hyperformula.handsontable.com/docs/api/interfaces/listeners.md#valuesupdated) if recalculation was triggered by this change
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-expectedvalueoftypeerror) if any of its basic type argument is of wrong type
**`throws`** [NoSheetWithIdError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-nosheetwithiderror) when the given sheet ID does not exist
**`example`**
```js
const hfInstance = HyperFormula.buildFromSheets({
MySheet1: [ ['=SUM(MySheet2!A1:A2)'] ],
MySheet2: [ ['10'] ],
});
// should return a list of cells which values changed after the operation,
// their absolute addresses and new values, in this example it will return:
// [{
// address: { sheet: 0, col: 0, row: 0 },
// newValue: 0,
// }]
const changes = hfInstance.clearSheet(0);
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`sheetId` | number | sheet ID. |
**Returns:** *[ExportedChange](https://hyperformula.handsontable.com/docs/api/globals.md#exportedchange)[]*
___
### countSheets
▸ **countSheets**(): *number*
*Defined in [src/HyperFormula.ts:3608](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L3608)*
Returns the number of existing sheets.
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['1', '2'],
]);
// should return the number of sheets which is '1'
const sheetsCount = hfInstance.countSheets();
```
**Returns:** *number*
___
### doesSheetExist
▸ **doesSheetExist**(`sheetName`: string): *boolean*
*Defined in [src/HyperFormula.ts:3327](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L3327)*
Returns `true` whether sheet with a given name exists. The method accepts sheet name to be checked.
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-expectedvalueoftypeerror) if any of its basic type argument is of wrong type
**`example`**
```js
const hfInstance = HyperFormula.buildFromSheets({
MySheet1: [ ['1'] ],
MySheet2: [ ['10'] ],
});
// should return 'true' since 'MySheet1' exists
const sheetExist = hfInstance.doesSheetExist('MySheet1');
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`sheetName` | string | name of the sheet, case-insensitive. |
**Returns:** *boolean*
___
### getAllSheetsDimensions
▸ **getAllSheetsDimensions**(): *Record‹string, [SheetDimensions](https://hyperformula.handsontable.com/docs/api/globals.md#sheetdimensions)›*
*Defined in [src/HyperFormula.ts:1033](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L1033)*
Returns a map containing dimensions of all sheets for the engine instance represented as a key-value pairs where keys are sheet IDs and dimensions are returned as numbers, width and height respectively.
**`throws`** [NoSheetWithIdError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-nosheetwithiderror) when the given sheet ID does not exist
**`example`**
```js
const hfInstance = HyperFormula.buildFromSheets({
Sheet1: [
['1', '2', '=Sheet2!$A1'],
],
Sheet2: [
['3'],
['4'],
],
});
// should return the dimensions of all sheets:
// { Sheet1: { width: 3, height: 1 }, Sheet2: { width: 1, height: 2 } }
const allSheetsDimensions = hfInstance.getAllSheetsDimensions();
```
**Returns:** *Record‹string, [SheetDimensions](https://hyperformula.handsontable.com/docs/api/globals.md#sheetdimensions)›*
___
### getAllSheetsFormulas
▸ **getAllSheetsFormulas**(): *Record‹string, (string | undefined)[][]›*
*Defined in [src/HyperFormula.ts:1104](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L1104)*
Returns formulas of all sheets in a form of an object which property keys are strings and values are 2D arrays of strings or possibly `undefined` when the call does not contain a formula.
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['1', '2', '=A1+10'],
]);
// should return only formulas: { Sheet1: [ [ undefined, undefined, '=A1+10' ] ] }
const allSheetsFormulas = hfInstance.getAllSheetsFormulas();
```
**Returns:** *Record‹string, (string | undefined)[][]›*
___
### getAllSheetsSerialized
▸ **getAllSheetsSerialized**(): *Record‹string, [RawCellContent](https://hyperformula.handsontable.com/docs/api/globals.md#rawcellcontent)[][]›*
*Defined in [src/HyperFormula.ts:1129](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L1129)*
Returns formulas or values of all sheets in a form of an object which property keys are strings and values are 2D arrays of [RawCellContent](https://hyperformula.handsontable.com/docs/api/globals.md#rawcellcontent).
Each non-formula cell is serialized to the exact value it was set with, preserving its type.
For example, a cell set with the string `'1'` is serialized as the string `'1'`, while a cell set with the number `1` is serialized as the number `1`.
**`throws`** [EvaluationSuspendedError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-evaluationsuspendederror) when the evaluation is suspended
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['1', 2, '=A1+10'],
]);
// should return all sheets serialized content: { Sheet1: [ [ '1', 2, '=A1+10' ] ] }
// note: the string '1' stays a string and the number 2 stays a number
const allSheetsSerialized = hfInstance.getAllSheetsSerialized();
```
**Returns:** *Record‹string, [RawCellContent](https://hyperformula.handsontable.com/docs/api/globals.md#rawcellcontent)[][]›*
___
### getAllSheetsValues
▸ **getAllSheetsValues**(): *Record‹string, [CellValue](https://hyperformula.handsontable.com/docs/api/globals.md#cellvalue)[][]›*
*Defined in [src/HyperFormula.ts:1085](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L1085)*
Returns values of all sheets in a form of an object which property keys are strings and values are 2D arrays of [CellValue](https://hyperformula.handsontable.com/docs/api/globals.md#cellvalue).
**`throws`** [EvaluationSuspendedError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-evaluationsuspendederror) when the evaluation is suspended
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['1', '=A1+10', '3'],
]);
// should return all sheets values: { Sheet1: [ [ 1, 11, 3 ] ] }
const allSheetsValues = hfInstance.getAllSheetsValues();
```
**Returns:** *Record‹string, [CellValue](https://hyperformula.handsontable.com/docs/api/globals.md#cellvalue)[][]›*
___
### getSheetDimensions
▸ **getSheetDimensions**(`sheetId`: number): *[SheetDimensions](https://hyperformula.handsontable.com/docs/api/globals.md#sheetdimensions)*
*Defined in [src/HyperFormula.ts:1060](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L1060)*
Returns dimensions of a specified sheet.
The sheet dimensions is represented with numbers: width and height.
Note: Due to the memory optimizations, some of the empty bottom rows and rightmost columns are not counted to the dimensions.
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-expectedvalueoftypeerror) if any of its basic type argument is of wrong type
**`throws`** [NoSheetWithIdError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-nosheetwithiderror) when the given sheet ID does not exist
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['1', '2', '=Sheet2!$A1'],
]);
// should return provided sheet's dimensions: { width: 3, height: 1 }
const sheetDimensions = hfInstance.getSheetDimensions(0);
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`sheetId` | number | sheet ID number |
**Returns:** *[SheetDimensions](https://hyperformula.handsontable.com/docs/api/globals.md#sheetdimensions)*
___
### getSheetFormulas
▸ **getSheetFormulas**(`sheetId`: number): *(string | undefined)[][]*
*Defined in [src/HyperFormula.ts:970](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L970)*
Returns an array with normalized formula strings from [Sheet](https://hyperformula.handsontable.com/docs/api/globals.md#sheet) or `undefined` for a cells that have no value.
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-expectedvalueoftypeerror) if any of its basic type argument is of wrong type
**`throws`** [NoSheetWithIdError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-nosheetwithiderror) when the given sheet ID does not exist
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['0', '=SUM(1, 2, 3)', '=A1'],
['1', '=TEXT(A2, "0.0%")', '=C1'],
['2', '=SUM(A1:C1)', '=C1'],
]);
// should return all formulas of a sheet:
// [
// [undefined, '=SUM(1, 2, 3)', '=A1'],
// [undefined, '=TEXT(A2, "0.0%")', '=C1'],
// [undefined, '=SUM(A1:C1)', '=C1'],
// ];
const sheetFormulas = hfInstance.getSheetFormulas(0);
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`sheetId` | number | sheet ID number |
**Returns:** *(string | undefined)[][]*
___
### getSheetId
▸ **getSheetId**(`sheetName`: string): *number | undefined*
*Defined in [src/HyperFormula.ts:3302](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L3302)*
Returns a unique sheet ID assigned to the sheet with a given name or `undefined` if the sheet does not exist.
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-expectedvalueoftypeerror) if any of its basic type argument is of wrong type
**`example`**
```js
const hfInstance = HyperFormula.buildFromSheets({
MySheet1: [ ['1'] ],
MySheet2: [ ['10'] ],
});
// should return '0' because 'MySheet1' is of ID '0'
const sheetID = hfInstance.getSheetId('MySheet1');
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`sheetName` | string | name of the sheet, for which we want to retrieve ID, case-insensitive. |
**Returns:** *number | undefined*
___
### getSheetName
▸ **getSheetName**(`sheetId`: number): *string | undefined*
*Defined in [src/HyperFormula.ts:3256](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L3256)*
Returns a unique sheet name assigned to the sheet of a given ID or `undefined` if the there is no sheet with a given ID.
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-expectedvalueoftypeerror) if any of its basic type argument is of wrong type
**`example`**
```js
const hfInstance = HyperFormula.buildFromSheets({
MySheet1: [ ['1'] ],
MySheet2: [ ['10'] ],
});
// should return 'MySheet2' as this sheet is the second one
const sheetName = hfInstance.getSheetName(1);
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`sheetId` | number | ID of the sheet, for which we want to retrieve name |
**Returns:** *string | undefined*
___
### getSheetNames
▸ **getSheetNames**(): *string[]*
*Defined in [src/HyperFormula.ts:3278](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L3278)*
List all sheet names.
Returns an array of sheet names as strings.
**`example`**
```js
const hfInstance = HyperFormula.buildFromSheets({
MySheet1: [ ['1'] ],
MySheet2: [ ['10'] ],
});
// should return all sheets names: ['MySheet1', 'MySheet2']
const sheetNames = hfInstance.getSheetNames();
```
**Returns:** *string[]*
___
### getSheetSerialized
▸ **getSheetSerialized**(`sheetId`: number): *[RawCellContent](https://hyperformula.handsontable.com/docs/api/globals.md#rawcellcontent)[][]*
*Defined in [src/HyperFormula.ts:1003](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L1003)*
Returns an array of arrays of [RawCellContent](https://hyperformula.handsontable.com/docs/api/globals.md#rawcellcontent) with serialized content of cells from [Sheet](https://hyperformula.handsontable.com/docs/api/globals.md#sheet), either a cell formula or an explicit value.
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-expectedvalueoftypeerror) if any of its basic type argument is of wrong type
**`throws`** [EvaluationSuspendedError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-evaluationsuspendederror) when the evaluation is suspended
**`throws`** [NoSheetWithIdError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-nosheetwithiderror) when the given sheet ID does not exist
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['0', '=SUM(1, 2, 3)', '=A1'],
['1', '=TEXT(A2, "0.0%")', '=C1'],
['2', '=SUM(A1:C1)', '=C1'],
]);
// should return:
// [
// ['0', '=SUM(1, 2, 3)', '=A1'],
// ['1', '=TEXT(A2, "0.0%")', '=C1'],
// ['2', '=SUM(A1:C1)', '=C1'],
// ];
const serializedContent = hfInstance.getSheetSerialized(0);
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`sheetId` | number | sheet ID number |
**Returns:** *[RawCellContent](https://hyperformula.handsontable.com/docs/api/globals.md#rawcellcontent)[][]*
___
### getSheetValues
▸ **getSheetValues**(`sheetId`: number): *[CellValue](https://hyperformula.handsontable.com/docs/api/globals.md#cellvalue)[][]*
*Defined in [src/HyperFormula.ts:937](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L937)*
Returns an array of arrays of [CellValue](https://hyperformula.handsontable.com/docs/api/globals.md#cellvalue) with values of all cells from [Sheet](https://hyperformula.handsontable.com/docs/api/globals.md#sheet).
Applies rounding and post-processing.
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-expectedvalueoftypeerror) if any of its basic type argument is of wrong type
**`throws`** [NoSheetWithIdError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-nosheetwithiderror) when the given sheet ID does not exist
**`throws`** [EvaluationSuspendedError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-evaluationsuspendederror) when the evaluation is suspended
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['0', '=SUM(1, 2, 3)', '=A1'],
['1', '=TEXT(A2, "0.0%")', '=C1'],
['2', '=SUM(A1:C1)', '=C1'],
]);
// should return all values of a sheet: [[0, 6, 0], [1, '1.0%', 0], [2, 6, 0]]
const sheetValues = hfInstance.getSheetValues(0);
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`sheetId` | number | sheet ID number |
**Returns:** *[CellValue](https://hyperformula.handsontable.com/docs/api/globals.md#cellvalue)[][]*
___
### isItPossibleToAddSheet
▸ **isItPossibleToAddSheet**(`sheetName`: string): *boolean*
*Defined in [src/HyperFormula.ts:2732](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L2732)*
Returns information whether it is possible to add a sheet to the engine.
Checks against particular rules to ascertain that addSheet can be called.
If returns `true`, doing [addSheet](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#addsheet) operation won't throw any errors, and it is possible to add sheet with provided name.
Returns `false` if the chosen name is already used.
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-expectedvalueoftypeerror) if any of its basic type argument is of wrong type
**`example`**
```js
const hfInstance = HyperFormula.buildFromSheets({
MySheet1: [ ['1'] ],
MySheet2: [ ['10'] ],
});
// should return 'false' because 'MySheet2' already exists
const isAddable = hfInstance.isItPossibleToAddSheet('MySheet2');
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`sheetName` | string | sheet name, case-insensitive |
**Returns:** *boolean*
___
### isItPossibleToClearSheet
▸ **isItPossibleToClearSheet**(`sheetId`: number): *boolean*
*Defined in [src/HyperFormula.ts:2877](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L2877)*
Returns information whether it is possible to clear a specified sheet.
If returns `true`, doing [clearSheet](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#clearsheet) operation won't throw any errors, provided sheet exists and its content can be cleared.
Returns `false` otherwise
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-expectedvalueoftypeerror) if any of its basic type argument is of wrong type
**`example`**
```js
const hfInstance = HyperFormula.buildFromSheets({
MySheet1: [ ['1'] ],
MySheet2: [ ['10'] ],
});
// should return 'true' because 'MySheet2' exists and can be cleared
const isClearable = hfInstance.isItPossibleToClearSheet(1);
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`sheetId` | number | sheet ID. |
**Returns:** *boolean*
___
### isItPossibleToRemoveSheet
▸ **isItPossibleToRemoveSheet**(`sheetId`: number): *boolean*
*Defined in [src/HyperFormula.ts:2803](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L2803)*
Returns information whether it is possible to remove sheet for the engine.
Returns `true` if the provided sheet exists, and therefore it can be removed, doing [removeSheet](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#removesheet) operation won't throw any errors.
Returns `false` otherwise
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-expectedvalueoftypeerror) if any of its basic type argument is of wrong type
**`example`**
```js
const hfInstance = HyperFormula.buildFromSheets({
MySheet1: [ ['1'] ],
MySheet2: [ ['10'] ],
});
// should return 'true' because sheet with ID 1 exists and is removable
const isRemovable = hfInstance.isItPossibleToRemoveSheet(1);
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`sheetId` | number | sheet ID. |
**Returns:** *boolean*
___
### isItPossibleToRenameSheet
▸ **isItPossibleToRenameSheet**(`sheetId`: number, `newName`: string): *boolean*
*Defined in [src/HyperFormula.ts:3635](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L3635)*
Returns information whether it is possible to rename sheet.
Returns `true` if the sheet with provided id exists and new name is available
Returns `false` if sheet cannot be renamed
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-expectedvalueoftypeerror) if any of its basic type argument is of wrong type
**`example`**
```js
const hfInstance = HyperFormula.buildFromSheets({
MySheet1: [ ['1'] ],
MySheet2: [ ['10'] ],
});
// returns true
hfInstance.isItPossibleToRenameSheet(0, 'MySheet0');
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`sheetId` | number | a sheet number |
`newName` | string | a name of the sheet to be given |
**Returns:** *boolean*
___
### isItPossibleToReplaceSheetContent
▸ **isItPossibleToReplaceSheetContent**(`sheetId`: number, `values`: [RawCellContent](https://hyperformula.handsontable.com/docs/api/globals.md#rawcellcontent)[][]): *boolean*
*Defined in [src/HyperFormula.ts:2949](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L2949)*
Returns information whether it is possible to replace the sheet content.
If returns `true`, doing [setSheetContent](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#setsheetcontent) operation won't throw any errors, the provided sheet exists and then its content can be replaced.
Returns `false` otherwise
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-expectedvalueoftypeerror) if any of its basic type argument is of wrong type
**`example`**
```js
const hfInstance = HyperFormula.buildFromSheets({
MySheet1: [ ['1'] ],
MySheet2: [ ['10'] ],
});
// should return 'true' because sheet of ID 0 exists
// and the provided content can be placed in this sheet
const isReplaceable = hfInstance.isItPossibleToReplaceSheetContent(0, [['50'], ['60']]);
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`sheetId` | number | sheet ID. |
`values` | [RawCellContent](https://hyperformula.handsontable.com/docs/api/globals.md#rawcellcontent)[][] | array of new values |
**Returns:** *boolean*
___
### removeSheet
▸ **removeSheet**(`sheetId`: number): *[ExportedChange](https://hyperformula.handsontable.com/docs/api/globals.md#exportedchange)[]*
*Defined in [src/HyperFormula.ts:2846](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L2846)*
Removes a sheet
Returns [an array of cells whose values changed as a result of this operation](https://hyperformula.handsontable.com/docs/guide/basic-operations.md#changes-array).
Note that this method may trigger dependency graph recalculation.
**`fires`** [sheetRemoved](https://hyperformula.handsontable.com/docs/api/interfaces/listeners.md#sheetremoved) after the sheet was removed
**`fires`** [valuesUpdated](https://hyperformula.handsontable.com/docs/api/interfaces/listeners.md#valuesupdated) if recalculation was triggered by this change
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-expectedvalueoftypeerror) if any of its basic type argument is of wrong type
**`throws`** [NoSheetWithIdError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-nosheetwithiderror) when the given sheet ID does not exist
**`example`**
```js
const hfInstance = HyperFormula.buildFromSheets({
MySheet1: [ ['=SUM(MySheet2!A1:A2)'] ],
MySheet2: [ ['10'] ],
});
// should return a list of cells which values changed after the operation,
// their absolute addresses and new values, in this example it will return:
// [{
// address: { sheet: 0, col: 0, row: 0 },
// newValue: { error: [CellError], value: '#REF!' },
// }]
const changes = hfInstance.removeSheet(1);
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`sheetId` | number | sheet ID. |
**Returns:** *[ExportedChange](https://hyperformula.handsontable.com/docs/api/globals.md#exportedchange)[]*
___
### renameSheet
▸ **renameSheet**(`sheetId`: number, `newName`: string): *void*
*Defined in [src/HyperFormula.ts:3673](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L3673)*
Renames a specified sheet.
Note that this method may trigger dependency graph recalculation.
**`fires`** [sheetRenamed](https://hyperformula.handsontable.com/docs/api/interfaces/listeners.md#sheetrenamed) after the sheet was renamed
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-expectedvalueoftypeerror) if any of its basic type argument is of wrong type
**`throws`** [NoSheetWithIdError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-nosheetwithiderror) when the given sheet ID does not exist
**`throws`** [SheetNameAlreadyTakenError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-sheetnamealreadytakenerror) when the provided sheet name already exists
**`example`**
```js
const hfInstance = HyperFormula.buildFromSheets({
MySheet1: [ ['1'] ],
MySheet2: [ ['10'] ],
});
// renames the sheet 'MySheet1'
hfInstance.renameSheet(0, 'MySheet0');
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`sheetId` | number | a sheet ID |
`newName` | string | a name of the sheet to be given, if is the same as the old one the method does nothing |
**Returns:** *void*
___
### setSheetContent
▸ **setSheetContent**(`sheetId`: number, `values`: [RawCellContent](https://hyperformula.handsontable.com/docs/api/globals.md#rawcellcontent)[][]): *[ExportedChange](https://hyperformula.handsontable.com/docs/api/globals.md#exportedchange)[]*
*Defined in [src/HyperFormula.ts:2986](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L2986)*
Replaces the sheet content with new values.
Returns [an array of cells whose values changed as a result of this operation](https://hyperformula.handsontable.com/docs/guide/basic-operations.md#changes-array).
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-expectedvalueoftypeerror) if any of its basic type argument is of wrong type
**`throws`** [NoSheetWithIdError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-nosheetwithiderror) when the given sheet ID does not exist
**`throws`** [InvalidArgumentsError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-invalidargumentserror) when values argument is not an array of arrays
**`example`**
```js
const hfInstance = HyperFormula.buildFromSheets({
MySheet1: [ ['1'] ],
MySheet2: [ ['10'] ],
});
// should return a list of cells which values changed after the operation,
// their absolute addresses and new values
const changes = hfInstance.setSheetContent(0, [['50'], ['60']]);
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`sheetId` | number | sheet ID. |
`values` | [RawCellContent](https://hyperformula.handsontable.com/docs/api/globals.md#rawcellcontent)[][] | array of new values |
**Returns:** *[ExportedChange](https://hyperformula.handsontable.com/docs/api/globals.md#exportedchange)[]*
___
## Ranges
### getFillRangeData
▸ **getFillRangeData**(`source`: [SimpleCellRange](https://hyperformula.handsontable.com/docs/api/interfaces/simplecellrange.md), `target`: [SimpleCellRange](https://hyperformula.handsontable.com/docs/api/interfaces/simplecellrange.md), `offsetsFromTarget`: boolean): *[RawCellContent](https://hyperformula.handsontable.com/docs/api/globals.md#rawcellcontent)[][]*
*Defined in [src/HyperFormula.ts:2688](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L2688)*
Returns values to fill target range using source range, with properly extending the range using wrap-around heuristic.
**`throws`** [EvaluationSuspendedError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-evaluationsuspendederror) when the evaluation is suspended
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-expectedvalueoftypeerror) if source or target are of wrong type
**`throws`** [SheetsNotEqual](https://hyperformula.handsontable.com/docs/api/classes/sheetsnotequal.md) if range provided has distinct sheet numbers for start and end
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([[1, '=A1'], ['=$A$1', '2']]);
// should return [['2', '=$A$1', '2'], ['=A3', 1, '=C3'], ['2', '=$A$1', '2']]
hfInstance.getFillRangeData( {start: {sheet: 0, row: 0, col: 0}, end: {sheet: 0, row: 1, col: 1}},
{start: {sheet: 0, row: 1, col: 1}, end: {sheet: 0, row: 3, col: 3}});
```
**Parameters:**
Name | Type | Default | Description |
------ | ------ | ------ | ------ |
`source` | [SimpleCellRange](https://hyperformula.handsontable.com/docs/api/interfaces/simplecellrange.md) | - | of data |
`target` | [SimpleCellRange](https://hyperformula.handsontable.com/docs/api/interfaces/simplecellrange.md) | - | range where data is intended to be put |
`offsetsFromTarget` | boolean | false | if true, offsets are computed from target corner, otherwise from source corner |
**Returns:** *[RawCellContent](https://hyperformula.handsontable.com/docs/api/globals.md#rawcellcontent)[][]*
___
### getRangeFormulas
▸ **getRangeFormulas**(`source`: [SimpleCellRange](https://hyperformula.handsontable.com/docs/api/interfaces/simplecellrange.md)): *(string | undefined)[][]*
*Defined in [src/HyperFormula.ts:2615](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L2615)*
Returns cell formulas in given range.
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-expectedvalueoftypeerror) if source is of wrong type
**`throws`** [SheetsNotEqual](https://hyperformula.handsontable.com/docs/api/classes/sheetsnotequal.md) if range provided has distinct sheet numbers for start and end
**`throws`** [NoSheetWithIdError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-nosheetwithiderror) when the given sheet ID does not exist
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['=SUM(1, 2)', '2', '10'],
['5', '6', '7'],
['40', '30', '20'],
]);
// returns cell formulas of a given range only:
// [ [ '=SUM(1, 2)', undefined ], [ undefined, undefined ] ]
const rangeFormulas = hfInstance.getRangeFormulas({ start: { sheet: 0, col: 0, row: 0 }, end: { sheet: 0, col: 1, row: 1 } });
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`source` | [SimpleCellRange](https://hyperformula.handsontable.com/docs/api/interfaces/simplecellrange.md) | rectangular range |
**Returns:** *(string | undefined)[][]*
___
### getRangeSerialized
▸ **getRangeSerialized**(`source`: [SimpleCellRange](https://hyperformula.handsontable.com/docs/api/interfaces/simplecellrange.md)): *[RawCellContent](https://hyperformula.handsontable.com/docs/api/globals.md#rawcellcontent)[][]*
*Defined in [src/HyperFormula.ts:2654](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L2654)*
Returns serialized cells in given range.
Each non-formula cell is serialized to the exact value it was set with, preserving its type
(e.g., a cell set with the string `'2'` is serialized as the string `'2'`, while a cell set with the number `2` is serialized as the number `2`).
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-expectedvalueoftypeerror) if source is of wrong type
**`throws`** [SheetsNotEqual](https://hyperformula.handsontable.com/docs/api/classes/sheetsnotequal.md) if range provided has distinct sheet numbers for start and end
**`throws`** [NoSheetWithIdError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-nosheetwithiderror) when the given sheet ID does not exist
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['=SUM(1, 2)', 2, 10],
[5, 6, 7],
[40, 30, 20],
]);
// should return serialized cell content for the given range:
// [ [ '=SUM(1, 2)', 2 ], [ 5, 6 ] ]
const rangeSerialized = hfInstance.getRangeSerialized({ start: { sheet: 0, col: 0, row: 0 }, end: { sheet: 0, col: 1, row: 1 } });
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`source` | [SimpleCellRange](https://hyperformula.handsontable.com/docs/api/interfaces/simplecellrange.md) | rectangular range |
**Returns:** *[RawCellContent](https://hyperformula.handsontable.com/docs/api/globals.md#rawcellcontent)[][]*
___
### getRangeValues
▸ **getRangeValues**(`source`: [SimpleCellRange](https://hyperformula.handsontable.com/docs/api/interfaces/simplecellrange.md)): *[CellValue](https://hyperformula.handsontable.com/docs/api/globals.md#cellvalue)[][]*
*Defined in [src/HyperFormula.ts:2579](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L2579)*
Returns the cell content of a given range in a [CellValue](https://hyperformula.handsontable.com/docs/api/globals.md#cellvalue)[][] format.
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-expectedvalueoftypeerror) if source is of wrong type
**`throws`** [SheetsNotEqual](https://hyperformula.handsontable.com/docs/api/classes/sheetsnotequal.md) if range provided has distinct sheet numbers for start and end
**`throws`** [NoSheetWithIdError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-nosheetwithiderror) when the given sheet ID does not exist
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['=SUM(1, 2)', '2', '10'],
['5', '6', '7'],
['40', '30', '20'],
]);
// returns calculated cells content: [ [ 3, 2 ], [ 5, 6 ] ]
const rangeValues = hfInstance.getRangeValues({ start: { sheet: 0, col: 0, row: 0 }, end: { sheet: 0, col: 1, row: 1 } });
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`source` | [SimpleCellRange](https://hyperformula.handsontable.com/docs/api/interfaces/simplecellrange.md) | rectangular range |
**Returns:** *[CellValue](https://hyperformula.handsontable.com/docs/api/globals.md#cellvalue)[][]*
___
## Rows
### addRows
▸ **addRows**(`sheetId`: number, ...`indexes`: [ColumnRowIndex](https://hyperformula.handsontable.com/docs/api/globals.md#columnrowindex)[]): *[ExportedChange](https://hyperformula.handsontable.com/docs/api/globals.md#exportedchange)[]*
*Defined in [src/HyperFormula.ts:1826](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L1826)*
Adds multiple rows into a specified position in a given sheet.
Does nothing if rows are outside effective sheet size.
Returns [an array of cells whose values changed as a result of this operation](https://hyperformula.handsontable.com/docs/guide/basic-operations.md#changes-array).
Note that this method may trigger dependency graph recalculation.
**`fires`** [valuesUpdated](https://hyperformula.handsontable.com/docs/api/interfaces/listeners.md#valuesupdated) if recalculation was triggered by this change
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-expectedvalueoftypeerror) if any of its basic type argument is of wrong type
**`throws`** [NoSheetWithIdError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-nosheetwithiderror) when the given sheet ID does not exist
**`throws`** [SheetSizeLimitExceededError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-sheetsizelimitexceedederror) when performing this operation would result in sheet size limits exceeding
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['1'],
['2'],
]);
// should return a list of cells which values changed after the operation,
// their absolute addresses and new values
const changes = hfInstance.addRows(0, [0, 1]);
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`sheetId` | number | sheet ID in which rows will be added |
`...indexes` | [ColumnRowIndex](https://hyperformula.handsontable.com/docs/api/globals.md#columnrowindex)[] | non-contiguous indexes with format [row, amount], where row is a row number above which the rows will be added |
**Returns:** *[ExportedChange](https://hyperformula.handsontable.com/docs/api/globals.md#exportedchange)[]*
___
### isItPossibleToAddRows
▸ **isItPossibleToAddRows**(`sheetId`: number, ...`indexes`: [ColumnRowIndex](https://hyperformula.handsontable.com/docs/api/globals.md#columnrowindex)[]): *boolean*
*Defined in [src/HyperFormula.ts:1784](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L1784)*
Returns information whether it is possible to add rows into a specified position in a given sheet.
Checks against particular rules to ascertain that addRows can be called.
If returns `true`, doing [addRows](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#addrows) operation won't throw any errors.
Returns `false` if adding rows would exceed the sheet size limit or given arguments are invalid.
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-expectedvalueoftypeerror) if any of its basic type argument is of wrong type
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['1', '2', '3'],
]);
// should return 'true' for this example,
// it is possible to add one row in the second row of sheet 0
const isAddable = hfInstance.isItPossibleToAddRows(0, [1, 1]);
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`sheetId` | number | sheet ID in which rows will be added |
`...indexes` | [ColumnRowIndex](https://hyperformula.handsontable.com/docs/api/globals.md#columnrowindex)[] | non-contiguous indexes with format [row, amount], where row is a row number above which the rows will be added |
**Returns:** *boolean*
___
### isItPossibleToMoveRows
▸ **isItPossibleToMoveRows**(`sheetId`: number, `startRow`: number, `numberOfRows`: number, `targetRow`: number): *boolean*
*Defined in [src/HyperFormula.ts:2181](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L2181)*
Returns information whether it is possible to move a particular number of rows to a specified position in a given sheet.
Checks against particular rules to ascertain that moveRows can be called.
If returns `true`, doing [moveRows](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#moverows) operation won't throw any errors.
Returns `false` if the operation might be disrupted and causes side effects by the fact that there is an array inside the selected rows, the target location includes an array or the provided address is invalid.
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-expectedvalueoftypeerror) if any of its basic type argument is of wrong type
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['1'],
['2'],
]);
// should return 'true' for this example
// it is possible to move one row from row 0 into row 2
const isMovable = hfInstance.isItPossibleToMoveRows(0, 0, 1, 2);
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`sheetId` | number | a sheet number in which the operation will be performed |
`startRow` | number | number of the first row to move |
`numberOfRows` | number | number of rows to move |
`targetRow` | number | row number before which rows will be moved |
**Returns:** *boolean*
___
### isItPossibleToRemoveRows
▸ **isItPossibleToRemoveRows**(`sheetId`: number, ...`indexes`: [ColumnRowIndex](https://hyperformula.handsontable.com/docs/api/globals.md#columnrowindex)[]): *boolean*
*Defined in [src/HyperFormula.ts:1857](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L1857)*
Returns information whether it is possible to remove rows from a specified position in a given sheet.
Checks against particular rules to ascertain that removeRows can be called.
If returns `true`, doing [removeRows](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#removerows) operation won't throw any errors.
Returns `false` if given arguments are invalid.
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-expectedvalueoftypeerror) if any of its basic type argument is of wrong type
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['1'],
['2'],
]);
// should return 'true' for this example
// it is possible to remove one row from row 1 of sheet 0
const isRemovable = hfInstance.isItPossibleToRemoveRows(0, [1, 1]);
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`sheetId` | number | sheet ID from which rows will be removed |
`...indexes` | [ColumnRowIndex](https://hyperformula.handsontable.com/docs/api/globals.md#columnrowindex)[] | non-contiguous indexes with format: [row, amount] |
**Returns:** *boolean*
___
### isItPossibleToSetRowOrder
▸ **isItPossibleToSetRowOrder**(`sheetId`: number, `newRowOrder`: number[]): *boolean*
*Defined in [src/HyperFormula.ts:1579](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L1579)*
Checks if it is possible to reorder rows of a sheet according to a permutation.
Parameter `newRowOrder` should have the form `[ newPositionForRow0, newPositionForRow1, newPositionForRow2, ... ]`,
i.e. the value at index `i` is the new position for the row that is currently at index `i`.
See [setRowOrder](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#setroworder) for details.
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-expectedvalueoftypeerror) if any of its basic type argument is of wrong type
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['A'],
['B'],
['C']
]);
// returns true
hfInstance.isItPossibleToSetRowOrder(0, [1, 2, 0]);
// returns false (array length must match the number of rows)
hfInstance.isItPossibleToSetRowOrder(0, [2]);
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`sheetId` | number | ID of a sheet to operate on |
`newRowOrder` | number[] | permutation of rows |
**Returns:** *boolean*
___
### isItPossibleToSwapRowIndexes
▸ **isItPossibleToSwapRowIndexes**(`sheetId`: number, `rowMapping`: [number, number][]): *boolean*
*Defined in [src/HyperFormula.ts:1492](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L1492)*
Checks if it is possible to reorder rows of a sheet according to a source-target mapping.
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-expectedvalueoftypeerror) if any of its basic type argument is of wrong type
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
[1],
[2],
[4, 5],
]);
// returns true
const isSwappable = hfInstance.isItPossibleToSwapRowIndexes(0, [[0, 2], [2, 0]]);
// returns false
const isSwappable = hfInstance.isItPossibleToSwapRowIndexes(0, [[0, 1]]);
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`sheetId` | number | ID of a sheet to operate on |
`rowMapping` | [number, number][] | array mapping original positions to final positions of rows |
**Returns:** *boolean*
___
### moveRows
▸ **moveRows**(`sheetId`: number, `startRow`: number, `numberOfRows`: number, `targetRow`: number): *[ExportedChange](https://hyperformula.handsontable.com/docs/api/globals.md#exportedchange)[]*
*Defined in [src/HyperFormula.ts:2228](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L2228)*
Moves a particular number of rows to a specified position in a given sheet.
Returns [an array of cells whose values changed as a result of this operation](https://hyperformula.handsontable.com/docs/guide/basic-operations.md#changes-array).
Note that this method may trigger dependency graph recalculation.
**`fires`** [valuesUpdated](https://hyperformula.handsontable.com/docs/api/interfaces/listeners.md#valuesupdated) if recalculation was triggered by this change
**`throws`** [NoSheetWithIdError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-nosheetwithiderror) when the given sheet ID does not exist
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-expectedvalueoftypeerror) if any of its basic type argument is of wrong type
**`throws`** [InvalidArgumentsError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-invalidargumentserror) when the given arguments are invalid
**`throws`** [SourceLocationHasArrayError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-sourcelocationhasarrayerror) when the source location has array inside - array cannot be moved
**`throws`** [TargetLocationHasArrayError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-targetlocationhasarrayerror) when the target location has array inside - cells cannot be replaced by the array
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['1'],
['2'],
]);
// should return a list of cells which values changed after the operation,
// their absolute addresses and new values
const changes = hfInstance.moveRows(0, 0, 1, 2);
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`sheetId` | number | a sheet number in which the operation will be performed |
`startRow` | number | number of the first row to move |
`numberOfRows` | number | number of rows to move |
`targetRow` | number | row number before which rows will be moved |
**Returns:** *[ExportedChange](https://hyperformula.handsontable.com/docs/api/globals.md#exportedchange)[]*
___
### removeRows
▸ **removeRows**(`sheetId`: number, ...`indexes`: [ColumnRowIndex](https://hyperformula.handsontable.com/docs/api/globals.md#columnrowindex)[]): *[ExportedChange](https://hyperformula.handsontable.com/docs/api/globals.md#exportedchange)[]*
*Defined in [src/HyperFormula.ts:1898](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L1898)*
Removes multiple rows from a specified position in a given sheet.
Does nothing if rows are outside the effective sheet size.
Returns [an array of cells whose values changed as a result of this operation](https://hyperformula.handsontable.com/docs/guide/basic-operations.md#changes-array).
Note that this method may trigger dependency graph recalculation.
**`fires`** [valuesUpdated](https://hyperformula.handsontable.com/docs/api/interfaces/listeners.md#valuesupdated) if recalculation was triggered by this change
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-expectedvalueoftypeerror) if any of its basic type argument is of wrong type
**`throws`** [InvalidArgumentsError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-invalidargumentserror) when the given arguments are invalid
**`throws`** [NoSheetWithIdError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-nosheetwithiderror) when the given sheet ID does not exist
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['1'],
['2'],
]);
// should return: [{ sheet: 0, col: 1, row: 2, value: null }] for this example
const changes = hfInstance.removeRows(0, [1, 1]);
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`sheetId` | number | sheet ID from which rows will be removed |
`...indexes` | [ColumnRowIndex](https://hyperformula.handsontable.com/docs/api/globals.md#columnrowindex)[] | non-contiguous indexes with format: [row, amount] |
**Returns:** *[ExportedChange](https://hyperformula.handsontable.com/docs/api/globals.md#exportedchange)[]*
___
### setRowOrder
▸ **setRowOrder**(`sheetId`: number, `newRowOrder`: number[]): *[ExportedChange](https://hyperformula.handsontable.com/docs/api/globals.md#exportedchange)[]*
*Defined in [src/HyperFormula.ts:1544](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L1544)*
Reorders rows of a sheet according to a permutation of 0-based indexes.
Parameter `newRowOrder` should have the form `[ newPositionForRow0, newPositionForRow1, newPositionForRow2, ... ]`.
In other words, the value at index `i` is the new position for the row that is currently at index `i`.
Note that this is the opposite of `[ previousPositionForRow0, previousPositionForRow1, ... ]`.
This method might be used to [sort the rows of a sheet](https://hyperformula.handsontable.com/docs/guide/sorting-data.md).
Returns [an array of cells whose values changed as a result of this operation](https://hyperformula.handsontable.com/docs/guide/basic-operations.md#changes-array).
Note: This method may trigger dependency graph recalculation.
**`fires`** [valuesUpdated](https://hyperformula.handsontable.com/docs/api/interfaces/listeners.md#valuesupdated) if recalculation was triggered by this change
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-expectedvalueoftypeerror) if any of its basic type argument is of wrong type
**`throws`** [NoSheetWithIdError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-nosheetwithiderror) when the given sheet ID does not exist
**`throws`** [InvalidArgumentsError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-invalidargumentserror) when rowMapping does not define correct row permutation for some subset of rows of the given sheet
**`throws`** [SourceLocationHasArrayError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-sourcelocationhasarrayerror) when the selected position has array inside
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['A'],
['B'],
['C']
]);
// Move 'A' to index 1, 'B' to index 2, and 'C' to index 0.
const newRowOrder = [1, 2, 0]; // [ newPosForA, newPosForB, newPosForC ]
const changes = hfInstance.setRowOrder(0, newRowOrder);
// Sheet after this operation: [['C'], ['A'], ['B']]
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`sheetId` | number | ID of a sheet to operate on |
`newRowOrder` | number[] | permutation of rows; array length must match the number of rows returned by [getSheetDimensions()](#getsheetdimensions) |
**Returns:** *[ExportedChange](https://hyperformula.handsontable.com/docs/api/globals.md#exportedchange)[]*
___
### swapRowIndexes
▸ **swapRowIndexes**(`sheetId`: number, `rowMapping`: [number, number][]): *[ExportedChange](https://hyperformula.handsontable.com/docs/api/globals.md#exportedchange)[]*
*Defined in [src/HyperFormula.ts:1461](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L1461)*
Reorders rows of a sheet according to a source-target mapping.
Returns [an array of cells whose values changed as a result of this operation](https://hyperformula.handsontable.com/docs/guide/basic-operations.md#changes-array).
Note that this method may trigger dependency graph recalculation.
**`fires`** [valuesUpdated](https://hyperformula.handsontable.com/docs/api/interfaces/listeners.md#valuesupdated) if recalculation was triggered by this change
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-expectedvalueoftypeerror) if any of its basic type argument is of wrong type
**`throws`** [NoSheetWithIdError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-nosheetwithiderror) when the given sheet ID does not exist
**`throws`** [InvalidArgumentsError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-invalidargumentserror) when rowMapping does not define correct row permutation for some subset of rows of the given sheet
**`throws`** [SourceLocationHasArrayError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-sourcelocationhasarrayerror) when the selected position has array inside
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
[1],
[2],
[4, 5],
]);
// should set swap rows 0 and 2 in place, returns:
// [{
// address: { sheet: 0, col: 0, row: 2 },
// newValue: 1,
// },
// {
// address: { sheet: 0, col: 1, row: 2 },
// newValue: null,
// },
// {
// address: { sheet: 0, col: 0, row: 0 },
// newValue: 4,
// },
// {
// address: { sheet: 0, col: 1, row: 0 },
// newValue: 5,
// }]
const changes = hfInstance.swapRowIndexes(0, [[0, 2], [2, 0]]);
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`sheetId` | number | ID of a sheet to operate on |
`rowMapping` | [number, number][] | array mapping original positions to final positions of rows |
**Returns:** *[ExportedChange](https://hyperformula.handsontable.com/docs/api/globals.md#exportedchange)[]*
___
## Columns
### addColumns
▸ **addColumns**(`sheetId`: number, ...`indexes`: [ColumnRowIndex](https://hyperformula.handsontable.com/docs/api/globals.md#columnrowindex)[]): *[ExportedChange](https://hyperformula.handsontable.com/docs/api/globals.md#exportedchange)[]*
*Defined in [src/HyperFormula.ts:1974](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L1974)*
Adds multiple columns into a specified position in a given sheet.
Does nothing if the columns are outside the effective sheet size.
Returns [an array of cells whose values changed as a result of this operation](https://hyperformula.handsontable.com/docs/guide/basic-operations.md#changes-array).
Note that this method may trigger dependency graph recalculation.
**`fires`** [valuesUpdated](https://hyperformula.handsontable.com/docs/api/interfaces/listeners.md#valuesupdated) if recalculation was triggered by this change
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-expectedvalueoftypeerror) if any of its basic type argument is of wrong type
**`throws`** [NoSheetWithIdError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-nosheetwithiderror) when the given sheet ID does not exist
**`throws`** [InvalidArgumentsError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-invalidargumentserror) when the given arguments are invalid
**`throws`** [SheetSizeLimitExceededError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-sheetsizelimitexceedederror) when performing this operation would result in sheet size limits exceeding
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['=RAND()', '42'],
]);
// should return a list of cells which values changed after the operation,
// their absolute addresses and new values, for this example:
// [{
// address: { sheet: 0, col: 1, row: 0 },
// newValue: 0.92754862796338,
// }]
const changes = hfInstance.addColumns(0, [0, 1]);
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`sheetId` | number | sheet ID in which columns will be added |
`...indexes` | [ColumnRowIndex](https://hyperformula.handsontable.com/docs/api/globals.md#columnrowindex)[] | non-contiguous indexes with format: [column, amount], where column is a column number from which new columns will be added |
**Returns:** *[ExportedChange](https://hyperformula.handsontable.com/docs/api/globals.md#exportedchange)[]*
___
### isItPossibleToAddColumns
▸ **isItPossibleToAddColumns**(`sheetId`: number, ...`indexes`: [ColumnRowIndex](https://hyperformula.handsontable.com/docs/api/globals.md#columnrowindex)[]): *boolean*
*Defined in [src/HyperFormula.ts:1928](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L1928)*
Returns information whether it is possible to add columns into a specified position in a given sheet.
Checks against particular rules to ascertain that addColumns can be called.
If returns `true`, doing [addColumns](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#addcolumns) operation won't throw any errors.
Returns `false` if adding columns would exceed the sheet size limit or given arguments are invalid.
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-expectedvalueoftypeerror) if any of its basic type argument is of wrong type
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['1', '2'],
]);
// should return 'true' for this example,
// it is possible to add 1 column in sheet 0, at column 1
const isAddable = hfInstance.isItPossibleToAddColumns(0, [1, 1]);
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`sheetId` | number | sheet ID in which columns will be added |
`...indexes` | [ColumnRowIndex](https://hyperformula.handsontable.com/docs/api/globals.md#columnrowindex)[] | non-contiguous indexes with format: [column, amount], where column is a column number from which new columns will be added |
**Returns:** *boolean*
___
### isItPossibleToMoveColumns
▸ **isItPossibleToMoveColumns**(`sheetId`: number, `startColumn`: number, `numberOfColumns`: number, `targetColumn`: number): *boolean*
*Defined in [src/HyperFormula.ts:2263](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L2263)*
Returns information whether it is possible to move a particular number of columns to a specified position in a given sheet.
Checks against particular rules to ascertain that moveColumns can be called.
If returns `true`, doing [moveColumns](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#movecolumns) operation won't throw any errors.
Returns `false` if the operation might be disrupted and causes side effects by the fact that there is an array inside the selected columns, the target location includes an array or the provided address is invalid.
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-expectedvalueoftypeerror) if any of its basic type argument is of wrong type
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['1', '2'],
]);
// should return 'true' for this example
// it is possible to move one column from column 1 into column 2 of sheet 0
const isMovable = hfInstance.isItPossibleToMoveColumns(0, 1, 1, 2);
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`sheetId` | number | a sheet number in which the operation will be performed |
`startColumn` | number | number of the first column to move |
`numberOfColumns` | number | number of columns to move |
`targetColumn` | number | column number before which columns will be moved |
**Returns:** *boolean*
___
### isItPossibleToRemoveColumns
▸ **isItPossibleToRemoveColumns**(`sheetId`: number, ...`indexes`: [ColumnRowIndex](https://hyperformula.handsontable.com/docs/api/globals.md#columnrowindex)[]): *boolean*
*Defined in [src/HyperFormula.ts:2004](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L2004)*
Returns information whether it is possible to remove columns from a specified position in a given sheet.
Checks against particular rules to ascertain that removeColumns can be called.
If returns `true`, doing [removeColumns](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#removecolumns) operation won't throw any errors.
Returns `false` if given arguments are invalid.
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-expectedvalueoftypeerror) if any of its basic type argument is of wrong type
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['1', '2'],
]);
// should return 'true' for this example
// it is possible to remove one column, in place of the second column of sheet 0
const isRemovable = hfInstance.isItPossibleToRemoveColumns(0, [1, 1]);
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`sheetId` | number | sheet ID from which columns will be removed |
`...indexes` | [ColumnRowIndex](https://hyperformula.handsontable.com/docs/api/globals.md#columnrowindex)[] | non-contiguous indexes with format [column, amount] |
**Returns:** *boolean*
___
### isItPossibleToSetColumnOrder
▸ **isItPossibleToSetColumnOrder**(`sheetId`: number, `newColumnOrder`: number[]): *boolean*
*Defined in [src/HyperFormula.ts:1748](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L1748)*
Checks if it is possible to reorder columns of a sheet according to a permutation.
Parameter `newColumnOrder` should have the form `[ newPositionForColumn0, newPositionForColumn1, newPositionForColumn2, ... ]`,
i.e. the value at index `i` is the new position for the column that is currently at index `i`.
See [setColumnOrder](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#setcolumnorder) for details.
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-expectedvalueoftypeerror) if any of its basic type argument is of wrong type
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['A', 'B', 'C']
]);
// returns true
hfInstance.isItPossibleToSetColumnOrder(0, [1, 2, 0]);
// returns false (array length must match the number of columns)
hfInstance.isItPossibleToSetColumnOrder(0, [1]);
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`sheetId` | number | ID of a sheet to operate on |
`newColumnOrder` | number[] | permutation of columns |
**Returns:** *boolean*
___
### isItPossibleToSwapColumnIndexes
▸ **isItPossibleToSwapColumnIndexes**(`sheetId`: number, `columnMapping`: [number, number][]): *boolean*
*Defined in [src/HyperFormula.ts:1665](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L1665)*
Checks if it is possible to reorder columns of a sheet according to a source-target mapping.
**`fires`** [valuesUpdated](https://hyperformula.handsontable.com/docs/api/interfaces/listeners.md#valuesupdated) if recalculation was triggered by this change
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-expectedvalueoftypeerror) if any of its basic type argument is of wrong type
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
[1, 2, 4],
[5]
]);
// returns true
hfInstance.isItPossibleToSwapColumnIndexes(0, [[0, 2], [2, 0]]);
// returns false
hfInstance.isItPossibleToSwapColumnIndexes(0, [[0, 1]]);
```
**Parameters:**
Name | Type |
------ | ------ |
`sheetId` | number |
`columnMapping` | [number, number][] |
**Returns:** *boolean*
___
### moveColumns
▸ **moveColumns**(`sheetId`: number, `startColumn`: number, `numberOfColumns`: number, `targetColumn`: number): *[ExportedChange](https://hyperformula.handsontable.com/docs/api/globals.md#exportedchange)[]*
*Defined in [src/HyperFormula.ts:2316](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L2316)*
Moves a particular number of columns to a specified position in a given sheet.
Returns [an array of cells whose values changed as a result of this operation](https://hyperformula.handsontable.com/docs/guide/basic-operations.md#changes-array).
Note that this method may trigger dependency graph recalculation.
**`fires`** [valuesUpdated](https://hyperformula.handsontable.com/docs/api/interfaces/listeners.md#valuesupdated) if recalculation was triggered by this change
**`throws`** [NoSheetWithIdError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-nosheetwithiderror) when the given sheet ID does not exist
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-expectedvalueoftypeerror) if any of its basic type argument is of wrong type
**`throws`** [InvalidArgumentsError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-invalidargumentserror) when the given arguments are invalid
**`throws`** [SourceLocationHasArrayError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-sourcelocationhasarrayerror) when the source location has array inside - array cannot be moved
**`throws`** [TargetLocationHasArrayError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-targetlocationhasarrayerror) when the target location has array inside - cells cannot be replaced by the array
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['1', '2', '3', '=RAND()', '=SUM(A1:C1)'],
]);
// should return a list of cells which values changed after the operation,
// their absolute addresses and new values, for this example:
// [{
// address: { sheet: 0, col: 1, row: 0 },
// newValue: 0.16210054671639,
// }, {
// address: { sheet: 0, col: 4, row: 0 },
// newValue: 6.16210054671639,
// }]
const changes = hfInstance.moveColumns(0, 1, 1, 2);
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`sheetId` | number | a sheet number in which the operation will be performed |
`startColumn` | number | number of the first column to move |
`numberOfColumns` | number | number of columns to move |
`targetColumn` | number | column number before which columns will be moved |
**Returns:** *[ExportedChange](https://hyperformula.handsontable.com/docs/api/globals.md#exportedchange)[]*
___
### removeColumns
▸ **removeColumns**(`sheetId`: number, ...`indexes`: [ColumnRowIndex](https://hyperformula.handsontable.com/docs/api/globals.md#columnrowindex)[]): *[ExportedChange](https://hyperformula.handsontable.com/docs/api/globals.md#exportedchange)[]*
*Defined in [src/HyperFormula.ts:2049](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L2049)*
Removes multiple columns from a specified position in a given sheet.
Does nothing if columns are outside the effective sheet size.
Returns [an array of cells whose values changed as a result of this operation](https://hyperformula.handsontable.com/docs/guide/basic-operations.md#changes-array).
Note that this method may trigger dependency graph recalculation.
**`fires`** [valuesUpdated](https://hyperformula.handsontable.com/docs/api/interfaces/listeners.md#valuesupdated) if recalculation was triggered by this change
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-expectedvalueoftypeerror) if any of its basic type argument is of wrong type
**`throws`** [NoSheetWithIdError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-nosheetwithiderror) when the given sheet ID does not exist
**`throws`** [InvalidArgumentsError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-invalidargumentserror) when the given arguments are invalid
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['0', '=SUM(1, 2, 3)', '=A1'],
]);
// should return a list of cells which values changed after the operation,
// their absolute addresses and new values, in this example it will return:
// [{
// address: { sheet: 0, col: 1, row: 0 },
// newValue: { error: [CellError], value: '#REF!' },
// }]
const changes = hfInstance.removeColumns(0, [0, 1]);
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`sheetId` | number | sheet ID from which columns will be removed |
`...indexes` | [ColumnRowIndex](https://hyperformula.handsontable.com/docs/api/globals.md#columnrowindex)[] | non-contiguous indexes with format: [column, amount] |
**Returns:** *[ExportedChange](https://hyperformula.handsontable.com/docs/api/globals.md#exportedchange)[]*
___
### setColumnOrder
▸ **setColumnOrder**(`sheetId`: number, `newColumnOrder`: number[]): *[ExportedChange](https://hyperformula.handsontable.com/docs/api/globals.md#exportedchange)[]*
*Defined in [src/HyperFormula.ts:1715](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L1715)*
Reorders columns of a sheet according to a permutation of 0-based indexes.
Parameter `newColumnOrder` should have the form `[ newPositionForColumn0, newPositionForColumn1, newPositionForColumn2, ... ]`.
In other words, the value at index `i` is the new position for the column that is currently at index `i`.
Note that this is the opposite of `[ previousPositionForColumn0, previousPositionForColumn1, ... ]`.
This method might be used to [sort the columns of a sheet](https://hyperformula.handsontable.com/docs/guide/sorting-data.md).
Returns [an array of cells whose values changed as a result of this operation](https://hyperformula.handsontable.com/docs/guide/basic-operations.md#changes-array).
Note: This method may trigger dependency graph recalculation.
**`fires`** [valuesUpdated](https://hyperformula.handsontable.com/docs/api/interfaces/listeners.md#valuesupdated) if recalculation was triggered by this change
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-expectedvalueoftypeerror) if any of its basic type argument is of wrong type
**`throws`** [NoSheetWithIdError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-nosheetwithiderror) when the given sheet ID does not exist
**`throws`** [InvalidArgumentsError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-invalidargumentserror) when columnMapping does not define correct column permutation for some subset of columns of the given sheet
**`throws`** [SourceLocationHasArrayError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-sourcelocationhasarrayerror) when the selected position has array inside
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['A', 'B', 'C']
]);
// Move 'A' to index 1, 'B' to index 2, and 'C' to index 0.
const newColumnOrder = [1, 2, 0]; // [ newPosForA, newPosForB, newPosForC ]
const changes = hfInstance.setColumnOrder(0, newColumnOrder);
// Sheet after this operation: [['C', 'A', 'B']]
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`sheetId` | number | ID of a sheet to operate on |
`newColumnOrder` | number[] | permutation of columns; array length must match the number of columns returned by [getSheetDimensions()](#getsheetdimensions) |
**Returns:** *[ExportedChange](https://hyperformula.handsontable.com/docs/api/globals.md#exportedchange)[]*
___
### swapColumnIndexes
▸ **swapColumnIndexes**(`sheetId`: number, `columnMapping`: [number, number][]): *[ExportedChange](https://hyperformula.handsontable.com/docs/api/globals.md#exportedchange)[]*
*Defined in [src/HyperFormula.ts:1637](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L1637)*
Reorders columns of a sheet according to a source-target mapping.
Returns [an array of cells whose values changed as a result of this operation](https://hyperformula.handsontable.com/docs/guide/basic-operations.md#changes-array).
Note that this method may trigger dependency graph recalculation.
**`fires`** [valuesUpdated](https://hyperformula.handsontable.com/docs/api/interfaces/listeners.md#valuesupdated) if recalculation was triggered by this change
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-expectedvalueoftypeerror) if any of its basic type argument is of wrong type
**`throws`** [NoSheetWithIdError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-nosheetwithiderror) when the given sheet ID does not exist
**`throws`** [InvalidArgumentsError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-invalidargumentserror) when columnMapping does not define correct column permutation for some subset of columns of the given sheet
**`throws`** [SourceLocationHasArrayError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-sourcelocationhasarrayerror) when the selected position has array inside
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
[1, 2, 4],
[5]
]);
// should set swap columns 0 and 2 in place, returns:
// [{
// address: { sheet: 0, col: 2, row: 0 },
// newValue: 1,
// },
// {
// address: { sheet: 0, col: 2, row: 1 },
// newValue: 5,
// },
// {
// address: { sheet: 0, col: 0, row: 0 },
// newValue: 4,
// },
// {
// address: { sheet: 0, col: 0, row: 1 },
// newValue: null,
// }]
const changes = hfInstance.swapColumnIndexes(0, [[0, 2], [2, 0]]);
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`sheetId` | number | ID of a sheet to operate on |
`columnMapping` | [number, number][] | array mapping original positions to final positions of columns |
**Returns:** *[ExportedChange](https://hyperformula.handsontable.com/docs/api/globals.md#exportedchange)[]*
___
## Cells
### doesCellHaveFormula
▸ **doesCellHaveFormula**(`cellAddress`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)): *boolean*
*Defined in [src/HyperFormula.ts:3419](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L3419)*
Returns `true` if the specified cell contains a formula.
The method accepts cell coordinates as object with column, row and sheet numbers.
**`throws`** [NoSheetWithIdError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-nosheetwithiderror) when the given sheet ID does not exist
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-expectedvalueoftypeerror) if cellAddress is of wrong type
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['=SUM(A2:A3)', '2'],
]);
// should return 'true' since the A1 cell contains a formula
const A1Formula = hfInstance.doesCellHaveFormula({ sheet: 0, col: 0, row: 0 });
// should return 'false' since the B1 cell does not contain a formula
const B1NoFormula = hfInstance.doesCellHaveFormula({ sheet: 0, col: 1, row: 0 });
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`cellAddress` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) | cell coordinates |
**Returns:** *boolean*
___
### doesCellHaveSimpleValue
▸ **doesCellHaveSimpleValue**(`cellAddress`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)): *boolean*
*Defined in [src/HyperFormula.ts:3388](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L3388)*
Returns `true` if the specified cell contains a simple value.
The method accepts cell coordinates as object with column, row and sheet numbers.
**`throws`** [NoSheetWithIdError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-nosheetwithiderror) when the given sheet ID does not exist
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-expectedvalueoftypeerror) if cellAddress is of wrong type
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['=SUM(A2:A3)', '2'],
]);
// should return 'true' since the selected cell contains a simple value
const isA1Simple = hfInstance.doesCellHaveSimpleValue({ sheet: 0, col: 0, row: 0 });
// should return 'false' since the selected cell does not contain a simple value
const isB1Simple = hfInstance.doesCellHaveSimpleValue({ sheet: 0, col: 1, row: 0 });
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`cellAddress` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) | cell coordinates |
**Returns:** *boolean*
___
### getCellFormula
▸ **getCellFormula**(`cellAddress`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)): *string | undefined*
*Defined in [src/HyperFormula.ts:843](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L843)*
Returns a normalized formula string from the cell of a given address or `undefined` for an address that does not exist and empty values.
**`throws`** [NoSheetWithIdError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-nosheetwithiderror) when the given sheet ID does not exist
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-expectedvalueoftypeerror) when cellAddress is of incorrect type
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['=SUM(1, 2, 3)', '0'],
]);
// should return a normalized A1 cell formula: '=SUM(1, 2, 3)'
const A1Formula = hfInstance.getCellFormula({ sheet: 0, col: 0, row: 0 });
// should return a normalized B1 cell formula: 'undefined'
const B1Formula = hfInstance.getCellFormula({ sheet: 0, col: 1, row: 0 });
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`cellAddress` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) | cell coordinates |
**Returns:** *string | undefined*
___
### getCellHyperlink
▸ **getCellHyperlink**(`cellAddress`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)): *string | undefined*
*Defined in [src/HyperFormula.ts:873](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L873)*
Returns the `HYPERLINK` url for a cell of a given address or `undefined` for an address that does not exist or a cell that is not `HYPERLINK`
**`throws`** [NoSheetWithIdError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-nosheetwithiderror) when the given sheet ID does not exist
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-expectedvalueoftypeerror) when cellAddress is of incorrect type
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['=HYPERLINK("https://hyperformula.handsontable.com/", "HyperFormula")', '0'],
]);
// should return url of 'HYPERLINK': https://hyperformula.handsontable.com/
const A1Hyperlink = hfInstance.getCellHyperlink({ sheet: 0, col: 0, row: 0 });
// should return 'undefined' for a cell that is not 'HYPERLINK'
const B1Hyperlink = hfInstance.getCellHyperlink({ sheet: 0, col: 1, row: 0 });
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`cellAddress` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) | cell coordinates |
**Returns:** *string | undefined*
___
### getCellSerialized
▸ **getCellSerialized**(`cellAddress`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)): *[RawCellContent](https://hyperformula.handsontable.com/docs/api/globals.md#rawcellcontent)*
*Defined in [src/HyperFormula.ts:905](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L905)*
Returns [RawCellContent](https://hyperformula.handsontable.com/docs/api/globals.md#rawcellcontent) with a serialized content of the cell of a given address: either a cell formula, an explicit value, or an error.
**`throws`** [NoSheetWithIdError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-nosheetwithiderror) when the given sheet ID does not exist
**`throws`** [EvaluationSuspendedError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-evaluationsuspendederror) when the evaluation is suspended
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-expectedvalueoftypeerror) when cellAddress is of incorrect type
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['=SUM(1, 2, 3)', '0'],
]);
// should return serialized content of A1 cell: '=SUM(1, 2, 3)'
const cellA1Serialized = hfInstance.getCellSerialized({ sheet: 0, col: 0, row: 0 });
// should return serialized content of B1 cell: '0'
const cellB1Serialized = hfInstance.getCellSerialized({ sheet: 0, col: 1, row: 0 });
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`cellAddress` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) | cell coordinates |
**Returns:** *[RawCellContent](https://hyperformula.handsontable.com/docs/api/globals.md#rawcellcontent)*
___
### getCellType
▸ **getCellType**(`cellAddress`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)): *[CellType](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-celltype)*
*Defined in [src/HyperFormula.ts:3356](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L3356)*
Returns the type of a cell at a given address.
The method accepts cell coordinates as object with column, row and sheet numbers.
**`throws`** [NoSheetWithIdError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-nosheetwithiderror) when the given sheet ID does not exist
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-expectedvalueoftypeerror) if cellAddress is of wrong type
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['=SUM(A2:A3)', '2'],
]);
// should return 'FORMULA', the cell of given coordinates is of this type
const cellA1Type = hfInstance.getCellType({ sheet: 0, col: 0, row: 0 });
// should return 'VALUE', the cell of given coordinates is of this type
const cellB1Type = hfInstance.getCellType({ sheet: 0, col: 1, row: 0 });
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`cellAddress` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) | cell coordinates |
**Returns:** *[CellType](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-celltype)*
___
### getCellValue
▸ **getCellValue**(`cellAddress`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)): *[CellValue](https://hyperformula.handsontable.com/docs/api/globals.md#cellvalue)*
*Defined in [src/HyperFormula.ts:812](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L812)*
Returns the cell value of a given address.
Applies rounding and post-processing.
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-expectedvalueoftypeerror) when cellAddress is of incorrect type
**`throws`** [NoSheetWithIdError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-nosheetwithiderror) when the given sheet ID does not exist
**`throws`** [EvaluationSuspendedError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-evaluationsuspendederror) when the evaluation is suspended
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['=SUM(1, 2, 3)', '2'],
]);
// get value of A1 cell, should be '6'
const A1Value = hfInstance.getCellValue({ sheet: 0, col: 0, row: 0 });
// get value of B1 cell, should be '2'
const B1Value = hfInstance.getCellValue({ sheet: 0, col: 1, row: 0 });
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`cellAddress` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) | cell coordinates |
**Returns:** *[CellValue](https://hyperformula.handsontable.com/docs/api/globals.md#cellvalue)*
___
### getCellValueDetailedType
▸ **getCellValueDetailedType**(`cellAddress`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)): *[CellValueDetailedType](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-cellvaluedetailedtype)*
*Defined in [src/HyperFormula.ts:3550](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L3550)*
Returns detailed type of the cell value of a given address.
The method accepts cell coordinates as object with column, row and sheet numbers.
For more information, see the [Types of values guide](https://hyperformula.handsontable.com/docs/guide/types-of-values.md).
**`throws`** [NoSheetWithIdError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-nosheetwithiderror) when the given sheet ID does not exist
**`throws`** [EvaluationSuspendedError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-evaluationsuspendederror) when the evaluation is suspended
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-expectedvalueoftypeerror) if cellAddress is of wrong type
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['1%', '1$'],
]);
// should return 'NUMBER_PERCENT', cell value type of provided coordinates is a number with a format inference percent.
const cellType = hfInstance.getCellValueDetailedType({ sheet: 0, col: 0, row: 0 });
// should return 'NUMBER_CURRENCY', cell value type of provided coordinates is a number with a format inference currency.
const cellType = hfInstance.getCellValueDetailedType({ sheet: 0, col: 1, row: 0 });
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`cellAddress` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) | cell coordinates |
**Returns:** *[CellValueDetailedType](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-cellvaluedetailedtype)*
___
### getCellValueFormat
▸ **getCellValueFormat**(`cellAddress`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)): *FormatInfo*
*Defined in [src/HyperFormula.ts:3584](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L3584)*
Returns auxiliary format information of the cell value of a given address.
The method accepts cell coordinates as object with column, row and sheet numbers.
**`throws`** [NoSheetWithIdError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-nosheetwithiderror) when the given sheet ID does not exist
**`throws`** [EvaluationSuspendedError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-evaluationsuspendederror) when the evaluation is suspended
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-expectedvalueoftypeerror) if cellAddress is of wrong type
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['1$', '1'],
]);
// should return '$', cell value type of provided coordinates is a number with a format inference currency, parsed as using '$' as currency.
const cellFormat = hfInstance.getCellValueFormat({ sheet: 0, col: 0, row: 0 });
// should return undefined, cell value type of provided coordinates is a number with no format information.
const cellFormat = hfInstance.getCellValueFormat({ sheet: 0, col: 1, row: 0 });
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`cellAddress` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) | cell coordinates |
**Returns:** *FormatInfo*
___
### getCellValueType
▸ **getCellValueType**(`cellAddress`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)): *[CellValueType](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-cellvaluetype)*
*Defined in [src/HyperFormula.ts:3514](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L3514)*
Returns type of the cell value of a given address.
The method accepts cell coordinates as object with column, row and sheet numbers.
For more information, see the [Types of values guide](https://hyperformula.handsontable.com/docs/guide/types-of-values.md).
**`throws`** [NoSheetWithIdError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-nosheetwithiderror) when the given sheet ID does not exist
**`throws`** [EvaluationSuspendedError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-evaluationsuspendederror) when the evaluation is suspended
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-expectedvalueoftypeerror) if cellAddress is of wrong type
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['=SUM(1, 2, 3)', '2'],
]);
// should return 'NUMBER', cell value type of provided coordinates is a number
const cellValue = hfInstance.getCellValueType({ sheet: 0, col: 1, row: 0 });
// should return 'NUMBER', cell value type of provided coordinates is a number
const cellValue = hfInstance.getCellValueType({ sheet: 0, col: 0, row: 0 });
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`cellAddress` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) | cell coordinates |
**Returns:** *[CellValueType](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-cellvaluetype)*
___
### isCellEmpty
▸ **isCellEmpty**(`cellAddress`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)): *boolean*
*Defined in [src/HyperFormula.ts:3451](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L3451)*
Returns`true` if the specified cell is empty.
The method accepts cell coordinates as object with column, row and sheet numbers.
**`throws`** [NoSheetWithIdError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-nosheetwithiderror) when the given sheet ID does not exist
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-expectedvalueoftypeerror) if cellAddress is of wrong type
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
[null, '1'],
]);
// should return 'true', cell of provided coordinates is empty
const isEmpty = hfInstance.isCellEmpty({ sheet: 0, col: 0, row: 0 });
// should return 'false', cell of provided coordinates is not empty
const isNotEmpty = hfInstance.isCellEmpty({ sheet: 0, col: 1, row: 0 });
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`cellAddress` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) | cell coordinates |
**Returns:** *boolean*
___
### isCellPartOfArray
▸ **isCellPartOfArray**(`cellAddress`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)): *boolean*
*Defined in [src/HyperFormula.ts:3479](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L3479)*
Returns `true` if a given cell is a part of an array.
The method accepts cell coordinates as object with column, row and sheet numbers.
**`throws`** [NoSheetWithIdError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-nosheetwithiderror) when the given sheet ID does not exist
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-expectedvalueoftypeerror) if cellAddress is of wrong type
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['{=TRANSPOSE(B1:B1)}'],
]);
// should return 'true', cell of provided coordinates is a part of an array
const isPartOfArray = hfInstance.isCellPartOfArray({ sheet: 0, col: 0, row: 0 });
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`cellAddress` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) | cell coordinates |
**Returns:** *boolean*
___
### isItPossibleToMoveCells
▸ **isItPossibleToMoveCells**(`source`: [SimpleCellRange](https://hyperformula.handsontable.com/docs/api/interfaces/simplecellrange.md), `destinationLeftCorner`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)): *boolean*
*Defined in [src/HyperFormula.ts:2085](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L2085)*
Returns information whether it is possible to move cells to a specified position in a given sheet.
Checks against particular rules to ascertain that moveCells can be called.
If returns `true`, doing [moveCells](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#movecells) operation won't throw any errors.
Returns `false` if the operation might be disrupted and causes side effects by the fact that there is an array inside the selected columns, the target location includes an array or the provided address is invalid.
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-expectedvalueoftypeerror) if destinationLeftCorner, source, or any of basic type arguments are of wrong type
**`throws`** [SheetsNotEqual](https://hyperformula.handsontable.com/docs/api/classes/sheetsnotequal.md) if range provided has distinct sheet numbers for start and end
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['1', '2'],
]);
// choose the coordinates and assign them to variables
const source = { sheet: 0, col: 1, row: 0 };
const destination = { sheet: 0, col: 3, row: 0 };
// should return 'true' for this example
// it is possible to move a block of width 1 and height 1
// from the corner: column 1 and row 0 of sheet 0
// into destination corner: column 3, row 0 of sheet 0
const isMovable = hfInstance.isItPossibleToMoveCells({ start: source, end: source }, destination);
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`source` | [SimpleCellRange](https://hyperformula.handsontable.com/docs/api/interfaces/simplecellrange.md) | range for a moved block |
`destinationLeftCorner` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) | upper left address of the target cell block |
**Returns:** *boolean*
___
### isItPossibleToSetCellContents
▸ **isItPossibleToSetCellContents**(`address`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) | [SimpleCellRange](https://hyperformula.handsontable.com/docs/api/interfaces/simplecellrange.md)): *boolean*
*Defined in [src/HyperFormula.ts:1356](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L1356)*
Returns information whether it is possible to change the content in a rectangular area bounded by the box.
If returns `true`, doing [setCellContents](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#setcellcontents) operation won't throw any errors.
Returns `false` if the address is invalid or the sheet does not exist.
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-expectedvalueoftypeerror) if any of its basic type argument is of wrong type
**`throws`** [SheetsNotEqual](https://hyperformula.handsontable.com/docs/api/classes/sheetsnotequal.md) if range provided has distinct sheet numbers for start and end
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['1', '2'],
]);
// top left corner
const address1 = { col: 0, row: 0, sheet: 0 };
// bottom right corner
const address2 = { col: 1, row: 0, sheet: 0 };
// should return 'true' for this example, it is possible to set content of
// width 2, height 1 in the first row and column of sheet 0
const isSettable = hfInstance.isItPossibleToSetCellContents({ start: address1, end: address2 });
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`address` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) | [SimpleCellRange](https://hyperformula.handsontable.com/docs/api/interfaces/simplecellrange.md) | single cell or block of cells to check |
**Returns:** *boolean*
___
### moveCells
▸ **moveCells**(`source`: [SimpleCellRange](https://hyperformula.handsontable.com/docs/api/interfaces/simplecellrange.md), `destinationLeftCorner`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)): *[ExportedChange](https://hyperformula.handsontable.com/docs/api/globals.md#exportedchange)[]*
*Defined in [src/HyperFormula.ts:2142](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L2142)*
Moves the content of a cell block from source to the target location.
Returns [an array of cells whose values changed as a result of this operation](https://hyperformula.handsontable.com/docs/guide/basic-operations.md#changes-array).
Note that this method may trigger dependency graph recalculation.
**`fires`** [valuesUpdated](https://hyperformula.handsontable.com/docs/api/interfaces/listeners.md#valuesupdated) if recalculation was triggered by this change
**`throws`** [NoSheetWithIdError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-nosheetwithiderror) when the given sheet ID does not exist
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-expectedvalueoftypeerror) if destinationLeftCorner or source are of wrong type
**`throws`** [InvalidArgumentsError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-invalidargumentserror) when the given arguments are invalid
**`throws`** [SheetSizeLimitExceededError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-sheetsizelimitexceedederror) when performing this operation would result in sheet size limits exceeding
**`throws`** [SourceLocationHasArrayError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-sourcelocationhasarrayerror) when the source location has array inside - array cannot be moved
**`throws`** [TargetLocationHasArrayError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-targetlocationhasarrayerror) when the target location has array inside - cells cannot be replaced by the array
**`throws`** [SheetsNotEqual](https://hyperformula.handsontable.com/docs/api/classes/sheetsnotequal.md) if range provided has distinct sheet numbers for start and end
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['=RAND()', '42'],
]);
// choose the coordinates and assign them to variables
const source = { sheet: 0, col: 1, row: 0 };
const destination = { sheet: 0, col: 3, row: 0 };
// should return a list of cells which values changed after the operation,
// their absolute addresses and new values, for this example:
// [{
// address: { sheet: 0, col: 0, row: 0 },
// newValue: 0.93524248002062,
// }]
const changes = hfInstance.moveCells({ start: source, end: source }, destination);
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`source` | [SimpleCellRange](https://hyperformula.handsontable.com/docs/api/interfaces/simplecellrange.md) | range for a moved block |
`destinationLeftCorner` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) | upper left address of the target cell block |
**Returns:** *[ExportedChange](https://hyperformula.handsontable.com/docs/api/globals.md#exportedchange)[]*
___
### setCellContents
▸ **setCellContents**(`topLeftCornerAddress`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md), `cellContents`: [RawCellContent](https://hyperformula.handsontable.com/docs/api/globals.md#rawcellcontent)[][] | [RawCellContent](https://hyperformula.handsontable.com/docs/api/globals.md#rawcellcontent)): *[ExportedChange](https://hyperformula.handsontable.com/docs/api/globals.md#exportedchange)[]*
*Defined in [src/HyperFormula.ts:1409](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L1409)*
Sets the content for a block of cells of a given coordinates.
Returns [an array of cells whose values changed as a result of this operation](https://hyperformula.handsontable.com/docs/guide/basic-operations.md#changes-array).
Note that this method may trigger dependency graph recalculation.
**`fires`** [valuesUpdated](https://hyperformula.handsontable.com/docs/api/interfaces/listeners.md#valuesupdated) if recalculation was triggered by this change
**`throws`** [NoSheetWithIdError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-nosheetwithiderror) when the given sheet ID does not exist
**`throws`** [InvalidArgumentsError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-invalidargumentserror) when the value is not an array of arrays or a raw cell value
**`throws`** [SheetSizeLimitExceededError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-sheetsizelimitexceedederror) when performing this operation would result in sheet size limits exceeding
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-expectedvalueoftypeerror) if topLeftCornerAddress argument is of wrong type
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['1', '2', '=A1'],
]);
// should set the content, returns:
// [{
// address: { sheet: 0, col: 3, row: 0 },
// newValue: 2,
// }]
const changes = hfInstance.setCellContents({ col: 3, row: 0, sheet: 0 }, [['=B1']]);
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`topLeftCornerAddress` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) | top left corner of block of cells |
`cellContents` | [RawCellContent](https://hyperformula.handsontable.com/docs/api/globals.md#rawcellcontent)[][] | [RawCellContent](https://hyperformula.handsontable.com/docs/api/globals.md#rawcellcontent) | array with content |
**Returns:** *[ExportedChange](https://hyperformula.handsontable.com/docs/api/globals.md#exportedchange)[]*
___
## Named Expressions
### addNamedExpression
▸ **addNamedExpression**(`expressionName`: string, `expression`: [RawCellContent](https://hyperformula.handsontable.com/docs/api/globals.md#rawcellcontent), `scope?`: undefined | number, `options?`: [NamedExpressionOptions](https://hyperformula.handsontable.com/docs/api/globals.md#namedexpressionoptions)): *[ExportedChange](https://hyperformula.handsontable.com/docs/api/globals.md#exportedchange)[]*
*Defined in [src/HyperFormula.ts:3904](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L3904)*
Adds a specified named expression.
Returns [an array of cells whose values changed as a result of this operation](https://hyperformula.handsontable.com/docs/guide/basic-operations.md#changes-array).
Note that this method may trigger dependency graph recalculation.
**`fires`** [namedExpressionAdded](https://hyperformula.handsontable.com/docs/api/interfaces/listeners.md#namedexpressionadded) always, unless [batch](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#batch) mode is used
**`fires`** [valuesUpdated](https://hyperformula.handsontable.com/docs/api/interfaces/listeners.md#valuesupdated) if recalculation was triggered by this change
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-expectedvalueoftypeerror) if any of its basic type argument is of wrong type
**`throws`** [NamedExpressionNameIsAlreadyTakenError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-namedexpressionnameisalreadytakenerror) when the named-expression name is not available.
**`throws`** [NamedExpressionNameIsInvalidError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-namedexpressionnameisinvaliderror) when the named-expression name is not valid
**`throws`** [NoRelativeAddressesAllowedError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-norelativeaddressesallowederror) when the named-expression formula contains relative references
**`throws`** [NoSheetWithIdError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-nosheetwithiderror) if no sheet with given sheetId exists
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['42'],
]);
// add own expression, scope limited to 'Sheet1' (sheetId=0), the method should return a list of cells which values
// changed after the operation, their absolute addresses and new values
// for this example:
// [{
// name: 'prettyName',
// newValue: 142,
// }]
const changes = hfInstance.addNamedExpression('prettyName', '=Sheet1!$A$1+100', 0);
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`expressionName` | string | a name of the expression to be added |
`expression` | [RawCellContent](https://hyperformula.handsontable.com/docs/api/globals.md#rawcellcontent) | the expression |
`scope?` | undefined | number | scope definition, `sheetId` for local scope or `undefined` for global scope |
`options?` | [NamedExpressionOptions](https://hyperformula.handsontable.com/docs/api/globals.md#namedexpressionoptions) | additional metadata related to named expression |
**Returns:** *[ExportedChange](https://hyperformula.handsontable.com/docs/api/globals.md#exportedchange)[]*
___
### changeNamedExpression
▸ **changeNamedExpression**(`expressionName`: string, `newExpression`: [RawCellContent](https://hyperformula.handsontable.com/docs/api/globals.md#rawcellcontent), `scope?`: undefined | number, `options?`: [NamedExpressionOptions](https://hyperformula.handsontable.com/docs/api/globals.md#namedexpressionoptions)): *[ExportedChange](https://hyperformula.handsontable.com/docs/api/globals.md#exportedchange)[]*
*Defined in [src/HyperFormula.ts:4126](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L4126)*
Changes a given named expression to a specified formula.
Returns [an array of cells whose values changed as a result of this operation](https://hyperformula.handsontable.com/docs/guide/basic-operations.md#changes-array).
Note that this method may trigger dependency graph recalculation.
**`fires`** [valuesUpdated](https://hyperformula.handsontable.com/docs/api/interfaces/listeners.md#valuesupdated) if recalculation was triggered by this change
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-expectedvalueoftypeerror) if any of its basic type argument is of wrong type
**`throws`** [NamedExpressionDoesNotExistError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-namedexpressiondoesnotexisterror) when the given expression does not exist.
**`throws`** [NoSheetWithIdError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-nosheetwithiderror) if no sheet with given sheetId exists
**`throws`** [[ArrayFormulasNotSupportedError]] when the named expression formula is an array formula
**`throws`** [NoRelativeAddressesAllowedError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-norelativeaddressesallowederror) when the named expression formula contains relative references
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['42'],
]);
// add a named expression, scope limited to 'Sheet1' (sheetId=0)
hfInstance.addNamedExpression('prettyName', '=Sheet1!$A$1+100', 0);
// change the named expression
const changes = hfInstance.changeNamedExpression('prettyName', '=Sheet1!$A$1+200');
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`expressionName` | string | an expression name, case-insensitive. |
`newExpression` | [RawCellContent](https://hyperformula.handsontable.com/docs/api/globals.md#rawcellcontent) | a new expression |
`scope?` | undefined | number | scope definition, `sheetId` for local scope or `undefined` for global scope |
`options?` | [NamedExpressionOptions](https://hyperformula.handsontable.com/docs/api/globals.md#namedexpressionoptions) | additional metadata related to named expression |
**Returns:** *[ExportedChange](https://hyperformula.handsontable.com/docs/api/globals.md#exportedchange)[]*
___
### getAllNamedExpressionsSerialized
▸ **getAllNamedExpressionsSerialized**(): *[SerializedNamedExpression](https://hyperformula.handsontable.com/docs/api/interfaces/serializednamedexpression.md)[]*
*Defined in [src/HyperFormula.ts:4294](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L4294)*
Returns all named expressions serialized.
For more information, see the [Named expressions guide](https://hyperformula.handsontable.com/docs/guide/named-expressions.md).
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['42'],
['50'],
['60'],
]);
// add two named expressions and one scoped
hfInstance.addNamedExpression('prettyName', '=Sheet1!$A$1+100');
hfInstance.addNamedExpression('anotherPrettyName', '=Sheet1!$A$2+100');
hfInstance.addNamedExpression('prettyName3', '=Sheet1!$A$3+100', 0);
// get all expressions serialized
// should return:
// [
// {name: 'prettyName', expression: '=Sheet1!$A$1+100', options: undefined, scope: undefined},
// {name: 'anotherPrettyName', expression: '=Sheet1!$A$2+100', options: undefined, scope: undefined},
// {name: 'alsoPrettyName', expression: '=Sheet1!$A$3+100', options: undefined, scope: 0}
// ]
const allExpressions = hfInstance.getAllNamedExpressionsSerialized();
```
**Returns:** *[SerializedNamedExpression](https://hyperformula.handsontable.com/docs/api/interfaces/serializednamedexpression.md)[]*
___
### getNamedExpression
▸ **getNamedExpression**(`expressionName`: string, `scope?`: undefined | number): *[NamedExpression](https://hyperformula.handsontable.com/docs/api/interfaces/namedexpression.md) | undefined*
*Defined in [src/HyperFormula.ts:4029](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L4029)*
Returns a named expression, or `undefined` for a named expression that does not exist or does not hold a formula.
For more information, see the [Named expressions guide](https://hyperformula.handsontable.com/docs/guide/named-expressions.md).
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-expectedvalueoftypeerror) if any of its basic type argument is of wrong type
**`throws`** [NoSheetWithIdError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-nosheetwithiderror) if no sheet with given sheetId exists
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['42'],
]);
// add a named expression in 'Sheet1' (sheetId=0)
hfInstance.addNamedExpression('prettyName', '=Sheet1!$A$1+100', 0);
// returns a named expression that corresponds to the passed name from 'Sheet1' (sheetId=0)
// for this example, returns:
// {name: 'prettyName', expression: '=Sheet1!$A$1+100', options: undefined, scope: 0}
const myFormula = hfInstance.getNamedExpression('prettyName', 0);
// for a named expression that doesn't exist, returns 'undefined':
const myFormulaTwo = hfInstance.getNamedExpression('uglyName', 0);
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`expressionName` | string | expression name, case-insensitive. |
`scope?` | undefined | number | scope definition, `sheetId` for local scope or `undefined` for global scope |
**Returns:** *[NamedExpression](https://hyperformula.handsontable.com/docs/api/interfaces/namedexpression.md) | undefined*
___
### getNamedExpressionFormula
▸ **getNamedExpressionFormula**(`expressionName`: string, `scope?`: undefined | number): *string | undefined*
*Defined in [src/HyperFormula.ts:3984](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L3984)*
Returns a normalized formula string for given named expression, or `undefined` for a named expression that does not exist or does not hold a formula.
For more information, see the [Named expressions guide](https://hyperformula.handsontable.com/docs/guide/named-expressions.md).
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-expectedvalueoftypeerror) if any of its basic type argument is of wrong type
**`throws`** [NoSheetWithIdError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-nosheetwithiderror) if no sheet with given sheetId exists
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['42'],
]);
// add a named expression in 'Sheet1' (sheetId=0)
hfInstance.addNamedExpression('prettyName', '=Sheet1!$A$1+100', 0);
// returns a normalized formula string corresponding to the passed name from 'Sheet1' (sheetId=0),
// '=Sheet1!A1+100' for this example
const myFormula = hfInstance.getNamedExpressionFormula('prettyName', 0);
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`expressionName` | string | expression name, case-insensitive. |
`scope?` | undefined | number | scope definition, `sheetId` for local scope or `undefined` for global scope |
**Returns:** *string | undefined*
___
### getNamedExpressionValue
▸ **getNamedExpressionValue**(`expressionName`: string, `scope?`: undefined | number): *[CellValue](https://hyperformula.handsontable.com/docs/api/globals.md#cellvalue) | undefined*
*Defined in [src/HyperFormula.ts:3942](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L3942)*
Gets specified named expression value.
Returns a [CellValue](https://hyperformula.handsontable.com/docs/api/globals.md#cellvalue) or undefined if the given named expression does not exist.
For more information, see the [Named expressions guide](https://hyperformula.handsontable.com/docs/guide/named-expressions.md).
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-expectedvalueoftypeerror) if any of its basic type argument is of wrong type
**`throws`** [NoSheetWithIdError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-nosheetwithiderror) if no sheet with given sheetId exists
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['42'],
]);
// add a named expression, only 'Sheet1' (sheetId=0) considered as it is the scope
hfInstance.addNamedExpression('prettyName', '=Sheet1!$A$1+100', 'Sheet1');
// returns the calculated value of a passed named expression, '142' for this example
const myFormula = hfInstance.getNamedExpressionValue('prettyName', 'Sheet1');
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`expressionName` | string | expression name, case-insensitive. |
`scope?` | undefined | number | scope definition, `sheetId` for local scope or `undefined` for global scope |
**Returns:** *[CellValue](https://hyperformula.handsontable.com/docs/api/globals.md#cellvalue) | undefined*
___
### isItPossibleToAddNamedExpression
▸ **isItPossibleToAddNamedExpression**(`expressionName`: string, `expression`: [RawCellContent](https://hyperformula.handsontable.com/docs/api/globals.md#rawcellcontent), `scope?`: undefined | number): *boolean*
*Defined in [src/HyperFormula.ts:3852](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L3852)*
Returns information whether it is possible to add named expression into a specific scope.
Checks against particular rules to ascertain that addNamedExpression can be called.
If returns `true`, doing [addNamedExpression](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#addnamedexpression) operation won't throw any errors.
Returns `false` if the operation might be disrupted.
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-expectedvalueoftypeerror) if any of its basic type argument is of wrong type
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['42'],
]);
// should return 'true' for this example,
// it is possible to add named expression to global scope
const isAddable = hfInstance.isItPossibleToAddNamedExpression('prettyName', '=Sheet1!$A$1+100');
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`expressionName` | string | a name of the expression to be added |
`expression` | [RawCellContent](https://hyperformula.handsontable.com/docs/api/globals.md#rawcellcontent) | the expression |
`scope?` | undefined | number | scope definition, `sheetId` for local scope or `undefined` for global scope |
**Returns:** *boolean*
___
### isItPossibleToChangeNamedExpression
▸ **isItPossibleToChangeNamedExpression**(`expressionName`: string, `newExpression`: [RawCellContent](https://hyperformula.handsontable.com/docs/api/globals.md#rawcellcontent), `scope?`: undefined | number): *boolean*
*Defined in [src/HyperFormula.ts:4078](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L4078)*
Returns information whether it is possible to change named expression in a specific scope.
Checks against particular rules to ascertain that changeNamedExpression can be called.
If returns `true`, doing [changeNamedExpression](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#changenamedexpression) operation won't throw any errors.
Returns `false` if the operation might be disrupted.
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-expectedvalueoftypeerror) if any of its basic type argument is of wrong type
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['42'],
]);
// add a named expression
hfInstance.addNamedExpression('prettyName', '=Sheet1!$A$1+100');
// should return 'true' for this example,
// it is possible to change named expression
const isAddable = hfInstance.isItPossibleToChangeNamedExpression('prettyName', '=Sheet1!$A$1+100');
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`expressionName` | string | an expression name, case-insensitive. |
`newExpression` | [RawCellContent](https://hyperformula.handsontable.com/docs/api/globals.md#rawcellcontent) | a new expression |
`scope?` | undefined | number | scope definition, `sheetId` for local scope or `undefined` for global scope |
**Returns:** *boolean*
___
### isItPossibleToRemoveNamedExpression
▸ **isItPossibleToRemoveNamedExpression**(`expressionName`: string, `scope?`: undefined | number): *boolean*
*Defined in [src/HyperFormula.ts:4162](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L4162)*
Returns information whether it is possible to remove named expression from a specific scope.
Checks against particular rules to ascertain that removeNamedExpression can be called.
If returns `true`, doing [removeNamedExpression](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#removenamedexpression) operation won't throw any errors.
Returns `false` if the operation might be disrupted.
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-expectedvalueoftypeerror) if any of its basic type argument is of wrong type
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['42'],
]);
// add a named expression
hfInstance.addNamedExpression('prettyName', '=Sheet1!$A$1+100');
// should return 'true' for this example,
// it is possible to change named expression
const isAddable = hfInstance.isItPossibleToRemoveNamedExpression('prettyName');
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`expressionName` | string | an expression name, case-insensitive. |
`scope?` | undefined | number | scope definition, `sheetId` for local scope or `undefined` for global scope |
**Returns:** *boolean*
___
### listNamedExpressions
▸ **listNamedExpressions**(`scope?`: undefined | number): *string[]*
*Defined in [src/HyperFormula.ts:4256](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L4256)*
Lists named expressions.
- If scope parameter is provided, returns an array of expression names defined for this scope.
- If scope parameter is undefined, returns an array of global expression names.
For more information, see the [Named expressions guide](https://hyperformula.handsontable.com/docs/guide/named-expressions.md).
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-expectedvalueoftypeerror) if any of its basic type argument is of wrong type
**`throws`** [NoSheetWithIdError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-nosheetwithiderror) if no sheet with given sheetId exists
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['42'],
['50'],
['60'],
]);
// add two named expressions and one scoped
hfInstance.addNamedExpression('prettyName', '=Sheet1!$A$1+100');
hfInstance.addNamedExpression('anotherPrettyName', '=Sheet1!$A$2+100');
hfInstance.addNamedExpression('alsoPrettyName', '=Sheet1!$A$3+100', 0);
// list the expressions, should return: ['prettyName', 'anotherPrettyName'] for this example
const listOfExpressions = hfInstance.listNamedExpressions();
// list the expressions, should return: ['alsoPrettyName'] for this example
const listOfExpressions = hfInstance.listNamedExpressions(0);
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`scope?` | undefined | number | scope of the named expressions, `sheetId` for local scope or `undefined` for global scope |
**Returns:** *string[]*
___
### removeNamedExpression
▸ **removeNamedExpression**(`expressionName`: string, `scope?`: undefined | number): *[ExportedChange](https://hyperformula.handsontable.com/docs/api/globals.md#exportedchange)[]*
*Defined in [src/HyperFormula.ts:4207](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L4207)*
Removes a named expression.
Returns [an array of cells whose values changed as a result of this operation](https://hyperformula.handsontable.com/docs/guide/basic-operations.md#changes-array).
Note that this method may trigger dependency graph recalculation.
**`fires`** [namedExpressionRemoved](https://hyperformula.handsontable.com/docs/api/interfaces/listeners.md#namedexpressionremoved) after the expression was removed
**`fires`** [valuesUpdated](https://hyperformula.handsontable.com/docs/api/interfaces/listeners.md#valuesupdated) if recalculation was triggered by this change
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-expectedvalueoftypeerror) if any of its basic type argument is of wrong type
**`throws`** [NamedExpressionDoesNotExistError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-namedexpressiondoesnotexisterror) when the given expression does not exist.
**`throws`** [NoSheetWithIdError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-nosheetwithiderror) if no sheet with given sheetId exists
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['42'],
]);
// add a named expression
hfInstance.addNamedExpression('prettyName', '=Sheet1!$A$1+100', 0);
// remove the named expression
const changes = hfInstance.removeNamedExpression('prettyName', 0);
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`expressionName` | string | expression name, case-insensitive. |
`scope?` | undefined | number | scope definition, `sheetId` for local scope or `undefined` for global scope |
**Returns:** *[ExportedChange](https://hyperformula.handsontable.com/docs/api/globals.md#exportedchange)[]*
___
## Helpers
### calculateFormula
▸ **calculateFormula**(`formulaString`: string, `sheetId`: number): *[CellValue](https://hyperformula.handsontable.com/docs/api/globals.md#cellvalue) | [CellValue](https://hyperformula.handsontable.com/docs/api/globals.md#cellvalue)[][]*
*Defined in [src/HyperFormula.ts:4359](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L4359)*
Calculates fire-and-forget formula, returns the calculated value.
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-expectedvalueoftypeerror) if any of its basic type arguments is of wrong type.
**`throws`** [NotAFormulaError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-notaformulaerror) when the provided string is not a valid formula (i.e., doesn't start with `=`).
**`throws`** [NoSheetWithIdError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-nosheetwithiderror) when the provided `sheetID` doesn't exist.
**`example`**
```js
const hfInstance = HyperFormula.buildFromSheets({
Sheet1: [['58']],
Sheet2: [['1', '2', '3'], ['4', '5', '6']]
});
// returns the calculated formula's value
// for this example, returns `68`
const calculatedFormula = hfInstance.calculateFormula('=A1+10', 0);
// for this example, returns [['11', '12', '13'], ['14', '15', '16']]
const calculatedFormula = hfInstance.calculateFormula('=A1:B3+10', 1);
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`formulaString` | string | A formula in a proper format, starting with `=`. |
`sheetId` | number | The ID of a sheet in context of which the formula gets evaluated. |
**Returns:** *[CellValue](https://hyperformula.handsontable.com/docs/api/globals.md#cellvalue) | [CellValue](https://hyperformula.handsontable.com/docs/api/globals.md#cellvalue)[][]*
___
### getAvailableFunctions
▸ **getAvailableFunctions**(): *FunctionListEntry[]*
*Defined in [src/HyperFormula.ts:4530](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L4530)*
Returns metadata of all functions available in this instance for a function picker, with names translated
according to the language set in this instance's configuration. Each entry contains the translated name, the
language-independent canonical name, the category, and a short description. Entries are sorted alphabetically by
their localized name, using the collation rules of the host environment, so the exact order of names that differ
only by case or diacritics may vary between hosts.
The list reflects this instance's own registry: the built-in functions and any custom (user-registered)
functions, plus their aliases. An alias is listed under its own id, borrowing its target's category and
description, with the target id exposed as `aliasOf`. Custom functions ship no catalogue entry, so their
`category` is `'Custom'` and they carry no `shortDescription` — with one exception: the catalogue is keyed by
function id, so a custom plugin registered *over* a built-in id inherits that id's entry and is listed with the
built-in's category and description.
That registry is a snapshot taken when the instance was built, not a live view of the global one: a function
registered with [registerFunctionPlugin](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-registerfunctionplugin) or [registerFunction](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-registerfunction) afterwards reaches only the engines built
later, so an engine kept across a late registration keeps reporting the set it was built with.
A function with no translation entry for the configured language is omitted: the interpreter refuses to evaluate
an untranslated id, so listing it would advertise a function that cannot be called — in practice, a custom
plugin registered without translations for that language. A translation set to an empty string is not a missing
entry: it falls back to the canonical id, so the function stays listed under its canonical name.
**`example`**
```js
const hfInstance = HyperFormula.buildEmpty();
// get the list of available functions, translated for the configured language
const functions = hfInstance.getAvailableFunctions();
```
**Returns:** *FunctionListEntry[]*
___
### getCellDependents
▸ **getCellDependents**(`address`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) | [SimpleCellRange](https://hyperformula.handsontable.com/docs/api/interfaces/simplecellrange.md)): *([SimpleCellRange](https://hyperformula.handsontable.com/docs/api/interfaces/simplecellrange.md) | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md))[]*
*Defined in [src/HyperFormula.ts:3183](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L3183)*
Returns all the out-neighbors in the [dependency graph](https://hyperformula.handsontable.com/docs/guide/dependency-graph.md) for a given cell address or range. Including:
- All cells with formulas that contain the given cell address or range
- Some of the ranges that contain the given cell address or range
The exact result depends on the optimizations applied by the HyperFormula to the dependency graph, some of which are described in the section ["Optimizations for large ranges"](https://hyperformula.handsontable.com/docs/guide/dependency-graph.md#optimizations-for-large-ranges).
The returned array includes also named expression dependents. They are represented as cell references with sheet ID `-1`.
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-expectedvalueoftypeerror) if address is not [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) or [SimpleCellRange](https://hyperformula.handsontable.com/docs/api/interfaces/simplecellrange.md)
**`throws`** [SheetsNotEqual](https://hyperformula.handsontable.com/docs/api/classes/sheetsnotequal.md) if range provided has distinct sheet numbers for start and end
**`throws`** [NoSheetWithIdError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-nosheetwithiderror) when the given sheet ID does not exist
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray( [ ['1', '=A1', '=A1+B1'] ] );
hfInstance.getCellDependents({ sheet: 0, col: 0, row: 0});
// returns [{ sheet: 0, col: 1, row: 0}, { sheet: 0, col: 2, row: 0}]
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`address` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) | [SimpleCellRange](https://hyperformula.handsontable.com/docs/api/interfaces/simplecellrange.md) | object representation of an absolute address or range of addresses |
**Returns:** *([SimpleCellRange](https://hyperformula.handsontable.com/docs/api/interfaces/simplecellrange.md) | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md))[]*
___
### getCellPrecedents
▸ **getCellPrecedents**(`address`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) | [SimpleCellRange](https://hyperformula.handsontable.com/docs/api/interfaces/simplecellrange.md)): *([SimpleCellRange](https://hyperformula.handsontable.com/docs/api/interfaces/simplecellrange.md) | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md))[]*
*Defined in [src/HyperFormula.ts:3221](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L3221)*
Returns all the in-neighbors in the [dependency graph](https://hyperformula.handsontable.com/docs/guide/dependency-graph.md) for a given cell address or range. In particular:
- If the argument is a single cell, `getCellPrecedents()` returns all cells and ranges contained in that cell's formula.
- If the argument is a range of cells, `getCellPrecedents()` returns some of the cell addresses and smaller ranges contained in that range (but not all of them). The exact result depends on the optimizations applied by the HyperFormula to the dependency graph, some of which are described in the section ["Optimizations for large ranges"](https://hyperformula.handsontable.com/docs/guide/dependency-graph.md#optimizations-for-large-ranges).
The returned array includes also named expression precedents. They are represented as cell references with sheet ID `-1`.
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-expectedvalueoftypeerror) if address is of wrong type
**`throws`** [NoSheetWithIdError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-nosheetwithiderror) when the given sheet ID does not exist
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray( [ ['1', '=A1', '=A1+B1'] ] );
hfInstance.getCellPrecedents({ sheet: 0, col: 2, row: 0});
// returns [{ sheet: 0, col: 0, row: 0}, { sheet: 0, col: 1, row: 0}]
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`address` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) | [SimpleCellRange](https://hyperformula.handsontable.com/docs/api/interfaces/simplecellrange.md) | object representation of an absolute address or range of addresses |
**Returns:** *([SimpleCellRange](https://hyperformula.handsontable.com/docs/api/interfaces/simplecellrange.md) | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md))[]*
___
### getFunctionDetails
▸ **getFunctionDetails**(`canonicalName`: string): *FunctionDetails | undefined*
*Defined in [src/HyperFormula.ts:4575](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L4575)*
Returns the full metadata of a single function registered in this instance, with names translated according to
the language set in this instance's configuration: the parameter list (with per-parameter optionality), the
number of trailing parameters that repeat (`repeatLastArgs`), the category, a short description, and the
documentation link (`documentationUrl`) and usage examples (`examples`) — every built-in authors both.
Resolves both built-in and custom (user-registered) functions, as well as aliases. An alias reports its
target's metadata (including examples, which spell the target's name) under the alias id, with the target id
exposed as `aliasOf`. Returns `undefined` when the function id is unknown, not registered in this instance, or
has no translation entry for the configured language (an untranslated id cannot be evaluated, so it is not
described either, which keeps this method consistent with [getAvailableFunctions](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#getavailablefunctions)).
For a custom function, `category` is `'Custom'`, there is no `shortDescription`, `documentationUrl` or
`examples`, and parameters are reported positionally (`Arg1`, `Arg2`, ...). A custom plugin registered over a
built-in id is the exception: the catalogue is keyed by function id, so it reports that built-in's authored
metadata alongside the parameter list of the implementation actually registered.
`canonicalName` is matched exactly, in two ways worth knowing:
- It is **case-sensitive**, unlike formula syntax. `'SUMIF'` resolves; `'sumif'` and `'SumIf'` return
`undefined`, even though `=sumif(...)` evaluates.
- It must be the **canonical (English) id, never a localized name**. `localizedName` is output only: under
`plPL` this method reports `localizedName: 'SUMA.JEŻELI'` for `'SUMIF'`, but passing `'SUMA.JEŻELI'` back in
returns `undefined`. To look up an entry from [getAvailableFunctions](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#getavailablefunctions), pass its `canonicalName`.
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-expectedvalueoftypeerror) if any of its basic type argument is of wrong type
**`example`**
```js
const hfInstance = HyperFormula.buildEmpty();
// get the details of the SUMIF function, translated for the configured language
const details = hfInstance.getFunctionDetails('SUMIF');
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`canonicalName` | string | the language-independent function id, e.g. `'SUMIF'` |
**Returns:** *FunctionDetails | undefined*
___
### getNamedExpressionsFromFormula
▸ **getNamedExpressionsFromFormula**(`formulaString`: string): *string[]*
*Defined in [src/HyperFormula.ts:4390](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L4390)*
Return a list of named expressions used by a formula.
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-expectedvalueoftypeerror) if any of its basic type arguments is of wrong type.
**`throws`** [NotAFormulaError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-notaformulaerror) when the provided string is not a valid formula (i.e., doesn't start with `=`).
**`example`**
```js
const hfInstance = HyperFormula.buildEmpty();
// returns a list of named expressions used by a formula
// for this example, returns ['foo', 'bar']
const namedExpressions = hfInstance.getNamedExpressionsFromFormula('=foo+bar*2');
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`formulaString` | string | A formula in a proper format, starting with `=`. |
**Returns:** *string[]*
___
### normalizeFormula
▸ **normalizeFormula**(`formulaString`: string): *string*
*Defined in [src/HyperFormula.ts:4323](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L4323)*
Parses and then unparses a formula.
Returns a normalized formula (e.g., restores the original capitalization of sheet names, function names, cell addresses, and named expressions).
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-expectedvalueoftypeerror) if any of its basic type argument is of wrong type
**`throws`** [NotAFormulaError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-notaformulaerror) when the provided string is not a valid formula, i.e., does not start with "="
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['42'],
['50'],
]);
// returns '=Sheet1!$A$1+10'
const normalizedFormula = hfInstance.normalizeFormula('=SHEET1!$A$1+10');
// returns '=3*$A$1'
const normalizedFormula = hfInstance.normalizeFormula('=3*$a$1');
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`formulaString` | string | a formula in a proper format - it must start with "=" |
**Returns:** *string*
___
### numberToDate
▸ **numberToDate**(`inputNumber`: number): *[DateTime](https://hyperformula.handsontable.com/docs/api/globals.md#datetime)*
*Defined in [src/HyperFormula.ts:4629](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L4629)*
Interprets number as a date.
For more information, see the [Date and time handling guide](https://hyperformula.handsontable.com/docs/guide/date-and-time-handling.md).
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-expectedvalueoftypeerror) if any of its basic type argument is of wrong type
**`example`**
```js
const hfInstance = HyperFormula.buildEmpty();
// pass the number of days since nullDate
// the method should return formatted date, for this example:
// {year: 2020, month: 1, day: 15}
const dateFromNumber = hfInstance.numberToDate(43845);
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`inputNumber` | number | number of days since nullDate, should be non-negative, fractions are ignored. |
**Returns:** *[DateTime](https://hyperformula.handsontable.com/docs/api/globals.md#datetime)*
___
### numberToDateTime
▸ **numberToDateTime**(`inputNumber`: number): *[DateTime](https://hyperformula.handsontable.com/docs/api/globals.md#datetime)*
*Defined in [src/HyperFormula.ts:4603](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L4603)*
Interprets number as a date + time.
For more information, see the [Date and time handling guide](https://hyperformula.handsontable.com/docs/guide/date-and-time-handling.md).
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-expectedvalueoftypeerror) if any of its basic type argument is of wrong type
**`example`**
```js
const hfInstance = HyperFormula.buildEmpty();
// pass the number of days since nullDate
// the method should return formatted date and time, for this example:
// {year: 2020, month: 1, day: 15, hours: 2, minutes: 24, seconds: 0}
const dateTimeFromNumber = hfInstance.numberToDateTime(43845.1);
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`inputNumber` | number | number of days since nullDate, should be non-negative, fractions are interpreted as hours/minutes/seconds. |
**Returns:** *[DateTime](https://hyperformula.handsontable.com/docs/api/globals.md#datetime)*
___
### numberToTime
▸ **numberToTime**(`inputNumber`: number): *[DateTime](https://hyperformula.handsontable.com/docs/api/globals.md#datetime)*
*Defined in [src/HyperFormula.ts:4654](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L4654)*
Interprets number as a time (hours/minutes/seconds).
For more information, see the [Date and time handling guide](https://hyperformula.handsontable.com/docs/guide/date-and-time-handling.md).
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-expectedvalueoftypeerror) if any of its basic type argument is of wrong type
**`example`**
```js
const hfInstance = HyperFormula.buildEmpty();
// pass a number to be interpreted as a time
// should return {hours: 26, minutes: 24} for this example
const timeFromNumber = hfInstance.numberToTime(1.1);
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`inputNumber` | number | time in 24h units. |
**Returns:** *[DateTime](https://hyperformula.handsontable.com/docs/api/globals.md#datetime)*
___
### simpleCellAddressFromString
▸ **simpleCellAddressFromString**(`cellAddress`: string, `contextSheetId`: number): *[SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) | undefined*
*Defined in [src/HyperFormula.ts:3024](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L3024)*
Computes the simple (absolute) address of a cell address, based on its string representation.
- If a sheet name is present in the string representation but is not present in the engine, returns `undefined`.
- If no sheet name is present in the string representation, uses `contextSheetId` as a sheet id in the returned address.
For more information, see the [Cell references guide](https://hyperformula.handsontable.com/docs/guide/cell-references.md).
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-expectedvalueoftypeerror) if any of its basic type argument is of wrong type
**`example`**
```js
const hfInstance = HyperFormula.buildEmpty();
hfInstance.addSheet('Sheet0'); //sheetId = 0
// returns { sheet: 42, col: 0, row: 0 }
const simpleCellAddress = hfInstance.simpleCellAddressFromString('A1', 42);
// returns { sheet: 0, col: 0, row: 5 }
const simpleCellAddress = hfInstance.simpleCellAddressFromString('Sheet0!A6', 42);
// returns { sheet: 0, col: 0, row: 5 }
const simpleCellAddress = hfInstance.simpleCellAddressFromString('Sheet0!$A$6', 42);
// returns 'undefined', as there's no 'Sheet 2' in the HyperFormula instance
const simpleCellAddress = hfInstance.simpleCellAddressFromString('Sheet2!A6', 42);
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`cellAddress` | string | string representation of cell address in A1 notation |
`contextSheetId` | number | sheet id used to construct the simple address in case of missing sheet name in `cellAddress` argument |
**Returns:** *[SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) | undefined*
___
### simpleCellAddressToString
▸ **simpleCellAddressToString**(`cellAddress`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md), `optionsOrContextSheetId`: object | number): *undefined | string*
*Defined in [src/HyperFormula.ts:3093](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L3093)*
Computes string representation of an absolute address in A1 notation. If `cellAddress.sheet` is not present in the engine, returns `undefined`.
For more information, see the [Cell references guide](https://hyperformula.handsontable.com/docs/guide/cell-references.md).
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-expectedvalueoftypeerror) if its arguments are of wrong type
**`example`**
```js
const hfInstance = HyperFormula.buildEmpty();
hfInstance.addSheet('Sheet0'); //sheetId = 0
const addr = { sheet: 0, col: 1, row: 1 };
// should return 'B2'
const A1Notation = hfInstance.simpleCellAddressToString(addr);
// should return 'B2'
const A1Notation = hfInstance.simpleCellAddressToString(addr, { includeSheetName: false });
// should return 'Sheet0!B2'
const A1Notation = hfInstance.simpleCellAddressToString(addr, { includeSheetName: true });
// should return 'B2' as context sheet id is the same as addr.sheet
const A1Notation = hfInstance.simpleCellAddressToString(addr, 0);
// should return 'Sheet0!B2' as context sheet id is different from addr.sheet
const A1Notation = hfInstance.simpleCellAddressToString(addr, 42);
```
**Parameters:**
Name | Type | Default | Description |
------ | ------ | ------ | ------ |
`cellAddress` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) | - | object representation of an absolute address |
`optionsOrContextSheetId` | object | number | {} | options object or number used as context sheet id to construct the string address (see examples) |
**Returns:** *undefined | string*
___
### simpleCellRangeFromString
▸ **simpleCellRangeFromString**(`cellRange`: string, `contextSheetId`: number): *[SimpleCellRange](https://hyperformula.handsontable.com/docs/api/interfaces/simplecellrange.md) | undefined*
*Defined in [src/HyperFormula.ts:3053](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L3053)*
Computes simple (absolute) address of a cell range based on its string representation.
If sheet name is present in string representation but not present in the engine, returns `undefined`.
For more information, see the [Cell references guide](https://hyperformula.handsontable.com/docs/guide/cell-references.md).
**`throws`** [NoSheetWithIdError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-nosheetwithiderror) when the given sheet ID does not exist
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-expectedvalueoftypeerror) if any of its basic type argument is of wrong type
**`example`**
```js
const hfInstance = HyperFormula.buildEmpty();
hfInstance.addSheet('Sheet0'); //sheetId = 0
// should return { start: { sheet: 0, col: 0, row: 0 }, end: { sheet: 0, col: 1, row: 0 } }
const simpleCellAddress = hfInstance.simpleCellRangeFromString('A1:A2', 0);
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`cellRange` | string | string representation of cell range in A1 notation |
`contextSheetId` | number | sheet id used to construct the simple address in case of missing sheet name in `cellRange` argument |
**Returns:** *[SimpleCellRange](https://hyperformula.handsontable.com/docs/api/interfaces/simplecellrange.md) | undefined*
___
### simpleCellRangeToString
▸ **simpleCellRangeToString**(`cellRange`: [SimpleCellRange](https://hyperformula.handsontable.com/docs/api/interfaces/simplecellrange.md), `optionsOrContextSheetId`: object | number): *string | undefined*
*Defined in [src/HyperFormula.ts:3146](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L3146)*
Computes string representation of an absolute range in A1 notation.
Returns `undefined` if:
- `cellRange` is not a valid range,
- `cellRange.start.sheet` and `cellRange.start.end` are different,
- `cellRange.start.sheet` is not present in the engine,
- `cellRange.start.end` is not present in the engine.
Note: This method is useful only for cell ranges; does not work with column ranges and row ranges.
For more information, see the [Cell references guide](https://hyperformula.handsontable.com/docs/guide/cell-references.md).
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-expectedvalueoftypeerror) if its arguments are of wrong type
**`example`**
```js
const hfInstance = HyperFormula.buildEmpty();
hfInstance.addSheet('Sheet0'); //sheetId = 0
const range = { start: { sheet: 0, col: 1, row: 1 }, end: { sheet: 0, col: 2, row: 1 } };
// should return 'B2:C2'
const A1Notation = hfInstance.simpleCellRangeToString(range);
// should return 'B2:C2'
const A1Notation = hfInstance.simpleCellRangeToString(range, { includeSheetName: false });
// should return 'Sheet0!B2:C2'
const A1Notation = hfInstance.simpleCellRangeToString(range, { includeSheetName: true });
// should return 'B2:C2' as context sheet id is the same as range.start.sheet and range.end.sheet
const A1Notation = hfInstance.simpleCellRangeToString(range, 0);
// should return 'Sheet0!B2:C2' as context sheet id is different from range.start.sheet and range.end.sheet
const A1Notation = hfInstance.simpleCellRangeToString(range, 42);
```
**Parameters:**
Name | Type | Default | Description |
------ | ------ | ------ | ------ |
`cellRange` | [SimpleCellRange](https://hyperformula.handsontable.com/docs/api/interfaces/simplecellrange.md) | - | object representation of an absolute range |
`optionsOrContextSheetId` | object | number | {} | options object or number used as context sheet id to construct the string address (see examples) |
**Returns:** *string | undefined*
___
### validateFormula
▸ **validateFormula**(`formulaString`: string): *boolean*
*Defined in [src/HyperFormula.ts:4424](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L4424)*
Validates the formula.
If the provided string starts with "=" and is a parsable formula, the method returns `true`.
The validation is purely grammatical: the method doesn't verify if the formula can be calculated or not.
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-expectedvalueoftypeerror) if any of its basic type argument is of wrong type
**`example`**
```js
// checks if the given string is a valid formula, should return 'true' for this example
const isFormula = hfInstance.validateFormula('=SUM(1, 2)');
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`formulaString` | string | a formula in a proper format - it must start with "=" |
**Returns:** *boolean*
___
## Clipboard
### clearClipboard
▸ **clearClipboard**(): *void*
*Defined in [src/HyperFormula.ts:2494](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L2494)*
Clears the clipboard content.
**`example`**
```js
// clears the clipboard, isClipboardEmpty() should return true if called afterwards
hfInstance.clearClipboard();
```
The usage of the internal clipboard is described thoroughly in the [Clipboard Operations guide](https://hyperformula.handsontable.com/docs/guide/clipboard-operations.md).
**Returns:** *void*
___
### copy
▸ **copy**(`source`: [SimpleCellRange](https://hyperformula.handsontable.com/docs/api/interfaces/simplecellrange.md)): *[CellValue](https://hyperformula.handsontable.com/docs/api/globals.md#cellvalue)[][]*
*Defined in [src/HyperFormula.ts:2354](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L2354)*
Stores a copy of the cell block in internal clipboard for the further paste.
Returns the copied values for use in external clipboard.
For more information, see the [Clipboard Operations guide](https://hyperformula.handsontable.com/docs/guide/clipboard-operations.md).
**`throws`** [NoSheetWithIdError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-nosheetwithiderror) when the given sheet ID does not exist
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-expectedvalueoftypeerror) if source is of wrong type
**`throws`** [SheetsNotEqual](https://hyperformula.handsontable.com/docs/api/classes/sheetsnotequal.md) if range provided has distinct sheet numbers for start and end
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['1', '2'],
]);
// it copies [ [ 2 ] ]
const clipboardContent = hfInstance.copy({
start: { sheet: 0, col: 1, row: 0 },
end: { sheet: 0, col: 1, row: 0 },
});
```
The usage of the internal clipboard is described thoroughly in the [Clipboard Operations guide](https://hyperformula.handsontable.com/docs/guide/clipboard-operations.md).
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`source` | [SimpleCellRange](https://hyperformula.handsontable.com/docs/api/interfaces/simplecellrange.md) | rectangle range to copy |
**Returns:** *[CellValue](https://hyperformula.handsontable.com/docs/api/globals.md#cellvalue)[][]*
___
### cut
▸ **cut**(`source`: [SimpleCellRange](https://hyperformula.handsontable.com/docs/api/interfaces/simplecellrange.md)): *[CellValue](https://hyperformula.handsontable.com/docs/api/globals.md#cellvalue)[][]*
*Defined in [src/HyperFormula.ts:2394](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L2394)*
Stores information of the cell block in internal clipboard for further paste.
Calling [paste](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#paste) right after this method is equivalent to call [moveCells](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#movecells).
Almost any CRUD operation called after this method will abort the cut operation.
Returns the cut values for use in external clipboard.
For more information, see the [Clipboard Operations guide](https://hyperformula.handsontable.com/docs/guide/clipboard-operations.md).
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-expectedvalueoftypeerror) if source is of wrong type
**`throws`** [SheetsNotEqual](https://hyperformula.handsontable.com/docs/api/classes/sheetsnotequal.md) if range provided has distinct sheet numbers for start and end
**`throws`** [NoSheetWithIdError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-nosheetwithiderror) when the given sheet ID does not exist
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['1', '2'],
]);
// returns the values that were cut: [ [ 1 ] ]
const clipboardContent = hfInstance.cut({
start: { sheet: 0, col: 0, row: 0 },
end: { sheet: 0, col: 0, row: 0 },
});
```
The usage of the internal clipboard is described thoroughly in the [Clipboard Operations guide](https://hyperformula.handsontable.com/docs/guide/clipboard-operations.md).
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`source` | [SimpleCellRange](https://hyperformula.handsontable.com/docs/api/interfaces/simplecellrange.md) | rectangle range to cut |
**Returns:** *[CellValue](https://hyperformula.handsontable.com/docs/api/globals.md#cellvalue)[][]*
___
### isClipboardEmpty
▸ **isClipboardEmpty**(): *boolean*
*Defined in [src/HyperFormula.ts:2477](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L2477)*
Returns information whether there is something in the clipboard.
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['1', '2'],
]);
// copy desired content
const clipboardContent = hfInstance.copy({
start: { sheet: 0, col: 1, row: 0 },
end: { sheet: 0, col: 1, row: 0 },
});
// returns 'false', there is content in the clipboard
const isClipboardEmpty = hfInstance.isClipboardEmpty();
```
The usage of the internal clipboard is described thoroughly in the [Clipboard Operations guide](https://hyperformula.handsontable.com/docs/guide/clipboard-operations.md).
**Returns:** *boolean*
___
### paste
▸ **paste**(`targetLeftCorner`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)): *[ExportedChange](https://hyperformula.handsontable.com/docs/api/globals.md#exportedchange)[]*
*Defined in [src/HyperFormula.ts:2445](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L2445)*
When called after [copy](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#copy) it pastes copied values and formulas into a cell block.
When called after [cut](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#cut) it performs [moveCells](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#movecells) operation into the cell block.
Does nothing if the clipboard is empty.
For more information, see the [Clipboard Operations guide](https://hyperformula.handsontable.com/docs/guide/clipboard-operations.md).
Returns [an array of cells whose values changed as a result of this operation](https://hyperformula.handsontable.com/docs/guide/basic-operations.md#changes-array).
Note that this method may trigger dependency graph recalculation.
**`fires`** [valuesUpdated](https://hyperformula.handsontable.com/docs/api/interfaces/listeners.md#valuesupdated) if recalculation was triggered by this change
**`throws`** [NoSheetWithIdError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-nosheetwithiderror) when the given sheet ID does not exist
**`throws`** [EvaluationSuspendedError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-evaluationsuspendederror) when the evaluation is suspended
**`throws`** [SheetSizeLimitExceededError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-sheetsizelimitexceedederror) when performing this operation would result in sheet size limits exceeding
**`throws`** [NothingToPasteError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-nothingtopasteerror) when clipboard is empty
**`throws`** [TargetLocationHasArrayError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-targetlocationhasarrayerror) when the selected target area has array inside
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-expectedvalueoftypeerror) if targetLeftCorner is of wrong type
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['1', '2'],
]);
// [ [ 2 ] ] was copied
const clipboardContent = hfInstance.copy({
start: { sheet: 0, col: 1, row: 0 },
end: { sheet: 0, col: 1, row: 0 },
});
// returns a list of modified cells: their absolute addresses and new values
const changes = hfInstance.paste({ sheet: 0, col: 1, row: 0 });
```
The usage of the internal clipboard is described thoroughly in the [Clipboard Operations guide](https://hyperformula.handsontable.com/docs/guide/clipboard-operations.md).
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`targetLeftCorner` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) | upper left address of the target cell block |
**Returns:** *[ExportedChange](https://hyperformula.handsontable.com/docs/api/globals.md#exportedchange)[]*
___
## Undo and Redo
### clearRedoStack
▸ **clearRedoStack**(): *void*
*Defined in [src/HyperFormula.ts:2524](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L2524)*
Clears the redo stack in undoRedo history.
For more information, see the [Undo-Redo guide](https://hyperformula.handsontable.com/docs/guide/undo-redo.md).
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['1', '2', '3'],
]);
// do an operation, for example remove columns
hfInstance.removeColumns(0, [0, 1]);
// undo the operation
hfInstance.undo();
// redo the operation
hfInstance.redo();
// clear the redo stack
hfInstance.clearRedoStack();
```
**Returns:** *void*
___
### clearUndoStack
▸ **clearUndoStack**(): *void*
*Defined in [src/HyperFormula.ts:2551](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L2551)*
Clears the undo stack in undoRedo history.
For more information, see the [Undo-Redo guide](https://hyperformula.handsontable.com/docs/guide/undo-redo.md).
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['1', '2', '3'],
]);
// do an operation, for example remove columns
hfInstance.removeColumns(0, [0, 1]);
// undo the operation
hfInstance.undo();
// clear the undo stack
hfInstance.clearUndoStack();
```
**Returns:** *void*
___
### isThereSomethingToRedo
▸ **isThereSomethingToRedo**(): *boolean*
*Defined in [src/HyperFormula.ts:1324](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L1324)*
Checks if there is at least one operation that can be re-done.
For more information, see the [Undo-Redo guide](https://hyperformula.handsontable.com/docs/guide/undo-redo.md).
**`example`**
```js
hfInstance.undo();
// when there is an action to redo, this returns 'true'
const isSomethingToRedo = hfInstance.isThereSomethingToRedo();
```
**Returns:** *boolean*
___
### isThereSomethingToUndo
▸ **isThereSomethingToUndo**(): *boolean*
*Defined in [src/HyperFormula.ts:1305](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L1305)*
Checks if there is at least one operation that can be undone.
For more information, see the [Undo-Redo guide](https://hyperformula.handsontable.com/docs/guide/undo-redo.md).
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['1'],
['2'],
['3'],
]);
// perform CRUD operation, for example remove the second row
hfInstance.removeRows(0, [1, 1]);
// should return 'true', it is possible to undo last operation
// which is removing rows in this example
const isSomethingToUndo = hfInstance.isThereSomethingToUndo();
```
**Returns:** *boolean*
___
### redo
▸ **redo**(): *[ExportedChange](https://hyperformula.handsontable.com/docs/api/globals.md#exportedchange)[]*
*Defined in [src/HyperFormula.ts:1277](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L1277)*
Re-do recently undone operation.
For more information, see the [Undo-Redo guide](https://hyperformula.handsontable.com/docs/guide/undo-redo.md).
Returns [an array of cells whose values changed as a result of this operation](https://hyperformula.handsontable.com/docs/guide/basic-operations.md#changes-array).
Note that this method may trigger dependency graph recalculation.
**`fires`** [valuesUpdated](https://hyperformula.handsontable.com/docs/api/interfaces/listeners.md#valuesupdated) if recalculation was triggered by this change
**`throws`** [NoOperationToRedoError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-nooperationtoredoerror) when there is no operation running that can be re-done
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['1'],
['2'],
['3'],
]);
// perform CRUD operation, for example remove the second row
hfInstance.removeRows(0, [1, 1]);
// undo the operation, it should return previous values: [['1'], ['2'], ['3']]
hfInstance.undo();
// do a redo, it should return the values after removing the second row: [['1'], ['3']]
const changes = hfInstance.redo();
```
**Returns:** *[ExportedChange](https://hyperformula.handsontable.com/docs/api/globals.md#exportedchange)[]*
___
### undo
▸ **undo**(): *[ExportedChange](https://hyperformula.handsontable.com/docs/api/globals.md#exportedchange)[]*
*Defined in [src/HyperFormula.ts:1239](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L1239)*
Undo the previous operation.
For more information, see the [Undo-Redo guide](https://hyperformula.handsontable.com/docs/guide/undo-redo.md).
Returns [an array of cells whose values changed as a result of this operation](https://hyperformula.handsontable.com/docs/guide/basic-operations.md#changes-array).
Note that this method may trigger dependency graph recalculation.
**`fires`** [valuesUpdated](https://hyperformula.handsontable.com/docs/api/interfaces/listeners.md#valuesupdated) if recalculation was triggered by this change
**`throws`** [NoOperationToUndoError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-nooperationtoundoerror) when there is no operation running that can be undone
**`example`**
```js
const hfInstance = HyperFormula.buildFromArray([
['1', '2'],
['3', ''],
]);
// perform CRUD operation, for example remove the second row
hfInstance.removeRows(0, [1, 1]);
// undo the operation, it should return the changes
const changes = hfInstance.undo();
```
**Returns:** *[ExportedChange](https://hyperformula.handsontable.com/docs/api/globals.md#exportedchange)[]*
___
## Batch
### batch
▸ **batch**(`batchOperations`: function): *[ExportedChange](https://hyperformula.handsontable.com/docs/api/globals.md#exportedchange)[]*
*Defined in [src/HyperFormula.ts:3714](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L3714)*
Runs the provided callback as a single [batch operation](https://hyperformula.handsontable.com/docs/guide/batch-operations.md) and returns the changed cells.
Returns [an array of cells whose values changed as a result of all batched operations](https://hyperformula.handsontable.com/docs/guide/basic-operations.md#changes-array).
Note that this method may trigger dependency graph recalculation.
**`fires`** [valuesUpdated](https://hyperformula.handsontable.com/docs/api/interfaces/listeners.md#valuesupdated) if recalculation was triggered by this change
**`fires`** [evaluationSuspended](https://hyperformula.handsontable.com/docs/api/interfaces/listeners.md#evaluationsuspended) always
**`fires`** [evaluationResumed](https://hyperformula.handsontable.com/docs/api/interfaces/listeners.md#evaluationresumed) after the recomputation of necessary values
**`example`**
```js
const hfInstance = HyperFormula.buildFromSheets({
MySheet1: [ ['1'] ],
MySheet2: [ ['10'] ],
});
// multiple operations in a single callback will trigger evaluation only once
// and only one set of changes is returned as a combined result of all
// the operations that were triggered within the callback
const changes = hfInstance.batch(() => {
hfInstance.setCellContents({ col: 3, row: 0, sheet: 0 }, [['=B1']]);
hfInstance.setCellContents({ col: 4, row: 0, sheet: 0 }, [['=A1']]);
});
```
**Parameters:**
▪ **batchOperations**: *function*
a function with operations to be performed
▸ (): *void*
**Returns:** *[ExportedChange](https://hyperformula.handsontable.com/docs/api/globals.md#exportedchange)[]*
___
### isEvaluationSuspended
▸ **isEvaluationSuspended**(): *boolean*
*Defined in [src/HyperFormula.ts:3823](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L3823)*
Checks if the dependency graph recalculation process is [suspended](https://hyperformula.handsontable.com/docs/guide/batch-operations.md) or not.
**`example`**
```js
const hfInstance = HyperFormula.buildEmpty();
// suspend the evaluation
hfInstance.suspendEvaluation();
// between suspendEvaluation() and resumeEvaluation()
// or inside batch() callback it will return 'true', otherwise 'false'
const isEvaluationSuspended = hfInstance.isEvaluationSuspended();
const changes = hfInstance.resumeEvaluation();
```
**Returns:** *boolean*
___
### resumeEvaluation
▸ **resumeEvaluation**(): *[ExportedChange](https://hyperformula.handsontable.com/docs/api/globals.md#exportedchange)[]*
*Defined in [src/HyperFormula.ts:3797](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L3797)*
Resumes the dependency graph recalculation that was [suspended](https://hyperformula.handsontable.com/docs/guide/batch-operations.md) with [suspendEvaluation](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#suspendevaluation).
It also triggers the recalculation and returns [an array of cells whose values changed as a result of all batched operations](https://hyperformula.handsontable.com/docs/guide/basic-operations.md#changes-array).
**`fires`** [valuesUpdated](https://hyperformula.handsontable.com/docs/api/interfaces/listeners.md#valuesupdated) if recalculation was triggered by this change
**`fires`** [evaluationResumed](https://hyperformula.handsontable.com/docs/api/interfaces/listeners.md#evaluationresumed) after the recomputation of necessary values
**`example`**
```js
const hfInstance = HyperFormula.buildFromSheets({
MySheet1: [ ['1'] ],
MySheet2: [ ['10'] ],
});
// similar to batch() but operations are not within a callback,
// one method suspends the recalculation
// the second will resume calculations and return the changes
// first, suspend the evaluation
hfInstance.suspendEvaluation();
// perform operations
hfInstance.setCellContents({ col: 3, row: 0, sheet: 0 }, [['=B1']]);
hfInstance.setSheetContent(1, [['50'], ['60']]);
// resume the evaluation
const changes = hfInstance.resumeEvaluation();
```
**Returns:** *[ExportedChange](https://hyperformula.handsontable.com/docs/api/globals.md#exportedchange)[]*
___
### suspendEvaluation
▸ **suspendEvaluation**(): *void*
*Defined in [src/HyperFormula.ts:3761](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L3761)*
Suspends the dependency graph recalculation to start a [batch operation](https://hyperformula.handsontable.com/docs/guide/batch-operations.md).
It allows optimizing the performance.
With this method, multiple CRUD operations can be done without triggering recalculation after every operation.
Suspending evaluation should result in an overall faster calculation compared to recalculating after each operation separately.
To resume the evaluation use [resumeEvaluation](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#resumeevaluation).
**`fires`** [evaluationSuspended](https://hyperformula.handsontable.com/docs/api/interfaces/listeners.md#evaluationsuspended) always
**`example`**
```js
const hfInstance = HyperFormula.buildFromSheets({
MySheet1: [ ['1'] ],
MySheet2: [ ['10'] ],
});
// similar to batch() but operations are not within a callback,
// one method suspends the recalculation
// the second will resume calculations and return the changes
// suspend the evaluation with this method
hfInstance.suspendEvaluation();
// perform operations
hfInstance.setCellContents({ col: 3, row: 0, sheet: 0 }, [['=B1']]);
hfInstance.setSheetContent(1, [['50'], ['60']]);
// use resumeEvaluation to resume
const changes = hfInstance.resumeEvaluation();
```
**Returns:** *void*
___
## Events
### off
▸ **off**‹**Event**›(`event`: Event, `listener`: Listeners[Event]): *void*
*Defined in [src/HyperFormula.ts:4740](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L4740)*
Unsubscribes from an event or from all events.
For the list of all available events, see [Listeners](https://hyperformula.handsontable.com/docs/api/interfaces/listeners.md).
**`example`**
```js
const hfInstance = HyperFormula.buildEmpty();
// define a simple function to be called upon emitting an event
const handler = ( ) => { console.log('baz') }
// subscribe to a 'sheetAdded', pass the handler
hfInstance.on('sheetAdded', handler);
// add a sheet to trigger an event,
// console should print 'baz' each time a sheet is added
hfInstance.addSheet('FooBar');
// unsubscribe from a 'sheetAdded'
hfInstance.off('sheetAdded', handler);
// add a sheet, the console should not print anything
hfInstance.addSheet('FooBaz');
```
**Type parameters:**
▪ **Event**: *keyof Listeners*
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`event` | Event | the name of the event to subscribe to |
`listener` | Listeners[Event] | to be called when event is emitted |
**Returns:** *void*
___
### on
▸ **on**‹**Event**›(`event`: Event, `listener`: Listeners[Event]): *void*
*Defined in [src/HyperFormula.ts:4680](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L4680)*
Subscribes to an event.
For the list of all available events, see [Listeners](https://hyperformula.handsontable.com/docs/api/interfaces/listeners.md).
**`example`**
```js
const hfInstance = HyperFormula.buildEmpty();
// subscribe to a 'sheetAdded', pass a simple handler
hfInstance.on('sheetAdded', ( ) => { console.log('foo') });
// add a sheet to trigger an event,
// console should print 'foo' after each time sheet is added in this example
hfInstance.addSheet('FooBar');
```
**Type parameters:**
▪ **Event**: *keyof Listeners*
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`event` | Event | the name of the event to subscribe to |
`listener` | Listeners[Event] | to be called when event is emitted |
**Returns:** *void*
___
### once
▸ **once**‹**Event**›(`event`: Event, `listener`: Listeners[Event]): *void*
*Defined in [src/HyperFormula.ts:4706](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L4706)*
Subscribes to an event once.
For the list of all available events, see [Listeners](https://hyperformula.handsontable.com/docs/api/interfaces/listeners.md).
**`example`**
```js
const hfInstance = HyperFormula.buildEmpty();
// subscribe to a 'sheetAdded', pass a simple handler
hfInstance.once('sheetAdded', ( ) => { console.log('foo') });
// call addSheet twice,
// console should print 'foo' only once when the sheet is added in this example
hfInstance.addSheet('FooBar');
hfInstance.addSheet('FooBaz');
```
**Type parameters:**
▪ **Event**: *keyof Listeners*
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`event` | Event | the name of the event to subscribe to |
`listener` | Listeners[Event] | to be called when event is emitted |
**Returns:** *void*
___
## Custom Functions
### getAllFunctionPlugins
▸ **getAllFunctionPlugins**(): *FunctionPluginDefinition[]*
*Defined in [src/HyperFormula.ts:4493](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L4493)*
Returns classes of all plugins registered in this instance of HyperFormula
**`example`**
```js
const hfInstance = HyperFormula.buildEmpty();
// return classes of all plugins registered, assign to a variable
const allNames = hfInstance.getAllFunctionPlugins();
```
**Returns:** *FunctionPluginDefinition[]*
___
### getFunctionPlugin
▸ **getFunctionPlugin**(`functionId`: string): *FunctionPluginDefinition | undefined*
*Defined in [src/HyperFormula.ts:4475](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L4475)*
Returns class of a plugin used by function with given id
For more information, see the [Custom functions guide](https://hyperformula.handsontable.com/docs/guide/custom-functions.md).
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-expectedvalueoftypeerror) if any of its basic type argument is of wrong type
**`example`**
```js
// import your own plugin
import { MyExamplePlugin } from './file_with_your_plugin';
const hfInstance = HyperFormula.buildEmpty();
// register a plugin
HyperFormula.registerFunctionPlugin(MyExamplePlugin);
// get the plugin
const myPlugin = hfInstance.getFunctionPlugin('EXAMPLE');
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`functionId` | string | id of a function, e.g., 'SUMIF' |
**Returns:** *FunctionPluginDefinition | undefined*
___
### getRegisteredFunctionNames
▸ **getRegisteredFunctionNames**(): *string[]*
*Defined in [src/HyperFormula.ts:4445](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L4445)*
Returns translated names of all functions registered in this instance of HyperFormula
according to the language set in the configuration
**`example`**
```js
const hfInstance = HyperFormula.buildEmpty();
// return translated names of all functions, assign to a variable
const allNames = hfInstance.getRegisteredFunctionNames();
```
**Returns:** *string[]*
___
## Static Methods
### getAllFunctionPlugins
▸ **getAllFunctionPlugins**(): *FunctionPluginDefinition[]*
*Defined in [src/HyperFormula.ts:652](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L652)*
Returns classes of all plugins registered in HyperFormula.
**`example`**
```js
// return classes of all plugins
const allClasses = HyperFormula.getAllFunctionPlugins();
```
**Returns:** *FunctionPluginDefinition[]*
___
### getFunctionPlugin
▸ **getFunctionPlugin**(`functionId`: string): *FunctionPluginDefinition | undefined*
*Defined in [src/HyperFormula.ts:636](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L636)*
Returns class of a plugin used by function with given id
For more information, see the [Custom functions guide](https://hyperformula.handsontable.com/docs/guide/custom-functions.md).
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-expectedvalueoftypeerror) if any of its basic type argument is of wrong type
**`example`**
```js
// import your own plugin
import { MyExamplePlugin } from './file_with_your_plugin';
// register a plugin
HyperFormula.registerFunctionPlugin(MyExamplePlugin);
// return the class of a given plugin
const myFunctionClass = HyperFormula.getFunctionPlugin('EXAMPLE');
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`functionId` | string | id of a function, e.g., 'SUMIF' |
**Returns:** *FunctionPluginDefinition | undefined*
___
### getLanguage
▸ **getLanguage**(`languageCode`: string): *TranslationPackage*
*Defined in [src/HyperFormula.ts:375](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L375)*
Returns registered language from its code string.
For more information, see the [Localizing functions guide](https://hyperformula.handsontable.com/docs/guide/localizing-functions.md).
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-expectedvalueoftypeerror) if any of its basic type argument is of wrong type
**`throws`** [LanguageNotRegisteredError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-languagenotregisterederror) when trying to retrieve not registered language
**`example`**
```js
// return registered language
const language = HyperFormula.getLanguage('enGB');
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`languageCode` | string | code string of the translation package |
**Returns:** *TranslationPackage*
___
### getRegisteredFunctionNames
▸ **getRegisteredFunctionNames**(`code`: string): *string[]*
*Defined in [src/HyperFormula.ts:606](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L606)*
Returns translated names of all registered functions for a given language
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-expectedvalueoftypeerror) if any of its basic type argument is of wrong type
**`example`**
```js
// return a list of function names registered for enGB
const allNames = HyperFormula.getRegisteredFunctionNames('enGB');
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`code` | string | language code |
**Returns:** *string[]*
___
### getRegisteredLanguagesCodes
▸ **getRegisteredLanguagesCodes**(): *string[]*
*Defined in [src/HyperFormula.ts:456](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L456)*
Returns all registered languages codes.
**`example`**
```js
// should return all registered language codes: ['enGB', 'plPL']
const registeredLanguages = HyperFormula.getRegisteredLanguagesCodes();
```
**Returns:** *string[]*
___
### registerFunction
▸ **registerFunction**(`functionId`: string, `plugin`: FunctionPluginDefinition, `translations?`: FunctionTranslationsPackage): *void*
*Defined in [src/HyperFormula.ts:540](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L540)*
Registers a function with a given id if such exists in a plugin.
For more information, see the [Custom functions guide](https://hyperformula.handsontable.com/docs/guide/custom-functions.md).
Note: This method does not affect the existing HyperFormula instances.
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-expectedvalueoftypeerror) if any of its basic type argument is of wrong type
**`throws`** [FunctionPluginValidationError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-functionpluginvalidationerror) when function with a given id does not exist in plugin or plugin class definition is not consistent with metadata
**`throws`** [ProtectedFunctionTranslationError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-protectedfunctiontranslationerror) when trying to register translation for protected function
**`example`**
```js
// import your own plugin
import { MyExamplePlugin } from './file_with_your_plugin';
// register a function
HyperFormula.registerFunction('EXAMPLE', MyExamplePlugin);
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`functionId` | string | function id, e.g., 'SUMIF' |
`plugin` | FunctionPluginDefinition | plugin class |
`translations?` | FunctionTranslationsPackage | translations for the function name |
**Returns:** *void*
___
### registerFunctionPlugin
▸ **registerFunctionPlugin**(`plugin`: FunctionPluginDefinition, `translations?`: FunctionTranslationsPackage): *void*
*Defined in [src/HyperFormula.ts:486](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L486)*
Registers all functions in a given plugin with optional translations.
For more information, see the [Custom functions guide](https://hyperformula.handsontable.com/docs/guide/custom-functions.md).
Note: FunctionPlugins must be registered prior to the creation of HyperFormula instances in which they are used.
HyperFormula instances created prior to the registration of a FunctionPlugin are unable to access the FunctionPlugin.
Registering a FunctionPlugin with [[custom-functions]] requires the translations parameter.
**`throws`** [FunctionPluginValidationError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-functionpluginvalidationerror) when plugin class definition is not consistent with metadata
**`throws`** [ProtectedFunctionTranslationError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-protectedfunctiontranslationerror) when trying to register translation for protected function
**`example`**
```js
// import your own plugin
import { MyExamplePlugin } from './file_with_your_plugin';
// register the plugin
HyperFormula.registerFunctionPlugin(MyExamplePlugin);
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`plugin` | FunctionPluginDefinition | plugin class |
`translations?` | FunctionTranslationsPackage | optional package of function names translations |
**Returns:** *void*
___
### registerLanguage
▸ **registerLanguage**(`languageCode`: string, `languagePackage`: RawTranslationPackage): *void*
*Defined in [src/HyperFormula.ts:406](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L406)*
Registers language under given code string.
For more information, see the [Localizing functions guide](https://hyperformula.handsontable.com/docs/guide/localizing-functions.md).
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-expectedvalueoftypeerror) if any of its basic type argument is of wrong type
**`throws`** [ProtectedFunctionTranslationError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-protectedfunctiontranslationerror) when trying to register translation for protected function
**`throws`** [LanguageAlreadyRegisteredError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-languagealreadyregisterederror) when given language is already registered
**`example`**
```js
// return registered language
HyperFormula.registerLanguage('enUS', enUS);
const engine = HyperFormula.buildEmpty({language: 'enUS'});
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`languageCode` | string | code string of the translation package |
`languagePackage` | RawTranslationPackage | translation package to be registered |
**Returns:** *void*
___
### unregisterAllFunctions
▸ **unregisterAllFunctions**(): *void*
*Defined in [src/HyperFormula.ts:587](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L587)*
Clears function registry.
Note: This method does not affect the existing HyperFormula instances.
**`example`**
```js
HyperFormula.unregisterAllFunctions();
```
**Returns:** *void*
___
### unregisterFunction
▸ **unregisterFunction**(`functionId`: string): *void*
*Defined in [src/HyperFormula.ts:570](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L570)*
Unregisters a function with a given id.
For more information, see the [Custom functions guide](https://hyperformula.handsontable.com/docs/guide/custom-functions.md).
Note: This method does not affect the existing HyperFormula instances.
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-expectedvalueoftypeerror) if any of its basic type argument is of wrong type
**`example`**
```js
// import your own plugin
import { MyExamplePlugin } from './file_with_your_plugin';
// register a function
HyperFormula.registerFunction('EXAMPLE', MyExamplePlugin);
// unregister a function
HyperFormula.unregisterFunction('EXAMPLE');
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`functionId` | string | function id, e.g., 'SUMIF' |
**Returns:** *void*
___
### unregisterFunctionPlugin
▸ **unregisterFunctionPlugin**(`plugin`: FunctionPluginDefinition): *void*
*Defined in [src/HyperFormula.ts:510](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L510)*
Unregisters all functions defined in given plugin.
For more information, see the [Custom functions guide](https://hyperformula.handsontable.com/docs/guide/custom-functions.md).
Note: This method does not affect the existing HyperFormula instances.
**`example`**
```js
// get the class of a plugin
const registeredPluginClass = HyperFormula.getFunctionPlugin('EXAMPLE');
// unregister all functions defined in a plugin of ID 'EXAMPLE'
HyperFormula.unregisterFunctionPlugin(registeredPluginClass);
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`plugin` | FunctionPluginDefinition | plugin class |
**Returns:** *void*
___
### unregisterLanguage
▸ **unregisterLanguage**(`languageCode`: string): *void*
*Defined in [src/HyperFormula.ts:436](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/HyperFormula.ts#L436)*
Unregisters language that is registered under given code string.
For more information, see the [Localizing functions guide](https://hyperformula.handsontable.com/docs/guide/localizing-functions.md).
**`throws`** [ExpectedValueOfTypeError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-expectedvalueoftypeerror) if any of its basic type argument is of wrong type
**`throws`** [LanguageNotRegisteredError](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-languagenotregisterederror) when given language is not registered
**`example`**
```js
// register the language for the instance
HyperFormula.registerLanguage('plPL', plPL);
// unregister plPL
HyperFormula.unregisterLanguage('plPL');
```
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`languageCode` | string | code string of the translation package |
**Returns:** *void*
---
## MissingTranslationError
URL: https://hyperformula.handsontable.com/docs/api/classes/missingtranslationerror
# MissingTranslationError
Error thrown when translation is missing in translation package.
## Constructors
### constructor
\+ **new MissingTranslationError**(`key`: string): *[MissingTranslationError](https://hyperformula.handsontable.com/docs/api/classes/missingtranslationerror.md)*
*Defined in [src/errors.ts:266](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/errors.ts#L266)*
**Parameters:**
Name | Type |
------ | ------ |
`key` | string |
**Returns:** *[MissingTranslationError](https://hyperformula.handsontable.com/docs/api/classes/missingtranslationerror.md)*
## Properties
### message
• **message**: *string*
___
### name
• **name**: *string*
___
### stack
• **stack**? : *undefined | string*
___
### Error
▪ **Error**: *ErrorConstructor*
---
## LazilyTransformingAstService
URL: https://hyperformula.handsontable.com/docs/api/classes/lazilytransformingastservice
# LazilyTransformingAstService
Manages lazy application of formula AST transformations.
## Problem
Structural operations (adding/removing rows/columns, moving cells, renaming sheets)
require updating every formula that references the affected area. Applying these
transformations eagerly to all formulas after every operation is expensive, especially
for large spreadsheets with many formulas.
## Solution: Lazy Transformation
Instead of transforming all formulas immediately, this service stores transformations
in a queue. Each formula vertex (FormulaVertex) and column index entry (ValueIndex)
tracks its own version number. When a consumer needs up-to-date data, it calls
`applyTransformations()` with its current version and receives all transformations
accumulated since that version.
## Compaction
Over time, the transformations array grows unboundedly. To prevent this memory leak,
the engine periodically triggers compaction when the number of accumulated
transformations reaches the configurable `maxPendingLazyTransformations`:
1. All FormulaVertex instances are forced to apply pending transformations
(via `DependencyGraph.forceApplyPostponedTransformations()`).
2. All ColumnIndex entries are forced to apply pending transformations
(via `ColumnSearchStrategy.forceApplyPostponedTransformations()`).
3. `compact()` is called, which advances `versionOffset` and clears the
transformations array.
4. `UndoRedo.cleanupOrphanedOldData()` removes any oldData entries that were
written during forced application but belong to already-evicted undo entries.
The `versionOffset` ensures that version numbers remain globally consistent
after compaction: `version() = versionOffset + transformations.length`.
## Constructors
### constructor
\+ **new LazilyTransformingAstService**(`stats`: [Statistics](https://hyperformula.handsontable.com/docs/api/classes/statistics.md), `maxPendingLazyTransformations`: number): *[LazilyTransformingAstService](https://hyperformula.handsontable.com/docs/api/classes/lazilytransformingastservice.md)*
*Defined in [src/LazilyTransformingAstService.ts:54](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/LazilyTransformingAstService.ts#L54)*
**Parameters:**
Name | Type |
------ | ------ |
`stats` | [Statistics](https://hyperformula.handsontable.com/docs/api/classes/statistics.md) |
`maxPendingLazyTransformations` | number |
**Returns:** *[LazilyTransformingAstService](https://hyperformula.handsontable.com/docs/api/classes/lazilytransformingastservice.md)*
## Properties
### parser
• **parser**? : *ParserWithCaching*
*Defined in [src/LazilyTransformingAstService.ts:49](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/LazilyTransformingAstService.ts#L49)*
___
### undoRedo
• **undoRedo**? : *[UndoRedo](https://hyperformula.handsontable.com/docs/api/classes/undoredo.md)*
*Defined in [src/LazilyTransformingAstService.ts:50](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/LazilyTransformingAstService.ts#L50)*
## Methods
### addTransformation
▸ **addTransformation**(`transformation`: FormulaTransformer): *number*
*Defined in [src/LazilyTransformingAstService.ts:66](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/LazilyTransformingAstService.ts#L66)*
**Parameters:**
Name | Type |
------ | ------ |
`transformation` | FormulaTransformer |
**Returns:** *number*
___
### applyTransformations
▸ **applyTransformations**(`ast`: Ast, `address`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md), `version`: number): *[Ast, [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md), number]*
*Defined in [src/LazilyTransformingAstService.ts:88](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/LazilyTransformingAstService.ts#L88)*
**Parameters:**
Name | Type |
------ | ------ |
`ast` | Ast |
`address` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) |
`version` | number |
**Returns:** *[Ast, [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md), number]*
___
### beginCombinedMode
▸ **beginCombinedMode**(`sheet`: number): *void*
*Defined in [src/LazilyTransformingAstService.ts:75](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/LazilyTransformingAstService.ts#L75)*
**Parameters:**
Name | Type |
------ | ------ |
`sheet` | number |
**Returns:** *void*
___
### commitCombinedMode
▸ **commitCombinedMode**(): *number*
*Defined in [src/LazilyTransformingAstService.ts:79](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/LazilyTransformingAstService.ts#L79)*
**Returns:** *number*
___
### compact
▸ **compact**(): *void*
*Defined in [src/LazilyTransformingAstService.ts:135](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/LazilyTransformingAstService.ts#L135)*
Compacts the transformations array by discarding all entries that have already
been applied by every consumer. Safe to call only after all FormulaVertex and
ColumnIndex consumers have been brought up to the current version.
After calling, UndoRedo.cleanupOrphanedOldData() must be invoked to remove
oldData entries written during forceApplyPostponedTransformations for
already-evicted undo entries.
**Returns:** *void*
___
### getTransformationsFrom
▸ **getTransformationsFrom**(`version`: number, `filter?`: undefined | function): *IterableIterator‹FormulaTransformer›*
*Defined in [src/LazilyTransformingAstService.ts:109](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/LazilyTransformingAstService.ts#L109)*
**Parameters:**
Name | Type |
------ | ------ |
`version` | number |
`filter?` | undefined | function |
**Returns:** *IterableIterator‹FormulaTransformer›*
___
### needsCompaction
▸ **needsCompaction**(): *boolean*
*Defined in [src/LazilyTransformingAstService.ts:123](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/LazilyTransformingAstService.ts#L123)*
Returns true when enough transformations have accumulated to justify the cost
of forcing all consumers (FormulaVertex, ColumnIndex) to apply pending changes.
**Returns:** *boolean*
___
### version
▸ **version**(): *number*
*Defined in [src/LazilyTransformingAstService.ts:62](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/LazilyTransformingAstService.ts#L62)*
**Returns:** *number*
---
## MoveCellsUndoEntry
URL: https://hyperformula.handsontable.com/docs/api/classes/movecellsundoentry
# MoveCellsUndoEntry
## Constructors
### constructor
\+ **new MoveCellsUndoEntry**(`sourceLeftCorner`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md), `width`: number, `height`: number, `destinationLeftCorner`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md), `overwrittenCellsData`: [[SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md), [ClipboardCell](https://hyperformula.handsontable.com/docs/api/globals.md#clipboardcell)][], `addedGlobalNamedExpressions`: string[], `version`: number): *[MoveCellsUndoEntry](https://hyperformula.handsontable.com/docs/api/classes/movecellsundoentry.md)*
*Defined in [src/UndoRedo.ts:68](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L68)*
**Parameters:**
Name | Type |
------ | ------ |
`sourceLeftCorner` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) |
`width` | number |
`height` | number |
`destinationLeftCorner` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) |
`overwrittenCellsData` | [[SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md), [ClipboardCell](https://hyperformula.handsontable.com/docs/api/globals.md#clipboardcell)][] |
`addedGlobalNamedExpressions` | string[] |
`version` | number |
**Returns:** *[MoveCellsUndoEntry](https://hyperformula.handsontable.com/docs/api/classes/movecellsundoentry.md)*
## Properties
### addedGlobalNamedExpressions
• **addedGlobalNamedExpressions**: *string[]*
*Defined in [src/UndoRedo.ts:75](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L75)*
___
### destinationLeftCorner
• **destinationLeftCorner**: *[SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)*
*Defined in [src/UndoRedo.ts:73](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L73)*
___
### height
• **height**: *number*
*Defined in [src/UndoRedo.ts:72](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L72)*
___
### overwrittenCellsData
• **overwrittenCellsData**: *[[SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md), [ClipboardCell](https://hyperformula.handsontable.com/docs/api/globals.md#clipboardcell)][]*
*Defined in [src/UndoRedo.ts:74](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L74)*
___
### sourceLeftCorner
• **sourceLeftCorner**: *[SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)*
*Defined in [src/UndoRedo.ts:70](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L70)*
___
### version
• **version**: *number*
*Defined in [src/UndoRedo.ts:76](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L76)*
___
### width
• **width**: *number*
*Defined in [src/UndoRedo.ts:71](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L71)*
## Methods
### doRedo
▸ **doRedo**(`undoRedo`: [UndoRedo](https://hyperformula.handsontable.com/docs/api/classes/undoredo.md)): *void*
*Defined in [src/UndoRedo.ts:85](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L85)*
**Parameters:**
Name | Type |
------ | ------ |
`undoRedo` | [UndoRedo](https://hyperformula.handsontable.com/docs/api/classes/undoredo.md) |
**Returns:** *void*
___
### doUndo
▸ **doUndo**(`undoRedo`: [UndoRedo](https://hyperformula.handsontable.com/docs/api/classes/undoredo.md)): *void*
*Defined in [src/UndoRedo.ts:81](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L81)*
**Parameters:**
Name | Type |
------ | ------ |
`undoRedo` | [UndoRedo](https://hyperformula.handsontable.com/docs/api/classes/undoredo.md) |
**Returns:** *void*
___
### getReferencedOldDataVersions
▸ **getReferencedOldDataVersions**(): *number[]*
*Defined in [src/UndoRedo.ts:89](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L89)*
**Returns:** *number[]*
---
## NamedExpressionDoesNotExistError
URL: https://hyperformula.handsontable.com/docs/api/classes/namedexpressiondoesnotexisterror
# NamedExpressionDoesNotExistError
Error thrown when the given named expression does not exist.
## Constructors
### constructor
\+ **new NamedExpressionDoesNotExistError**(`expressionName`: string): *[NamedExpressionDoesNotExistError](https://hyperformula.handsontable.com/docs/api/classes/namedexpressiondoesnotexisterror.md)*
*Defined in [src/errors.ts:101](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/errors.ts#L101)*
**Parameters:**
Name | Type |
------ | ------ |
`expressionName` | string |
**Returns:** *[NamedExpressionDoesNotExistError](https://hyperformula.handsontable.com/docs/api/classes/namedexpressiondoesnotexisterror.md)*
## Properties
### message
• **message**: *string*
___
### name
• **name**: *string*
___
### stack
• **stack**? : *undefined | string*
___
### Error
▪ **Error**: *ErrorConstructor*
---
## MoveColumnsUndoEntry
URL: https://hyperformula.handsontable.com/docs/api/classes/movecolumnsundoentry
# MoveColumnsUndoEntry
## Constructors
### constructor
\+ **new MoveColumnsUndoEntry**(`sheet`: number, `startColumn`: number, `numberOfColumns`: number, `targetColumn`: number, `version`: number): *[MoveColumnsUndoEntry](https://hyperformula.handsontable.com/docs/api/classes/movecolumnsundoentry.md)*
*Defined in [src/UndoRedo.ts:195](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L195)*
**Parameters:**
Name | Type |
------ | ------ |
`sheet` | number |
`startColumn` | number |
`numberOfColumns` | number |
`targetColumn` | number |
`version` | number |
**Returns:** *[MoveColumnsUndoEntry](https://hyperformula.handsontable.com/docs/api/classes/movecolumnsundoentry.md)*
## Properties
### numberOfColumns
• **numberOfColumns**: *number*
*Defined in [src/UndoRedo.ts:200](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L200)*
___
### sheet
• **sheet**: *number*
*Defined in [src/UndoRedo.ts:198](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L198)*
___
### startColumn
• **startColumn**: *number*
*Defined in [src/UndoRedo.ts:199](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L199)*
___
### targetColumn
• **targetColumn**: *number*
*Defined in [src/UndoRedo.ts:201](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L201)*
___
### undoEnd
• **undoEnd**: *number*
*Defined in [src/UndoRedo.ts:195](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L195)*
___
### undoStart
• **undoStart**: *number*
*Defined in [src/UndoRedo.ts:194](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L194)*
___
### version
• **version**: *number*
*Defined in [src/UndoRedo.ts:202](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L202)*
## Methods
### doRedo
▸ **doRedo**(`undoRedo`: [UndoRedo](https://hyperformula.handsontable.com/docs/api/classes/undoredo.md)): *void*
*Defined in [src/UndoRedo.ts:213](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L213)*
**Parameters:**
Name | Type |
------ | ------ |
`undoRedo` | [UndoRedo](https://hyperformula.handsontable.com/docs/api/classes/undoredo.md) |
**Returns:** *void*
___
### doUndo
▸ **doUndo**(`undoRedo`: [UndoRedo](https://hyperformula.handsontable.com/docs/api/classes/undoredo.md)): *void*
*Defined in [src/UndoRedo.ts:209](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L209)*
**Parameters:**
Name | Type |
------ | ------ |
`undoRedo` | [UndoRedo](https://hyperformula.handsontable.com/docs/api/classes/undoredo.md) |
**Returns:** *void*
___
### getReferencedOldDataVersions
▸ **getReferencedOldDataVersions**(): *number[]*
*Defined in [src/UndoRedo.ts:217](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L217)*
**Returns:** *number[]*
---
## MoveRowsUndoEntry
URL: https://hyperformula.handsontable.com/docs/api/classes/moverowsundoentry
# MoveRowsUndoEntry
## Constructors
### constructor
\+ **new MoveRowsUndoEntry**(`sheet`: number, `startRow`: number, `numberOfRows`: number, `targetRow`: number, `version`: number): *[MoveRowsUndoEntry](https://hyperformula.handsontable.com/docs/api/classes/moverowsundoentry.md)*
*Defined in [src/UndoRedo.ts:166](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L166)*
**Parameters:**
Name | Type |
------ | ------ |
`sheet` | number |
`startRow` | number |
`numberOfRows` | number |
`targetRow` | number |
`version` | number |
**Returns:** *[MoveRowsUndoEntry](https://hyperformula.handsontable.com/docs/api/classes/moverowsundoentry.md)*
## Properties
### numberOfRows
• **numberOfRows**: *number*
*Defined in [src/UndoRedo.ts:171](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L171)*
___
### sheet
• **sheet**: *number*
*Defined in [src/UndoRedo.ts:169](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L169)*
___
### startRow
• **startRow**: *number*
*Defined in [src/UndoRedo.ts:170](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L170)*
___
### targetRow
• **targetRow**: *number*
*Defined in [src/UndoRedo.ts:172](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L172)*
___
### undoEnd
• **undoEnd**: *number*
*Defined in [src/UndoRedo.ts:166](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L166)*
___
### undoStart
• **undoStart**: *number*
*Defined in [src/UndoRedo.ts:165](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L165)*
___
### version
• **version**: *number*
*Defined in [src/UndoRedo.ts:173](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L173)*
## Methods
### doRedo
▸ **doRedo**(`undoRedo`: [UndoRedo](https://hyperformula.handsontable.com/docs/api/classes/undoredo.md)): *void*
*Defined in [src/UndoRedo.ts:184](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L184)*
**Parameters:**
Name | Type |
------ | ------ |
`undoRedo` | [UndoRedo](https://hyperformula.handsontable.com/docs/api/classes/undoredo.md) |
**Returns:** *void*
___
### doUndo
▸ **doUndo**(`undoRedo`: [UndoRedo](https://hyperformula.handsontable.com/docs/api/classes/undoredo.md)): *void*
*Defined in [src/UndoRedo.ts:180](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L180)*
**Parameters:**
Name | Type |
------ | ------ |
`undoRedo` | [UndoRedo](https://hyperformula.handsontable.com/docs/api/classes/undoredo.md) |
**Returns:** *void*
___
### getReferencedOldDataVersions
▸ **getReferencedOldDataVersions**(): *number[]*
*Defined in [src/UndoRedo.ts:188](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L188)*
**Returns:** *number[]*
---
## NamedExpressionNameIsInvalidError
URL: https://hyperformula.handsontable.com/docs/api/classes/namedexpressionnameisinvaliderror
# NamedExpressionNameIsInvalidError
Error thrown when the name given for the named expression is invalid.
## Constructors
### constructor
\+ **new NamedExpressionNameIsInvalidError**(`expressionName`: string): *[NamedExpressionNameIsInvalidError](https://hyperformula.handsontable.com/docs/api/classes/namedexpressionnameisinvaliderror.md)*
*Defined in [src/errors.ts:92](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/errors.ts#L92)*
**Parameters:**
Name | Type |
------ | ------ |
`expressionName` | string |
**Returns:** *[NamedExpressionNameIsInvalidError](https://hyperformula.handsontable.com/docs/api/classes/namedexpressionnameisinvaliderror.md)*
## Properties
### message
• **message**: *string*
___
### name
• **name**: *string*
___
### stack
• **stack**? : *undefined | string*
___
### Error
▪ **Error**: *ErrorConstructor*
---
## NamedExpressions
URL: https://hyperformula.handsontable.com/docs/api/classes/namedexpressions
# NamedExpressions
## Properties
### SHEET_FOR_WORKBOOK_EXPRESSIONS
▪ **SHEET_FOR_WORKBOOK_EXPRESSIONS**: *number* = -1
*Defined in [src/NamedExpressions.ts:127](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/NamedExpressions.ts#L127)*
## Methods
### addNamedExpression
▸ **addNamedExpression**(`expressionName`: string, `sheetId?`: undefined | number, `options?`: [NamedExpressionOptions](https://hyperformula.handsontable.com/docs/api/globals.md#namedexpressionoptions)): *[InternalNamedExpression](https://hyperformula.handsontable.com/docs/api/classes/internalnamedexpression.md)*
*Defined in [src/NamedExpressions.ts:189](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/NamedExpressions.ts#L189)*
**Parameters:**
Name | Type |
------ | ------ |
`expressionName` | string |
`sheetId?` | undefined | number |
`options?` | [NamedExpressionOptions](https://hyperformula.handsontable.com/docs/api/globals.md#namedexpressionoptions) |
**Returns:** *[InternalNamedExpression](https://hyperformula.handsontable.com/docs/api/classes/internalnamedexpression.md)*
___
### getAllNamedExpressions
▸ **getAllNamedExpressions**(): *object[]*
*Defined in [src/NamedExpressions.ts:251](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/NamedExpressions.ts#L251)*
**Returns:** *object[]*
___
### getAllNamedExpressionsForScope
▸ **getAllNamedExpressionsForScope**(`scope?`: undefined | number): *[InternalNamedExpression](https://hyperformula.handsontable.com/docs/api/classes/internalnamedexpression.md)[]*
*Defined in [src/NamedExpressions.ts:273](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/NamedExpressions.ts#L273)*
**Parameters:**
Name | Type |
------ | ------ |
`scope?` | undefined | number |
**Returns:** *[InternalNamedExpression](https://hyperformula.handsontable.com/docs/api/classes/internalnamedexpression.md)[]*
___
### getAllNamedExpressionsNames
▸ **getAllNamedExpressionsNames**(): *string[]*
*Defined in [src/NamedExpressions.ts:247](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/NamedExpressions.ts#L247)*
**Returns:** *string[]*
___
### getAllNamedExpressionsNamesInScope
▸ **getAllNamedExpressionsNamesInScope**(`sheetId?`: undefined | number): *string[]*
*Defined in [src/NamedExpressions.ts:243](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/NamedExpressions.ts#L243)*
**Parameters:**
Name | Type |
------ | ------ |
`sheetId?` | undefined | number |
**Returns:** *string[]*
___
### isExpressionInScope
▸ **isExpressionInScope**(`expressionName`: string, `sheetId`: number): *boolean*
*Defined in [src/NamedExpressions.ts:162](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/NamedExpressions.ts#L162)*
**Parameters:**
Name | Type |
------ | ------ |
`expressionName` | string |
`sheetId` | number |
**Returns:** *boolean*
___
### isNameAvailable
▸ **isNameAvailable**(`expressionName`: string, `sheetId?`: undefined | number): *boolean*
*Defined in [src/NamedExpressions.ts:133](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/NamedExpressions.ts#L133)*
**Parameters:**
Name | Type |
------ | ------ |
`expressionName` | string |
`sheetId?` | undefined | number |
**Returns:** *boolean*
___
### isNameValid
▸ **isNameValid**(`expressionName`: string): *boolean*
*Defined in [src/NamedExpressions.ts:177](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/NamedExpressions.ts#L177)*
Checks the validity of a named-expression's name.
The name:
- Must start with a Unicode letter or with an underscore (`_`).
- Can contain only Unicode letters, numbers, underscores, and periods (`.`).
- Can't be the same as any possible reference in the A1 notation (`[A-Za-z]+[0-9]+`).
- Can't be the same as any possible reference in the R1C1 notation (`[rR][0-9]*[cC][0-9]*`).
The naming rules follow the [OpenDocument](https://docs.oasis-open.org/office/OpenDocument/v1.3/os/part4-formula/OpenDocument-v1.3-os-part4-formula.html#__RefHeading__1017964_715980110) standard.
**Parameters:**
Name | Type |
------ | ------ |
`expressionName` | string |
**Returns:** *boolean*
___
### namedExpressionForScope
▸ **namedExpressionForScope**(`expressionName`: string, `sheetId?`: undefined | number): *[Maybe](https://hyperformula.handsontable.com/docs/api/globals.md#maybe)‹[InternalNamedExpression](https://hyperformula.handsontable.com/docs/api/classes/internalnamedexpression.md)›*
*Defined in [src/NamedExpressions.ts:150](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/NamedExpressions.ts#L150)*
**Parameters:**
Name | Type |
------ | ------ |
`expressionName` | string |
`sheetId?` | undefined | number |
**Returns:** *[Maybe](https://hyperformula.handsontable.com/docs/api/globals.md#maybe)‹[InternalNamedExpression](https://hyperformula.handsontable.com/docs/api/classes/internalnamedexpression.md)›*
___
### namedExpressionInAddress
▸ **namedExpressionInAddress**(`row`: number): *[Maybe](https://hyperformula.handsontable.com/docs/api/globals.md#maybe)‹[InternalNamedExpression](https://hyperformula.handsontable.com/docs/api/classes/internalnamedexpression.md)›*
*Defined in [src/NamedExpressions.ts:141](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/NamedExpressions.ts#L141)*
**Parameters:**
Name | Type |
------ | ------ |
`row` | number |
**Returns:** *[Maybe](https://hyperformula.handsontable.com/docs/api/globals.md#maybe)‹[InternalNamedExpression](https://hyperformula.handsontable.com/docs/api/classes/internalnamedexpression.md)›*
___
### namedExpressionOrPlaceholder
▸ **namedExpressionOrPlaceholder**(`expressionName`: string, `sheetId`: number): *[InternalNamedExpression](https://hyperformula.handsontable.com/docs/api/classes/internalnamedexpression.md)*
*Defined in [src/NamedExpressions.ts:212](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/NamedExpressions.ts#L212)*
**Parameters:**
Name | Type |
------ | ------ |
`expressionName` | string |
`sheetId` | number |
**Returns:** *[InternalNamedExpression](https://hyperformula.handsontable.com/docs/api/classes/internalnamedexpression.md)*
___
### nearestNamedExpression
▸ **nearestNamedExpression**(`expressionName`: string, `sheetId`: number): *[Maybe](https://hyperformula.handsontable.com/docs/api/globals.md#maybe)‹[InternalNamedExpression](https://hyperformula.handsontable.com/docs/api/classes/internalnamedexpression.md)›*
*Defined in [src/NamedExpressions.ts:158](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/NamedExpressions.ts#L158)*
**Parameters:**
Name | Type |
------ | ------ |
`expressionName` | string |
`sheetId` | number |
**Returns:** *[Maybe](https://hyperformula.handsontable.com/docs/api/globals.md#maybe)‹[InternalNamedExpression](https://hyperformula.handsontable.com/docs/api/classes/internalnamedexpression.md)›*
___
### remove
▸ **remove**(`expressionName`: string, `sheetId?`: undefined | number): *void*
*Defined in [src/NamedExpressions.ts:225](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/NamedExpressions.ts#L225)*
**Parameters:**
Name | Type |
------ | ------ |
`expressionName` | string |
`sheetId?` | undefined | number |
**Returns:** *void*
___
### restoreNamedExpression
▸ **restoreNamedExpression**(`namedExpression`: [InternalNamedExpression](https://hyperformula.handsontable.com/docs/api/classes/internalnamedexpression.md), `sheetId?`: undefined | number): *[InternalNamedExpression](https://hyperformula.handsontable.com/docs/api/classes/internalnamedexpression.md)*
*Defined in [src/NamedExpressions.ts:204](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/NamedExpressions.ts#L204)*
**Parameters:**
Name | Type |
------ | ------ |
`namedExpression` | [InternalNamedExpression](https://hyperformula.handsontable.com/docs/api/classes/internalnamedexpression.md) |
`sheetId?` | undefined | number |
**Returns:** *[InternalNamedExpression](https://hyperformula.handsontable.com/docs/api/classes/internalnamedexpression.md)*
___
### workbookNamedExpressionOrPlaceholder
▸ **workbookNamedExpressionOrPlaceholder**(`expressionName`: string): *[InternalNamedExpression](https://hyperformula.handsontable.com/docs/api/classes/internalnamedexpression.md)*
*Defined in [src/NamedExpressions.ts:216](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/NamedExpressions.ts#L216)*
**Parameters:**
Name | Type |
------ | ------ |
`expressionName` | string |
**Returns:** *[InternalNamedExpression](https://hyperformula.handsontable.com/docs/api/classes/internalnamedexpression.md)*
---
## NamedExpressionNameIsAlreadyTakenError
URL: https://hyperformula.handsontable.com/docs/api/classes/namedexpressionnameisalreadytakenerror
# NamedExpressionNameIsAlreadyTakenError
Error thrown when the given named expression already exists in the workbook and therefore it cannot be added.
## Constructors
### constructor
\+ **new NamedExpressionNameIsAlreadyTakenError**(`expressionName`: string): *[NamedExpressionNameIsAlreadyTakenError](https://hyperformula.handsontable.com/docs/api/classes/namedexpressionnameisalreadytakenerror.md)*
*Defined in [src/errors.ts:83](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/errors.ts#L83)*
**Parameters:**
Name | Type |
------ | ------ |
`expressionName` | string |
**Returns:** *[NamedExpressionNameIsAlreadyTakenError](https://hyperformula.handsontable.com/docs/api/classes/namedexpressionnameisalreadytakenerror.md)*
## Properties
### message
• **message**: *string*
___
### name
• **name**: *string*
___
### stack
• **stack**? : *undefined | string*
___
### Error
▪ **Error**: *ErrorConstructor*
---
## NoOperationToRedoError
URL: https://hyperformula.handsontable.com/docs/api/classes/nooperationtoredoerror
# NoOperationToRedoError
Error thrown when there are no operations to redo by the [redo](https://hyperformula.handsontable.com/docs/api/classes/crudoperations.md#redo) method.
## Constructors
### constructor
\+ **new NoOperationToRedoError**(): *[NoOperationToRedoError](https://hyperformula.handsontable.com/docs/api/classes/nooperationtoredoerror.md)*
*Defined in [src/errors.ts:119](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/errors.ts#L119)*
**Returns:** *[NoOperationToRedoError](https://hyperformula.handsontable.com/docs/api/classes/nooperationtoredoerror.md)*
## Properties
### message
• **message**: *string*
___
### name
• **name**: *string*
___
### stack
• **stack**? : *undefined | string*
___
### Error
▪ **Error**: *ErrorConstructor*
---
## NoRelativeAddressesAllowedError
URL: https://hyperformula.handsontable.com/docs/api/classes/norelativeaddressesallowederror
# NoRelativeAddressesAllowedError
Error thrown when named expression contains relative addresses.
**`see`** [addNamedExpression](https://hyperformula.handsontable.com/docs/api/classes/namedexpressions.md#addnamedexpression)
**`see`** [changeNamedExpression](https://hyperformula.handsontable.com/docs/api/classes/hyperformula.md#changenamedexpression)
## Constructors
### constructor
\+ **new NoRelativeAddressesAllowedError**(): *[NoRelativeAddressesAllowedError](https://hyperformula.handsontable.com/docs/api/classes/norelativeaddressesallowederror.md)*
*Defined in [src/errors.ts:378](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/errors.ts#L378)*
**Returns:** *[NoRelativeAddressesAllowedError](https://hyperformula.handsontable.com/docs/api/classes/norelativeaddressesallowederror.md)*
## Properties
### message
• **message**: *string*
___
### name
• **name**: *string*
___
### stack
• **stack**? : *undefined | string*
___
### Error
▪ **Error**: *ErrorConstructor*
---
## NoOperationToUndoError
URL: https://hyperformula.handsontable.com/docs/api/classes/nooperationtoundoerror
# NoOperationToUndoError
Error thrown when there are no operations to be undone by the [undo](https://hyperformula.handsontable.com/docs/api/classes/crudoperations.md#undo) method.
## Constructors
### constructor
\+ **new NoOperationToUndoError**(): *[NoOperationToUndoError](https://hyperformula.handsontable.com/docs/api/classes/nooperationtoundoerror.md)*
*Defined in [src/errors.ts:110](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/errors.ts#L110)*
**Returns:** *[NoOperationToUndoError](https://hyperformula.handsontable.com/docs/api/classes/nooperationtoundoerror.md)*
## Properties
### message
• **message**: *string*
___
### name
• **name**: *string*
___
### stack
• **stack**? : *undefined | string*
___
### Error
▪ **Error**: *ErrorConstructor*
---
## NoSheetWithNameError
URL: https://hyperformula.handsontable.com/docs/api/classes/nosheetwithnameerror
# NoSheetWithNameError
Error thrown when the sheet of a given name does not exist.
## Constructors
### constructor
\+ **new NoSheetWithNameError**(`sheetName`: string): *[NoSheetWithNameError](https://hyperformula.handsontable.com/docs/api/classes/nosheetwithnameerror.md)*
*Defined in [src/errors.ts:20](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/errors.ts#L20)*
**Parameters:**
Name | Type |
------ | ------ |
`sheetName` | string |
**Returns:** *[NoSheetWithNameError](https://hyperformula.handsontable.com/docs/api/classes/nosheetwithnameerror.md)*
## Properties
### message
• **message**: *string*
___
### name
• **name**: *string*
___
### stack
• **stack**? : *undefined | string*
___
### Error
▪ **Error**: *ErrorConstructor*
---
## NothingToPasteError
URL: https://hyperformula.handsontable.com/docs/api/classes/nothingtopasteerror
# NothingToPasteError
Error thrown when there is nothing to paste by the [paste](https://hyperformula.handsontable.com/docs/api/classes/crudoperations.md#paste) method.
## Constructors
### constructor
\+ **new NothingToPasteError**(): *[NothingToPasteError](https://hyperformula.handsontable.com/docs/api/classes/nothingtopasteerror.md)*
*Defined in [src/errors.ts:128](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/errors.ts#L128)*
**Returns:** *[NothingToPasteError](https://hyperformula.handsontable.com/docs/api/classes/nothingtopasteerror.md)*
## Properties
### message
• **message**: *string*
___
### name
• **name**: *string*
___
### stack
• **stack**? : *undefined | string*
___
### Error
▪ **Error**: *ErrorConstructor*
---
## NotComputedArray
URL: https://hyperformula.handsontable.com/docs/api/classes/notcomputedarray
# NotComputedArray
## Constructors
### constructor
\+ **new NotComputedArray**(`size`: [ArraySize](https://hyperformula.handsontable.com/docs/api/classes/arraysize.md)): *[NotComputedArray](https://hyperformula.handsontable.com/docs/api/classes/notcomputedarray.md)*
*Defined in [src/ArrayValue.ts:23](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ArrayValue.ts#L23)*
**Parameters:**
Name | Type |
------ | ------ |
`size` | [ArraySize](https://hyperformula.handsontable.com/docs/api/classes/arraysize.md) |
**Returns:** *[NotComputedArray](https://hyperformula.handsontable.com/docs/api/classes/notcomputedarray.md)*
## Properties
### size
• **size**: *[ArraySize](https://hyperformula.handsontable.com/docs/api/classes/arraysize.md)*
*Defined in [src/ArrayValue.ts:24](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ArrayValue.ts#L24)*
## Methods
### get
▸ **get**(`col`: number, `row`: number): *number*
*Defined in [src/ArrayValue.ts:36](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ArrayValue.ts#L36)*
**Parameters:**
Name | Type |
------ | ------ |
`col` | number |
`row` | number |
**Returns:** *number*
___
### height
▸ **height**(): *number*
*Defined in [src/ArrayValue.ts:31](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ArrayValue.ts#L31)*
**Returns:** *number*
___
### simpleRangeValue
▸ **simpleRangeValue**(): *[SimpleRangeValue](https://hyperformula.handsontable.com/docs/api/classes/simplerangevalue.md)*
*Defined in [src/ArrayValue.ts:40](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ArrayValue.ts#L40)*
**Returns:** *[SimpleRangeValue](https://hyperformula.handsontable.com/docs/api/classes/simplerangevalue.md)*
___
### width
▸ **width**(): *number*
*Defined in [src/ArrayValue.ts:27](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ArrayValue.ts#L27)*
**Returns:** *number*
---
## NumberLiteralHelper
URL: https://hyperformula.handsontable.com/docs/api/classes/numberliteralhelper
# NumberLiteralHelper
## Constructors
### constructor
\+ **new NumberLiteralHelper**(`config`: [Config](https://hyperformula.handsontable.com/docs/api/classes/config.md)): *[NumberLiteralHelper](https://hyperformula.handsontable.com/docs/api/classes/numberliteralhelper.md)*
*Defined in [src/NumberLiteralHelper.ts:11](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/NumberLiteralHelper.ts#L11)*
**Parameters:**
Name | Type |
------ | ------ |
`config` | [Config](https://hyperformula.handsontable.com/docs/api/classes/config.md) |
**Returns:** *[NumberLiteralHelper](https://hyperformula.handsontable.com/docs/api/classes/numberliteralhelper.md)*
## Methods
### numericStringToMaybeNumber
▸ **numericStringToMaybeNumber**(`input`: string): *[Maybe](https://hyperformula.handsontable.com/docs/api/globals.md#maybe)‹number›*
*Defined in [src/NumberLiteralHelper.ts:27](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/NumberLiteralHelper.ts#L27)*
**Parameters:**
Name | Type |
------ | ------ |
`input` | string |
**Returns:** *[Maybe](https://hyperformula.handsontable.com/docs/api/globals.md#maybe)‹number›*
___
### numericStringToNumber
▸ **numericStringToNumber**(`input`: string): *number*
*Defined in [src/NumberLiteralHelper.ts:39](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/NumberLiteralHelper.ts#L39)*
**Parameters:**
Name | Type |
------ | ------ |
`input` | string |
**Returns:** *number*
---
## NoSheetWithIdError
URL: https://hyperformula.handsontable.com/docs/api/classes/nosheetwithiderror
# NoSheetWithIdError
Error thrown when the sheet of a given ID does not exist.
## Constructors
### constructor
\+ **new NoSheetWithIdError**(`sheetId`: number): *[NoSheetWithIdError](https://hyperformula.handsontable.com/docs/api/classes/nosheetwithiderror.md)*
*Defined in [src/errors.ts:11](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/errors.ts#L11)*
**Parameters:**
Name | Type |
------ | ------ |
`sheetId` | number |
**Returns:** *[NoSheetWithIdError](https://hyperformula.handsontable.com/docs/api/classes/nosheetwithiderror.md)*
## Properties
### message
• **message**: *string*
___
### name
• **name**: *string*
___
### stack
• **stack**? : *undefined | string*
___
### Error
▪ **Error**: *ErrorConstructor*
---
## PasteUndoEntry
URL: https://hyperformula.handsontable.com/docs/api/classes/pasteundoentry
# PasteUndoEntry
## Constructors
### constructor
\+ **new PasteUndoEntry**(`targetLeftCorner`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md), `oldContent`: [[SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md), [ClipboardCell](https://hyperformula.handsontable.com/docs/api/globals.md#clipboardcell)][], `newContent`: [ClipboardCell](https://hyperformula.handsontable.com/docs/api/globals.md#clipboardcell)[][], `addedGlobalNamedExpressions`: string[]): *[PasteUndoEntry](https://hyperformula.handsontable.com/docs/api/classes/pasteundoentry.md)*
*Defined in [src/UndoRedo.ts:366](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L366)*
**Parameters:**
Name | Type |
------ | ------ |
`targetLeftCorner` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) |
`oldContent` | [[SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md), [ClipboardCell](https://hyperformula.handsontable.com/docs/api/globals.md#clipboardcell)][] |
`newContent` | [ClipboardCell](https://hyperformula.handsontable.com/docs/api/globals.md#clipboardcell)[][] |
`addedGlobalNamedExpressions` | string[] |
**Returns:** *[PasteUndoEntry](https://hyperformula.handsontable.com/docs/api/classes/pasteundoentry.md)*
## Properties
### addedGlobalNamedExpressions
• **addedGlobalNamedExpressions**: *string[]*
*Defined in [src/UndoRedo.ts:371](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L371)*
___
### newContent
• **newContent**: *[ClipboardCell](https://hyperformula.handsontable.com/docs/api/globals.md#clipboardcell)[][]*
*Defined in [src/UndoRedo.ts:370](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L370)*
___
### oldContent
• **oldContent**: *[[SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md), [ClipboardCell](https://hyperformula.handsontable.com/docs/api/globals.md#clipboardcell)][]*
*Defined in [src/UndoRedo.ts:369](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L369)*
___
### targetLeftCorner
• **targetLeftCorner**: *[SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)*
*Defined in [src/UndoRedo.ts:368](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L368)*
## Methods
### doRedo
▸ **doRedo**(`undoRedo`: [UndoRedo](https://hyperformula.handsontable.com/docs/api/classes/undoredo.md)): *void*
*Defined in [src/UndoRedo.ts:380](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L380)*
**Parameters:**
Name | Type |
------ | ------ |
`undoRedo` | [UndoRedo](https://hyperformula.handsontable.com/docs/api/classes/undoredo.md) |
**Returns:** *void*
___
### doUndo
▸ **doUndo**(`undoRedo`: [UndoRedo](https://hyperformula.handsontable.com/docs/api/classes/undoredo.md)): *void*
*Defined in [src/UndoRedo.ts:376](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L376)*
**Parameters:**
Name | Type |
------ | ------ |
`undoRedo` | [UndoRedo](https://hyperformula.handsontable.com/docs/api/classes/undoredo.md) |
**Returns:** *void*
___
### getReferencedOldDataVersions
▸ **getReferencedOldDataVersions**(): *number[]*
*Defined in [src/UndoRedo.ts:42](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L42)*
Returns LazilyTransformingAstService version keys referenced by this entry's oldData.
Default implementation returns empty — override in entries that store oldData.
**Returns:** *number[]*
---
## NotAFormulaError
URL: https://hyperformula.handsontable.com/docs/api/classes/notaformulaerror
# NotAFormulaError
Error thrown when the the provided string is not a valid formula, i.e does not start with "="
## Constructors
### constructor
\+ **new NotAFormulaError**(): *[NotAFormulaError](https://hyperformula.handsontable.com/docs/api/classes/notaformulaerror.md)*
*Defined in [src/errors.ts:47](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/errors.ts#L47)*
**Returns:** *[NotAFormulaError](https://hyperformula.handsontable.com/docs/api/classes/notaformulaerror.md)*
## Properties
### message
• **message**: *string*
___
### name
• **name**: *string*
___
### stack
• **stack**? : *undefined | string*
___
### Error
▪ **Error**: *ErrorConstructor*
---
## Operations
URL: https://hyperformula.handsontable.com/docs/api/classes/operations
# Operations
## Constructors
### constructor
\+ **new Operations**(`config`: [Config](https://hyperformula.handsontable.com/docs/api/classes/config.md), `dependencyGraph`: DependencyGraph, `columnSearch`: [ColumnSearchStrategy](https://hyperformula.handsontable.com/docs/api/interfaces/columnsearchstrategy.md), `cellContentParser`: [CellContentParser](https://hyperformula.handsontable.com/docs/api/classes/cellcontentparser.md), `parser`: ParserWithCaching, `stats`: [Statistics](https://hyperformula.handsontable.com/docs/api/classes/statistics.md), `lazilyTransformingAstService`: [LazilyTransformingAstService](https://hyperformula.handsontable.com/docs/api/classes/lazilytransformingastservice.md), `namedExpressions`: [NamedExpressions](https://hyperformula.handsontable.com/docs/api/classes/namedexpressions.md), `arraySizePredictor`: [ArraySizePredictor](https://hyperformula.handsontable.com/docs/api/classes/arraysizepredictor.md)): *[Operations](https://hyperformula.handsontable.com/docs/api/classes/operations.md)*
*Defined in [src/Operations.ts:160](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Operations.ts#L160)*
**Parameters:**
Name | Type |
------ | ------ |
`config` | [Config](https://hyperformula.handsontable.com/docs/api/classes/config.md) |
`dependencyGraph` | DependencyGraph |
`columnSearch` | [ColumnSearchStrategy](https://hyperformula.handsontable.com/docs/api/interfaces/columnsearchstrategy.md) |
`cellContentParser` | [CellContentParser](https://hyperformula.handsontable.com/docs/api/classes/cellcontentparser.md) |
`parser` | ParserWithCaching |
`stats` | [Statistics](https://hyperformula.handsontable.com/docs/api/classes/statistics.md) |
`lazilyTransformingAstService` | [LazilyTransformingAstService](https://hyperformula.handsontable.com/docs/api/classes/lazilytransformingastservice.md) |
`namedExpressions` | [NamedExpressions](https://hyperformula.handsontable.com/docs/api/classes/namedexpressions.md) |
`arraySizePredictor` | [ArraySizePredictor](https://hyperformula.handsontable.com/docs/api/classes/arraysizepredictor.md) |
**Returns:** *[Operations](https://hyperformula.handsontable.com/docs/api/classes/operations.md)*
## Methods
### addColumns
▸ **addColumns**(`cmd`: [AddColumnsCommand](https://hyperformula.handsontable.com/docs/api/classes/addcolumnscommand.md)): *void*
*Defined in [src/Operations.ts:203](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Operations.ts#L203)*
**Parameters:**
Name | Type |
------ | ------ |
`cmd` | [AddColumnsCommand](https://hyperformula.handsontable.com/docs/api/classes/addcolumnscommand.md) |
**Returns:** *void*
___
### addNamedExpression
▸ **addNamedExpression**(`expressionName`: string, `expression`: [RawCellContent](https://hyperformula.handsontable.com/docs/api/globals.md#rawcellcontent), `sheetId?`: undefined | number, `options?`: [NamedExpressionOptions](https://hyperformula.handsontable.com/docs/api/globals.md#namedexpressionoptions)): *void*
*Defined in [src/Operations.ts:420](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Operations.ts#L420)*
**Parameters:**
Name | Type |
------ | ------ |
`expressionName` | string |
`expression` | [RawCellContent](https://hyperformula.handsontable.com/docs/api/globals.md#rawcellcontent) |
`sheetId?` | undefined | number |
`options?` | [NamedExpressionOptions](https://hyperformula.handsontable.com/docs/api/globals.md#namedexpressionoptions) |
**Returns:** *void*
___
### addPlaceholderSheetWithId
▸ **addPlaceholderSheetWithId**(`sheetId`: number, `name`: string): *void*
*Defined in [src/Operations.ts:253](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Operations.ts#L253)*
Adds a placeholder sheet with a specific ID for undo operations.
Used to restore previously merged placeholder sheets.
Note: Unlike `addSheetWithId`, this does NOT call `dependencyGraph.addSheet()`
because placeholders don't need dirty marking or strategy changes - they only
need to exist in the mappings so formulas can reference them again.
**Parameters:**
Name | Type |
------ | ------ |
`sheetId` | number |
`name` | string |
**Returns:** *void*
___
### addRows
▸ **addRows**(`cmd`: [AddRowsCommand](https://hyperformula.handsontable.com/docs/api/classes/addrowscommand.md)): *void*
*Defined in [src/Operations.ts:197](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Operations.ts#L197)*
**Parameters:**
Name | Type |
------ | ------ |
`cmd` | [AddRowsCommand](https://hyperformula.handsontable.com/docs/api/classes/addrowscommand.md) |
**Returns:** *void*
___
### addSheet
▸ **addSheet**(`name?`: undefined | string): *object*
*Defined in [src/Operations.ts:231](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Operations.ts#L231)*
Adds a new sheet to the workbook.
**Parameters:**
Name | Type |
------ | ------ |
`name?` | undefined | string |
**Returns:** *object*
* **sheetId**: *number*
* **sheetName**: *string*
___
### addSheetWithId
▸ **addSheetWithId**(`sheetId`: number, `name`: string): *void*
*Defined in [src/Operations.ts:240](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Operations.ts#L240)*
Adds a sheet with a specific ID for redo operations.
**Parameters:**
Name | Type |
------ | ------ |
`sheetId` | number |
`name` | string |
**Returns:** *void*
___
### changeNamedExpressionExpression
▸ **changeNamedExpressionExpression**(`expressionName`: string, `newExpression`: [RawCellContent](https://hyperformula.handsontable.com/docs/api/globals.md#rawcellcontent), `sheetId?`: undefined | number, `options?`: [NamedExpressionOptions](https://hyperformula.handsontable.com/docs/api/globals.md#namedexpressionoptions)): *[[InternalNamedExpression](https://hyperformula.handsontable.com/docs/api/classes/internalnamedexpression.md), [ClipboardCell](https://hyperformula.handsontable.com/docs/api/globals.md#clipboardcell)]*
*Defined in [src/Operations.ts:433](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Operations.ts#L433)*
**Parameters:**
Name | Type |
------ | ------ |
`expressionName` | string |
`newExpression` | [RawCellContent](https://hyperformula.handsontable.com/docs/api/globals.md#rawcellcontent) |
`sheetId?` | undefined | number |
`options?` | [NamedExpressionOptions](https://hyperformula.handsontable.com/docs/api/globals.md#namedexpressionoptions) |
**Returns:** *[[InternalNamedExpression](https://hyperformula.handsontable.com/docs/api/classes/internalnamedexpression.md), [ClipboardCell](https://hyperformula.handsontable.com/docs/api/globals.md#clipboardcell)]*
___
### clearSheet
▸ **clearSheet**(`sheetId`: number): *void*
*Defined in [src/Operations.ts:223](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Operations.ts#L223)*
Clears the sheet content.
**Parameters:**
Name | Type |
------ | ------ |
`sheetId` | number |
**Returns:** *void*
___
### ensureItIsPossibleToMoveCells
▸ **ensureItIsPossibleToMoveCells**(`sourceLeftCorner`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md), `width`: number, `height`: number, `destinationLeftCorner`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)): *void*
*Defined in [src/Operations.ts:466](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Operations.ts#L466)*
**Parameters:**
Name | Type |
------ | ------ |
`sourceLeftCorner` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) |
`width` | number |
`height` | number |
`destinationLeftCorner` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) |
**Returns:** *void*
___
### forceApplyPostponedTransformations
▸ **forceApplyPostponedTransformations**(): *void*
*Defined in [src/Operations.ts:745](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Operations.ts#L745)*
Forces all formula vertices and column index entries to apply pending lazy
transformations, bringing them up to the current LazilyTransformingAstService version.
Called before undo of move operations and before compaction.
**Returns:** *void*
___
### getAndClearContentChanges
▸ **getAndClearContentChanges**(): *[ContentChanges](https://hyperformula.handsontable.com/docs/api/classes/contentchanges.md)*
*Defined in [src/Operations.ts:734](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Operations.ts#L734)*
**Returns:** *[ContentChanges](https://hyperformula.handsontable.com/docs/api/classes/contentchanges.md)*
___
### getClipboardCell
▸ **getClipboardCell**(`address`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)): *[ClipboardCell](https://hyperformula.handsontable.com/docs/api/globals.md#clipboardcell)*
*Defined in [src/Operations.ts:549](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Operations.ts#L549)*
**Parameters:**
Name | Type |
------ | ------ |
`address` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) |
**Returns:** *[ClipboardCell](https://hyperformula.handsontable.com/docs/api/globals.md#clipboardcell)*
___
### getOldContent
▸ **getOldContent**(`address`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)): *[[SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md), [ClipboardCell](https://hyperformula.handsontable.com/docs/api/globals.md#clipboardcell)]*
*Defined in [src/Operations.ts:530](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Operations.ts#L530)*
**Parameters:**
Name | Type |
------ | ------ |
`address` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) |
**Returns:** *[[SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md), [ClipboardCell](https://hyperformula.handsontable.com/docs/api/globals.md#clipboardcell)]*
___
### getRangeClipboardCells
▸ **getRangeClipboardCells**(`range`: [AbsoluteCellRange](https://hyperformula.handsontable.com/docs/api/classes/absolutecellrange.md)): *[[SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md), [ClipboardCell](https://hyperformula.handsontable.com/docs/api/globals.md#clipboardcell)][]*
*Defined in [src/Operations.ts:590](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Operations.ts#L590)*
**Parameters:**
Name | Type |
------ | ------ |
`range` | [AbsoluteCellRange](https://hyperformula.handsontable.com/docs/api/classes/absolutecellrange.md) |
**Returns:** *[[SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md), [ClipboardCell](https://hyperformula.handsontable.com/docs/api/globals.md#clipboardcell)][]*
___
### getSheetClipboardCells
▸ **getSheetClipboardCells**(`sheet`: number): *[ClipboardCell](https://hyperformula.handsontable.com/docs/api/globals.md#clipboardcell)[][]*
*Defined in [src/Operations.ts:574](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Operations.ts#L574)*
**Parameters:**
Name | Type |
------ | ------ |
`sheet` | number |
**Returns:** *[ClipboardCell](https://hyperformula.handsontable.com/docs/api/globals.md#clipboardcell)[][]*
___
### moveCells
▸ **moveCells**(`sourceLeftCorner`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md), `width`: number, `height`: number, `destinationLeftCorner`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)): *[MoveCellsResult](https://hyperformula.handsontable.com/docs/api/interfaces/movecellsresult.md)*
*Defined in [src/Operations.ts:343](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Operations.ts#L343)*
**Parameters:**
Name | Type |
------ | ------ |
`sourceLeftCorner` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) |
`width` | number |
`height` | number |
`destinationLeftCorner` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) |
**Returns:** *[MoveCellsResult](https://hyperformula.handsontable.com/docs/api/interfaces/movecellsresult.md)*
___
### moveColumns
▸ **moveColumns**(`sheet`: number, `startColumn`: number, `numberOfColumns`: number, `targetColumn`: number): *number*
*Defined in [src/Operations.ts:324](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Operations.ts#L324)*
**Parameters:**
Name | Type |
------ | ------ |
`sheet` | number |
`startColumn` | number |
`numberOfColumns` | number |
`targetColumn` | number |
**Returns:** *number*
___
### moveRows
▸ **moveRows**(`sheet`: number, `startRow`: number, `numberOfRows`: number, `targetRow`: number): *number*
*Defined in [src/Operations.ts:305](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Operations.ts#L305)*
**Parameters:**
Name | Type |
------ | ------ |
`sheet` | number |
`startRow` | number |
`numberOfRows` | number |
`targetRow` | number |
**Returns:** *number*
___
### removeColumns
▸ **removeColumns**(`cmd`: [RemoveColumnsCommand](https://hyperformula.handsontable.com/docs/api/classes/removecolumnscommand.md)): *[ColumnsRemoval](https://hyperformula.handsontable.com/docs/api/interfaces/columnsremoval.md)[]*
*Defined in [src/Operations.ts:209](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Operations.ts#L209)*
**Parameters:**
Name | Type |
------ | ------ |
`cmd` | [RemoveColumnsCommand](https://hyperformula.handsontable.com/docs/api/classes/removecolumnscommand.md) |
**Returns:** *[ColumnsRemoval](https://hyperformula.handsontable.com/docs/api/interfaces/columnsremoval.md)[]*
___
### removeNamedExpression
▸ **removeNamedExpression**(`expressionName`: string, `sheetId?`: undefined | number): *[[InternalNamedExpression](https://hyperformula.handsontable.com/docs/api/classes/internalnamedexpression.md), [ClipboardCell](https://hyperformula.handsontable.com/docs/api/globals.md#clipboardcell)]*
*Defined in [src/Operations.ts:447](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Operations.ts#L447)*
**Parameters:**
Name | Type |
------ | ------ |
`expressionName` | string |
`sheetId?` | undefined | number |
**Returns:** *[[InternalNamedExpression](https://hyperformula.handsontable.com/docs/api/classes/internalnamedexpression.md), [ClipboardCell](https://hyperformula.handsontable.com/docs/api/globals.md#clipboardcell)]*
___
### removeRows
▸ **removeRows**(`cmd`: [RemoveRowsCommand](https://hyperformula.handsontable.com/docs/api/classes/removerowscommand.md)): *[RowsRemoval](https://hyperformula.handsontable.com/docs/api/interfaces/rowsremoval.md)[]*
*Defined in [src/Operations.ts:186](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Operations.ts#L186)*
**Parameters:**
Name | Type |
------ | ------ |
`cmd` | [RemoveRowsCommand](https://hyperformula.handsontable.com/docs/api/classes/removerowscommand.md) |
**Returns:** *[RowsRemoval](https://hyperformula.handsontable.com/docs/api/interfaces/rowsremoval.md)[]*
___
### removeSheet
▸ **removeSheet**(`sheetId`: number): *[[InternalNamedExpression](https://hyperformula.handsontable.com/docs/api/classes/internalnamedexpression.md), [ClipboardCell](https://hyperformula.handsontable.com/docs/api/globals.md#clipboardcell)][]*
*Defined in [src/Operations.ts:261](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Operations.ts#L261)*
Removes a sheet from the workbook.
**Parameters:**
Name | Type |
------ | ------ |
`sheetId` | number |
**Returns:** *[[InternalNamedExpression](https://hyperformula.handsontable.com/docs/api/classes/internalnamedexpression.md), [ClipboardCell](https://hyperformula.handsontable.com/docs/api/globals.md#clipboardcell)][]*
___
### removeSheetByName
▸ **removeSheetByName**(`sheetName`: string): *[[InternalNamedExpression](https://hyperformula.handsontable.com/docs/api/classes/internalnamedexpression.md)‹›, [ClipboardCell](https://hyperformula.handsontable.com/docs/api/globals.md#clipboardcell)][]*
*Defined in [src/Operations.ts:273](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Operations.ts#L273)*
Removes a sheet from the workbook by name.
**Parameters:**
Name | Type |
------ | ------ |
`sheetName` | string |
**Returns:** *[[InternalNamedExpression](https://hyperformula.handsontable.com/docs/api/classes/internalnamedexpression.md)‹›, [ClipboardCell](https://hyperformula.handsontable.com/docs/api/globals.md#clipboardcell)][]*
___
### renameSheet
▸ **renameSheet**(`sheetId`: number, `newName`: string): *object*
*Defined in [src/Operations.ts:281](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Operations.ts#L281)*
Renames a sheet in the workbook.
**Parameters:**
Name | Type |
------ | ------ |
`sheetId` | number |
`newName` | string |
**Returns:** *object*
* **mergedPlaceholderSheetId**? : *undefined | number*
* **previousDisplayName**: *[Maybe](https://hyperformula.handsontable.com/docs/api/globals.md#maybe)‹string›*
* **version**? : *undefined | number*
___
### restoreCell
▸ **restoreCell**(`address`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md), `clipboardCell`: [ClipboardCell](https://hyperformula.handsontable.com/docs/api/globals.md#clipboardcell)): *void*
*Defined in [src/Operations.ts:509](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Operations.ts#L509)*
Restores a single cell.
**Parameters:**
Name | Type |
------ | ------ |
`address` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) |
`clipboardCell` | [ClipboardCell](https://hyperformula.handsontable.com/docs/api/globals.md#clipboardcell) |
**Returns:** *void*
___
### restoreClipboardCells
▸ **restoreClipboardCells**(`sourceSheetId`: number, `cells`: IterableIterator‹[[SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md), [ClipboardCell](https://hyperformula.handsontable.com/docs/api/globals.md#clipboardcell)]›): *string[]*
*Defined in [src/Operations.ts:493](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Operations.ts#L493)*
**Parameters:**
Name | Type |
------ | ------ |
`sourceSheetId` | number |
`cells` | IterableIterator‹[[SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md), [ClipboardCell](https://hyperformula.handsontable.com/docs/api/globals.md#clipboardcell)]› |
**Returns:** *string[]*
___
### restoreNamedExpression
▸ **restoreNamedExpression**(`namedExpression`: [InternalNamedExpression](https://hyperformula.handsontable.com/docs/api/classes/internalnamedexpression.md), `content`: [ClipboardCell](https://hyperformula.handsontable.com/docs/api/globals.md#clipboardcell), `sheetId?`: undefined | number): *void*
*Defined in [src/Operations.ts:426](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Operations.ts#L426)*
**Parameters:**
Name | Type |
------ | ------ |
`namedExpression` | [InternalNamedExpression](https://hyperformula.handsontable.com/docs/api/classes/internalnamedexpression.md) |
`content` | [ClipboardCell](https://hyperformula.handsontable.com/docs/api/globals.md#clipboardcell) |
`sheetId?` | undefined | number |
**Returns:** *void*
___
### rowEffectivelyNotInSheet
▸ **rowEffectivelyNotInSheet**(`row`: number, `sheet`: number): *boolean*
*Defined in [src/Operations.ts:729](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Operations.ts#L729)*
Returns true if row number is outside of given sheet.
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`row` | number | row number |
`sheet` | number | sheet ID number |
**Returns:** *boolean*
___
### setCellContent
▸ **setCellContent**(`address`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md), `newCellContent`: [RawCellContent](https://hyperformula.handsontable.com/docs/api/globals.md#rawcellcontent)): *[[SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md), [ClipboardCell](https://hyperformula.handsontable.com/docs/api/globals.md#clipboardcell)]*
*Defined in [src/Operations.ts:598](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Operations.ts#L598)*
**Parameters:**
Name | Type |
------ | ------ |
`address` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) |
`newCellContent` | [RawCellContent](https://hyperformula.handsontable.com/docs/api/globals.md#rawcellcontent) |
**Returns:** *[[SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md), [ClipboardCell](https://hyperformula.handsontable.com/docs/api/globals.md#clipboardcell)]*
___
### setCellEmpty
▸ **setCellEmpty**(`address`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)): *void*
*Defined in [src/Operations.ts:695](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Operations.ts#L695)*
Sets cell content to an empty value.
Creates an EmptyCellVertex and updates the dependency graph and column search index.
**Parameters:**
Name | Type |
------ | ------ |
`address` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) |
**Returns:** *void*
___
### setColumnOrder
▸ **setColumnOrder**(`sheetId`: number, `columnMapping`: [number, number][]): *[[SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md), [ClipboardCell](https://hyperformula.handsontable.com/docs/api/globals.md#clipboardcell)][]*
*Defined in [src/Operations.ts:399](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Operations.ts#L399)*
**Parameters:**
Name | Type |
------ | ------ |
`sheetId` | number |
`columnMapping` | [number, number][] |
**Returns:** *[[SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md), [ClipboardCell](https://hyperformula.handsontable.com/docs/api/globals.md#clipboardcell)][]*
___
### setFormulaToCell
▸ **setFormulaToCell**(`address`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md), `size`: [ArraySize](https://hyperformula.handsontable.com/docs/api/classes/arraysize.md), `__namedParameters`: object): *void*
*Defined in [src/Operations.ts:663](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Operations.ts#L663)*
Sets cell content to a formula.
Creates a ScalarFormulaVertex and updates the dependency graph and column search index.
**Parameters:**
▪ **address**: *[SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)*
▪ **size**: *[ArraySize](https://hyperformula.handsontable.com/docs/api/classes/arraysize.md)*
▪ **__namedParameters**: *object*
Name | Type |
------ | ------ |
`ast` | Ast |
`dependencies` | RelativeDependency[] |
`hasStructuralChangeFunction` | boolean |
`hasVolatileFunction` | boolean |
**Returns:** *void*
___
### setFormulaToCellFromCache
▸ **setFormulaToCellFromCache**(`formulaHash`: string, `address`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)): *void*
*Defined in [src/Operations.ts:709](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Operations.ts#L709)*
**Parameters:**
Name | Type |
------ | ------ |
`formulaHash` | string |
`address` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) |
**Returns:** *void*
___
### setParsingErrorToCell
▸ **setParsingErrorToCell**(`rawInput`: string, `errors`: ParsingError[], `address`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)): *void*
*Defined in [src/Operations.ts:648](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Operations.ts#L648)*
Sets cell content to an instance of parsing error.
Creates a ParsingErrorVertex and updates the dependency graph and column search index.
**Parameters:**
Name | Type |
------ | ------ |
`rawInput` | string |
`errors` | ParsingError[] |
`address` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) |
**Returns:** *void*
___
### setRowOrder
▸ **setRowOrder**(`sheetId`: number, `rowMapping`: [number, number][]): *[[SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md), [ClipboardCell](https://hyperformula.handsontable.com/docs/api/globals.md#clipboardcell)][]*
*Defined in [src/Operations.ts:378](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Operations.ts#L378)*
**Parameters:**
Name | Type |
------ | ------ |
`sheetId` | number |
`rowMapping` | [number, number][] |
**Returns:** *[[SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md), [ClipboardCell](https://hyperformula.handsontable.com/docs/api/globals.md#clipboardcell)][]*
___
### setSheetContent
▸ **setSheetContent**(`sheetId`: number, `newSheetContent`: [RawCellContent](https://hyperformula.handsontable.com/docs/api/globals.md#rawcellcontent)[][]): *void*
*Defined in [src/Operations.ts:634](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Operations.ts#L634)*
**Parameters:**
Name | Type |
------ | ------ |
`sheetId` | number |
`newSheetContent` | [RawCellContent](https://hyperformula.handsontable.com/docs/api/globals.md#rawcellcontent)[][] |
**Returns:** *void*
___
### setValueToCell
▸ **setValueToCell**(`value`: RawAndParsedValue, `address`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)): *void*
*Defined in [src/Operations.ts:681](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Operations.ts#L681)*
Sets cell content to a value.
Creates a ValueCellVertex and updates the dependency graph and column search index.
**Parameters:**
Name | Type |
------ | ------ |
`value` | RawAndParsedValue |
`address` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) |
**Returns:** *void*
---
## ProtectedFunctionError
URL: https://hyperformula.handsontable.com/docs/api/classes/protectedfunctionerror
# ProtectedFunctionError
Error thrown when trying to register, override or remove function with reserved id.
**`see`** [registerFunctionPlugin](https://hyperformula.handsontable.com/docs/api/classes/hyperformula.md#static-registerfunctionplugin)
**`see`** [registerFunction](https://hyperformula.handsontable.com/docs/api/classes/hyperformula.md#static-registerfunction)
**`see`** [unregisterFunction](https://hyperformula.handsontable.com/docs/api/classes/hyperformula.md#static-unregisterfunction)
## Properties
### message
• **message**: *string*
___
### name
• **name**: *string*
___
### stack
• **stack**? : *undefined | string*
___
### Error
▪ **Error**: *ErrorConstructor*
## Methods
### cannotRegisterFunctionWithId
▸ **cannotRegisterFunctionWithId**(`functionId`: string): *[ProtectedFunctionError](https://hyperformula.handsontable.com/docs/api/classes/protectedfunctionerror.md)*
*Defined in [src/errors.ts:334](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/errors.ts#L334)*
**Parameters:**
Name | Type |
------ | ------ |
`functionId` | string |
**Returns:** *[ProtectedFunctionError](https://hyperformula.handsontable.com/docs/api/classes/protectedfunctionerror.md)*
___
### cannotUnregisterFunctionWithId
▸ **cannotUnregisterFunctionWithId**(`functionId`: string): *[ProtectedFunctionError](https://hyperformula.handsontable.com/docs/api/classes/protectedfunctionerror.md)*
*Defined in [src/errors.ts:338](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/errors.ts#L338)*
**Parameters:**
Name | Type |
------ | ------ |
`functionId` | string |
**Returns:** *[ProtectedFunctionError](https://hyperformula.handsontable.com/docs/api/classes/protectedfunctionerror.md)*
___
### cannotUnregisterProtectedPlugin
▸ **cannotUnregisterProtectedPlugin**(): *[ProtectedFunctionError](https://hyperformula.handsontable.com/docs/api/classes/protectedfunctionerror.md)*
*Defined in [src/errors.ts:342](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/errors.ts#L342)*
**Returns:** *[ProtectedFunctionError](https://hyperformula.handsontable.com/docs/api/classes/protectedfunctionerror.md)*
---
## RemoveColumnsUndoEntry
URL: https://hyperformula.handsontable.com/docs/api/classes/removecolumnsundoentry
# RemoveColumnsUndoEntry
## Constructors
### constructor
\+ **new RemoveColumnsUndoEntry**(`command`: [RemoveColumnsCommand](https://hyperformula.handsontable.com/docs/api/classes/removecolumnscommand.md), `columnsRemovals`: [ColumnsRemoval](https://hyperformula.handsontable.com/docs/api/interfaces/columnsremoval.md)[]): *[RemoveColumnsUndoEntry](https://hyperformula.handsontable.com/docs/api/classes/removecolumnsundoentry.md)*
*Defined in [src/UndoRedo.ts:238](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L238)*
**Parameters:**
Name | Type |
------ | ------ |
`command` | [RemoveColumnsCommand](https://hyperformula.handsontable.com/docs/api/classes/removecolumnscommand.md) |
`columnsRemovals` | [ColumnsRemoval](https://hyperformula.handsontable.com/docs/api/interfaces/columnsremoval.md)[] |
**Returns:** *[RemoveColumnsUndoEntry](https://hyperformula.handsontable.com/docs/api/classes/removecolumnsundoentry.md)*
## Properties
### columnsRemovals
• **columnsRemovals**: *[ColumnsRemoval](https://hyperformula.handsontable.com/docs/api/interfaces/columnsremoval.md)[]*
*Defined in [src/UndoRedo.ts:241](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L241)*
___
### command
• **command**: *[RemoveColumnsCommand](https://hyperformula.handsontable.com/docs/api/classes/removecolumnscommand.md)*
*Defined in [src/UndoRedo.ts:240](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L240)*
## Methods
### doRedo
▸ **doRedo**(`undoRedo`: [UndoRedo](https://hyperformula.handsontable.com/docs/api/classes/undoredo.md)): *void*
*Defined in [src/UndoRedo.ts:250](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L250)*
**Parameters:**
Name | Type |
------ | ------ |
`undoRedo` | [UndoRedo](https://hyperformula.handsontable.com/docs/api/classes/undoredo.md) |
**Returns:** *void*
___
### doUndo
▸ **doUndo**(`undoRedo`: [UndoRedo](https://hyperformula.handsontable.com/docs/api/classes/undoredo.md)): *void*
*Defined in [src/UndoRedo.ts:246](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L246)*
**Parameters:**
Name | Type |
------ | ------ |
`undoRedo` | [UndoRedo](https://hyperformula.handsontable.com/docs/api/classes/undoredo.md) |
**Returns:** *void*
___
### getReferencedOldDataVersions
▸ **getReferencedOldDataVersions**(): *number[]*
*Defined in [src/UndoRedo.ts:254](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L254)*
**Returns:** *number[]*
---
## RemoveColumnsCommand
URL: https://hyperformula.handsontable.com/docs/api/classes/removecolumnscommand
# RemoveColumnsCommand
## Constructors
### constructor
\+ **new RemoveColumnsCommand**(`sheet`: number, `indexes`: [ColumnRowIndex](https://hyperformula.handsontable.com/docs/api/globals.md#columnrowindex)[]): *[RemoveColumnsCommand](https://hyperformula.handsontable.com/docs/api/classes/removecolumnscommand.md)*
*Defined in [src/Operations.ts:114](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Operations.ts#L114)*
**Parameters:**
Name | Type |
------ | ------ |
`sheet` | number |
`indexes` | [ColumnRowIndex](https://hyperformula.handsontable.com/docs/api/globals.md#columnrowindex)[] |
**Returns:** *[RemoveColumnsCommand](https://hyperformula.handsontable.com/docs/api/classes/removecolumnscommand.md)*
## Properties
### indexes
• **indexes**: *[ColumnRowIndex](https://hyperformula.handsontable.com/docs/api/globals.md#columnrowindex)[]*
*Defined in [src/Operations.ts:117](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Operations.ts#L117)*
___
### sheet
• **sheet**: *number*
*Defined in [src/Operations.ts:116](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Operations.ts#L116)*
## Methods
### columnsSpans
▸ **columnsSpans**(): *[ColumnsSpan](https://hyperformula.handsontable.com/docs/api/classes/columnsspan.md)[]*
*Defined in [src/Operations.ts:125](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Operations.ts#L125)*
**Returns:** *[ColumnsSpan](https://hyperformula.handsontable.com/docs/api/classes/columnsspan.md)[]*
___
### normalizedIndexes
▸ **normalizedIndexes**(): *[ColumnRowIndex](https://hyperformula.handsontable.com/docs/api/globals.md#columnrowindex)[]*
*Defined in [src/Operations.ts:121](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Operations.ts#L121)*
**Returns:** *[ColumnRowIndex](https://hyperformula.handsontable.com/docs/api/globals.md#columnrowindex)[]*
---
## RemoveRowsCommand
URL: https://hyperformula.handsontable.com/docs/api/classes/removerowscommand
# RemoveRowsCommand
## Constructors
### constructor
\+ **new RemoveRowsCommand**(`sheet`: number, `indexes`: [ColumnRowIndex](https://hyperformula.handsontable.com/docs/api/globals.md#columnrowindex)[]): *[RemoveRowsCommand](https://hyperformula.handsontable.com/docs/api/classes/removerowscommand.md)*
*Defined in [src/Operations.ts:60](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Operations.ts#L60)*
**Parameters:**
Name | Type |
------ | ------ |
`sheet` | number |
`indexes` | [ColumnRowIndex](https://hyperformula.handsontable.com/docs/api/globals.md#columnrowindex)[] |
**Returns:** *[RemoveRowsCommand](https://hyperformula.handsontable.com/docs/api/classes/removerowscommand.md)*
## Properties
### indexes
• **indexes**: *[ColumnRowIndex](https://hyperformula.handsontable.com/docs/api/globals.md#columnrowindex)[]*
*Defined in [src/Operations.ts:63](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Operations.ts#L63)*
___
### sheet
• **sheet**: *number*
*Defined in [src/Operations.ts:62](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Operations.ts#L62)*
## Methods
### normalizedIndexes
▸ **normalizedIndexes**(): *[ColumnRowIndex](https://hyperformula.handsontable.com/docs/api/globals.md#columnrowindex)[]*
*Defined in [src/Operations.ts:67](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Operations.ts#L67)*
**Returns:** *[ColumnRowIndex](https://hyperformula.handsontable.com/docs/api/globals.md#columnrowindex)[]*
___
### rowsSpans
▸ **rowsSpans**(): *[RowsSpan](https://hyperformula.handsontable.com/docs/api/classes/rowsspan.md)[]*
*Defined in [src/Operations.ts:71](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Operations.ts#L71)*
**Returns:** *[RowsSpan](https://hyperformula.handsontable.com/docs/api/classes/rowsspan.md)[]*
---
## RemoveNamedExpressionUndoEntry
URL: https://hyperformula.handsontable.com/docs/api/classes/removenamedexpressionundoentry
# RemoveNamedExpressionUndoEntry
## Constructors
### constructor
\+ **new RemoveNamedExpressionUndoEntry**(`namedExpression`: [InternalNamedExpression](https://hyperformula.handsontable.com/docs/api/classes/internalnamedexpression.md), `content`: [ClipboardCell](https://hyperformula.handsontable.com/docs/api/globals.md#clipboardcell), `scope?`: undefined | number): *[RemoveNamedExpressionUndoEntry](https://hyperformula.handsontable.com/docs/api/classes/removenamedexpressionundoentry.md)*
*Defined in [src/UndoRedo.ts:404](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L404)*
**Parameters:**
Name | Type |
------ | ------ |
`namedExpression` | [InternalNamedExpression](https://hyperformula.handsontable.com/docs/api/classes/internalnamedexpression.md) |
`content` | [ClipboardCell](https://hyperformula.handsontable.com/docs/api/globals.md#clipboardcell) |
`scope?` | undefined | number |
**Returns:** *[RemoveNamedExpressionUndoEntry](https://hyperformula.handsontable.com/docs/api/classes/removenamedexpressionundoentry.md)*
## Properties
### content
• **content**: *[ClipboardCell](https://hyperformula.handsontable.com/docs/api/globals.md#clipboardcell)*
*Defined in [src/UndoRedo.ts:407](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L407)*
___
### namedExpression
• **namedExpression**: *[InternalNamedExpression](https://hyperformula.handsontable.com/docs/api/classes/internalnamedexpression.md)*
*Defined in [src/UndoRedo.ts:406](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L406)*
___
### scope
• **scope**? : *undefined | number*
*Defined in [src/UndoRedo.ts:408](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L408)*
## Methods
### doRedo
▸ **doRedo**(`undoRedo`: [UndoRedo](https://hyperformula.handsontable.com/docs/api/classes/undoredo.md)): *void*
*Defined in [src/UndoRedo.ts:417](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L417)*
**Parameters:**
Name | Type |
------ | ------ |
`undoRedo` | [UndoRedo](https://hyperformula.handsontable.com/docs/api/classes/undoredo.md) |
**Returns:** *void*
___
### doUndo
▸ **doUndo**(`undoRedo`: [UndoRedo](https://hyperformula.handsontable.com/docs/api/classes/undoredo.md)): *void*
*Defined in [src/UndoRedo.ts:413](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L413)*
**Parameters:**
Name | Type |
------ | ------ |
`undoRedo` | [UndoRedo](https://hyperformula.handsontable.com/docs/api/classes/undoredo.md) |
**Returns:** *void*
___
### getReferencedOldDataVersions
▸ **getReferencedOldDataVersions**(): *number[]*
*Defined in [src/UndoRedo.ts:42](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L42)*
Returns LazilyTransformingAstService version keys referenced by this entry's oldData.
Default implementation returns empty — override in entries that store oldData.
**Returns:** *number[]*
---
## ProtectedFunctionTranslationError
URL: https://hyperformula.handsontable.com/docs/api/classes/protectedfunctiontranslationerror
# ProtectedFunctionTranslationError
Error thrown when trying to override protected translation.
**`see`** [registerLanguage](https://hyperformula.handsontable.com/docs/api/classes/hyperformula.md#static-registerlanguage)
**`see`** [registerFunction](https://hyperformula.handsontable.com/docs/api/classes/hyperformula.md#static-registerfunction)
**`see`** [registerFunctionPlugin](https://hyperformula.handsontable.com/docs/api/classes/hyperformula.md#static-registerfunctionplugin)
## Constructors
### constructor
\+ **new ProtectedFunctionTranslationError**(`key`: string): *[ProtectedFunctionTranslationError](https://hyperformula.handsontable.com/docs/api/classes/protectedfunctiontranslationerror.md)*
*Defined in [src/errors.ts:279](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/errors.ts#L279)*
**Parameters:**
Name | Type |
------ | ------ |
`key` | string |
**Returns:** *[ProtectedFunctionTranslationError](https://hyperformula.handsontable.com/docs/api/classes/protectedfunctiontranslationerror.md)*
## Properties
### message
• **message**: *string*
___
### name
• **name**: *string*
___
### stack
• **stack**? : *undefined | string*
___
### Error
▪ **Error**: *ErrorConstructor*
---
## RemoveRowsUndoEntry
URL: https://hyperformula.handsontable.com/docs/api/classes/removerowsundoentry
# RemoveRowsUndoEntry
## Constructors
### constructor
\+ **new RemoveRowsUndoEntry**(`command`: [RemoveRowsCommand](https://hyperformula.handsontable.com/docs/api/classes/removerowscommand.md), `rowsRemovals`: [RowsRemoval](https://hyperformula.handsontable.com/docs/api/interfaces/rowsremoval.md)[]): *[RemoveRowsUndoEntry](https://hyperformula.handsontable.com/docs/api/classes/removerowsundoentry.md)*
*Defined in [src/UndoRedo.ts:47](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L47)*
**Parameters:**
Name | Type |
------ | ------ |
`command` | [RemoveRowsCommand](https://hyperformula.handsontable.com/docs/api/classes/removerowscommand.md) |
`rowsRemovals` | [RowsRemoval](https://hyperformula.handsontable.com/docs/api/interfaces/rowsremoval.md)[] |
**Returns:** *[RemoveRowsUndoEntry](https://hyperformula.handsontable.com/docs/api/classes/removerowsundoentry.md)*
## Properties
### command
• **command**: *[RemoveRowsCommand](https://hyperformula.handsontable.com/docs/api/classes/removerowscommand.md)*
*Defined in [src/UndoRedo.ts:49](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L49)*
___
### rowsRemovals
• **rowsRemovals**: *[RowsRemoval](https://hyperformula.handsontable.com/docs/api/interfaces/rowsremoval.md)[]*
*Defined in [src/UndoRedo.ts:50](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L50)*
## Methods
### doRedo
▸ **doRedo**(`undoRedo`: [UndoRedo](https://hyperformula.handsontable.com/docs/api/classes/undoredo.md)): *void*
*Defined in [src/UndoRedo.ts:59](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L59)*
**Parameters:**
Name | Type |
------ | ------ |
`undoRedo` | [UndoRedo](https://hyperformula.handsontable.com/docs/api/classes/undoredo.md) |
**Returns:** *void*
___
### doUndo
▸ **doUndo**(`undoRedo`: [UndoRedo](https://hyperformula.handsontable.com/docs/api/classes/undoredo.md)): *void*
*Defined in [src/UndoRedo.ts:55](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L55)*
**Parameters:**
Name | Type |
------ | ------ |
`undoRedo` | [UndoRedo](https://hyperformula.handsontable.com/docs/api/classes/undoredo.md) |
**Returns:** *void*
___
### getReferencedOldDataVersions
▸ **getReferencedOldDataVersions**(): *number[]*
*Defined in [src/UndoRedo.ts:63](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L63)*
**Returns:** *number[]*
---
## RenameSheetUndoEntry
URL: https://hyperformula.handsontable.com/docs/api/classes/renamesheetundoentry
# RenameSheetUndoEntry
Undo entry for renaming a sheet.
When renaming a sheet to a name that was previously referenced (but didn't exist),
a placeholder sheet gets merged into the renamed sheet. In this case:
- `version` contains the transformation version for restoring formulas during undo
- `mergedPlaceholderSheetId` contains the ID of the placeholder sheet that was merged
When renaming to a name not previously referenced, both optional params are undefined.
## Constructors
### constructor
\+ **new RenameSheetUndoEntry**(`sheetId`: number, `oldName`: string, `newName`: string, `version?`: undefined | number, `mergedPlaceholderSheetId?`: undefined | number): *[RenameSheetUndoEntry](https://hyperformula.handsontable.com/docs/api/classes/renamesheetundoentry.md)*
*Defined in [src/UndoRedo.ts:305](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L305)*
**Parameters:**
Name | Type |
------ | ------ |
`sheetId` | number |
`oldName` | string |
`newName` | string |
`version?` | undefined | number |
`mergedPlaceholderSheetId?` | undefined | number |
**Returns:** *[RenameSheetUndoEntry](https://hyperformula.handsontable.com/docs/api/classes/renamesheetundoentry.md)*
## Properties
### mergedPlaceholderSheetId
• **mergedPlaceholderSheetId**? : *undefined | number*
*Defined in [src/UndoRedo.ts:311](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L311)*
___
### newName
• **newName**: *string*
*Defined in [src/UndoRedo.ts:309](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L309)*
___
### oldName
• **oldName**: *string*
*Defined in [src/UndoRedo.ts:308](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L308)*
___
### sheetId
• **sheetId**: *number*
*Defined in [src/UndoRedo.ts:307](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L307)*
___
### version
• **version**? : *undefined | number*
*Defined in [src/UndoRedo.ts:310](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L310)*
## Methods
### doRedo
▸ **doRedo**(`undoRedo`: [UndoRedo](https://hyperformula.handsontable.com/docs/api/classes/undoredo.md)): *void*
*Defined in [src/UndoRedo.ts:320](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L320)*
**Parameters:**
Name | Type |
------ | ------ |
`undoRedo` | [UndoRedo](https://hyperformula.handsontable.com/docs/api/classes/undoredo.md) |
**Returns:** *void*
___
### doUndo
▸ **doUndo**(`undoRedo`: [UndoRedo](https://hyperformula.handsontable.com/docs/api/classes/undoredo.md)): *void*
*Defined in [src/UndoRedo.ts:316](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L316)*
**Parameters:**
Name | Type |
------ | ------ |
`undoRedo` | [UndoRedo](https://hyperformula.handsontable.com/docs/api/classes/undoredo.md) |
**Returns:** *void*
___
### getReferencedOldDataVersions
▸ **getReferencedOldDataVersions**(): *number[]*
*Defined in [src/UndoRedo.ts:324](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L324)*
**Returns:** *number[]*
---
## RowSearchStrategy
URL: https://hyperformula.handsontable.com/docs/api/classes/rowsearchstrategy
# RowSearchStrategy
## Constructors
### constructor
\+ **new RowSearchStrategy**(`dependencyGraph`: DependencyGraph): *[RowSearchStrategy](https://hyperformula.handsontable.com/docs/api/classes/rowsearchstrategy.md)*
*Defined in [src/Lookup/RowSearchStrategy.ts:12](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Lookup/RowSearchStrategy.ts#L12)*
**Parameters:**
Name | Type |
------ | ------ |
`dependencyGraph` | DependencyGraph |
**Returns:** *[RowSearchStrategy](https://hyperformula.handsontable.com/docs/api/classes/rowsearchstrategy.md)*
## Methods
### advancedFind
▸ **advancedFind**(`keyMatcher`: function, `rangeValue`: [SimpleRangeValue](https://hyperformula.handsontable.com/docs/api/classes/simplerangevalue.md), `__namedParameters`: object): *number*
*Defined in [src/Lookup/AdvancedFind.ts:27](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Lookup/AdvancedFind.ts#L27)*
**Parameters:**
▪ **keyMatcher**: *function*
▸ (`arg`: RawInterpreterValue): *boolean*
**Parameters:**
Name | Type |
------ | ------ |
`arg` | RawInterpreterValue |
▪ **rangeValue**: *[SimpleRangeValue](https://hyperformula.handsontable.com/docs/api/classes/simplerangevalue.md)*
▪`Default value` **__namedParameters**: *object*= { returnOccurrence: 'first' }
Name | Type |
------ | ------ |
`returnOccurrence` | undefined | "first" | "last" |
**Returns:** *number*
___
### find
▸ **find**(`searchKey`: RawNoErrorScalarValue, `rangeValue`: [SimpleRangeValue](https://hyperformula.handsontable.com/docs/api/classes/simplerangevalue.md), `searchOptions`: [SearchOptions](https://hyperformula.handsontable.com/docs/api/interfaces/searchoptions.md)): *number*
*Defined in [src/Lookup/RowSearchStrategy.ts:20](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Lookup/RowSearchStrategy.ts#L20)*
**Parameters:**
Name | Type |
------ | ------ |
`searchKey` | RawNoErrorScalarValue |
`rangeValue` | [SimpleRangeValue](https://hyperformula.handsontable.com/docs/api/classes/simplerangevalue.md) |
`searchOptions` | [SearchOptions](https://hyperformula.handsontable.com/docs/api/interfaces/searchoptions.md) |
**Returns:** *number*
---
## RemoveSheetUndoEntry
URL: https://hyperformula.handsontable.com/docs/api/classes/removesheetundoentry
# RemoveSheetUndoEntry
## Constructors
### constructor
\+ **new RemoveSheetUndoEntry**(`sheetName`: string, `sheetId`: number, `oldSheetContent`: [ClipboardCell](https://hyperformula.handsontable.com/docs/api/globals.md#clipboardcell)[][], `scopedNamedExpressions`: [[InternalNamedExpression](https://hyperformula.handsontable.com/docs/api/classes/internalnamedexpression.md), [ClipboardCell](https://hyperformula.handsontable.com/docs/api/globals.md#clipboardcell)][]): *[RemoveSheetUndoEntry](https://hyperformula.handsontable.com/docs/api/classes/removesheetundoentry.md)*
*Defined in [src/UndoRedo.ts:276](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L276)*
**Parameters:**
Name | Type |
------ | ------ |
`sheetName` | string |
`sheetId` | number |
`oldSheetContent` | [ClipboardCell](https://hyperformula.handsontable.com/docs/api/globals.md#clipboardcell)[][] |
`scopedNamedExpressions` | [[InternalNamedExpression](https://hyperformula.handsontable.com/docs/api/classes/internalnamedexpression.md), [ClipboardCell](https://hyperformula.handsontable.com/docs/api/globals.md#clipboardcell)][] |
**Returns:** *[RemoveSheetUndoEntry](https://hyperformula.handsontable.com/docs/api/classes/removesheetundoentry.md)*
## Properties
### oldSheetContent
• **oldSheetContent**: *[ClipboardCell](https://hyperformula.handsontable.com/docs/api/globals.md#clipboardcell)[][]*
*Defined in [src/UndoRedo.ts:280](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L280)*
___
### scopedNamedExpressions
• **scopedNamedExpressions**: *[[InternalNamedExpression](https://hyperformula.handsontable.com/docs/api/classes/internalnamedexpression.md), [ClipboardCell](https://hyperformula.handsontable.com/docs/api/globals.md#clipboardcell)][]*
*Defined in [src/UndoRedo.ts:281](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L281)*
___
### sheetId
• **sheetId**: *number*
*Defined in [src/UndoRedo.ts:279](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L279)*
___
### sheetName
• **sheetName**: *string*
*Defined in [src/UndoRedo.ts:278](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L278)*
## Methods
### doRedo
▸ **doRedo**(`undoRedo`: [UndoRedo](https://hyperformula.handsontable.com/docs/api/classes/undoredo.md)): *void*
*Defined in [src/UndoRedo.ts:290](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L290)*
**Parameters:**
Name | Type |
------ | ------ |
`undoRedo` | [UndoRedo](https://hyperformula.handsontable.com/docs/api/classes/undoredo.md) |
**Returns:** *void*
___
### doUndo
▸ **doUndo**(`undoRedo`: [UndoRedo](https://hyperformula.handsontable.com/docs/api/classes/undoredo.md)): *void*
*Defined in [src/UndoRedo.ts:286](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L286)*
**Parameters:**
Name | Type |
------ | ------ |
`undoRedo` | [UndoRedo](https://hyperformula.handsontable.com/docs/api/classes/undoredo.md) |
**Returns:** *void*
___
### getReferencedOldDataVersions
▸ **getReferencedOldDataVersions**(): *number[]*
*Defined in [src/UndoRedo.ts:42](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L42)*
Returns LazilyTransformingAstService version keys referenced by this entry's oldData.
Default implementation returns empty — override in entries that store oldData.
**Returns:** *number[]*
---
## Serialization
URL: https://hyperformula.handsontable.com/docs/api/classes/serialization
# Serialization
## Constructors
### constructor
\+ **new Serialization**(`dependencyGraph`: DependencyGraph, `unparser`: Unparser, `exporter`: [Exporter](https://hyperformula.handsontable.com/docs/api/classes/exporter.md)): *[Serialization](https://hyperformula.handsontable.com/docs/api/classes/serialization.md)*
*Defined in [src/Serialization.ts:23](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Serialization.ts#L23)*
**Parameters:**
Name | Type |
------ | ------ |
`dependencyGraph` | DependencyGraph |
`unparser` | Unparser |
`exporter` | [Exporter](https://hyperformula.handsontable.com/docs/api/classes/exporter.md) |
**Returns:** *[Serialization](https://hyperformula.handsontable.com/docs/api/classes/serialization.md)*
## Methods
### genericAllSheetsGetter
▸ **genericAllSheetsGetter**‹**T**›(`sheetGetter`: function): *Record‹string, T›*
*Defined in [src/Serialization.ts:115](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Serialization.ts#L115)*
**Type parameters:**
▪ **T**
**Parameters:**
▪ **sheetGetter**: *function*
▸ (`sheet`: number): *T*
**Parameters:**
Name | Type |
------ | ------ |
`sheet` | number |
**Returns:** *Record‹string, T›*
___
### genericSheetGetter
▸ **genericSheetGetter**‹**T**›(`sheet`: number, `getter`: function): *T[][]*
*Defined in [src/Serialization.ts:84](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Serialization.ts#L84)*
**Type parameters:**
▪ **T**
**Parameters:**
▪ **sheet**: *number*
▪ **getter**: *function*
▸ (`address`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)): *T*
**Parameters:**
Name | Type |
------ | ------ |
`address` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) |
**Returns:** *T[][]*
___
### getAllNamedExpressionsSerialized
▸ **getAllNamedExpressionsSerialized**(): *[SerializedNamedExpression](https://hyperformula.handsontable.com/docs/api/interfaces/serializednamedexpression.md)[]*
*Defined in [src/Serialization.ts:140](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Serialization.ts#L140)*
**Returns:** *[SerializedNamedExpression](https://hyperformula.handsontable.com/docs/api/interfaces/serializednamedexpression.md)[]*
___
### getAllSheetsFormulas
▸ **getAllSheetsFormulas**(): *Record‹string, [Maybe](https://hyperformula.handsontable.com/docs/api/globals.md#maybe)‹string›[][]›*
*Defined in [src/Serialization.ts:132](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Serialization.ts#L132)*
**Returns:** *Record‹string, [Maybe](https://hyperformula.handsontable.com/docs/api/globals.md#maybe)‹string›[][]›*
___
### getAllSheetsSerialized
▸ **getAllSheetsSerialized**(): *Record‹string, [RawCellContent](https://hyperformula.handsontable.com/docs/api/globals.md#rawcellcontent)[][]›*
*Defined in [src/Serialization.ts:136](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Serialization.ts#L136)*
**Returns:** *Record‹string, [RawCellContent](https://hyperformula.handsontable.com/docs/api/globals.md#rawcellcontent)[][]›*
___
### getAllSheetsValues
▸ **getAllSheetsValues**(): *Record‹string, [CellValue](https://hyperformula.handsontable.com/docs/api/globals.md#cellvalue)[][]›*
*Defined in [src/Serialization.ts:128](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Serialization.ts#L128)*
**Returns:** *Record‹string, [CellValue](https://hyperformula.handsontable.com/docs/api/globals.md#cellvalue)[][]›*
___
### getCellFormula
▸ **getCellFormula**(`address`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md), `targetAddress?`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)): *[Maybe](https://hyperformula.handsontable.com/docs/api/globals.md#maybe)‹string›*
*Defined in [src/Serialization.ts:42](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Serialization.ts#L42)*
**Parameters:**
Name | Type |
------ | ------ |
`address` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) |
`targetAddress?` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) |
**Returns:** *[Maybe](https://hyperformula.handsontable.com/docs/api/globals.md#maybe)‹string›*
___
### getCellHyperlink
▸ **getCellHyperlink**(`address`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)): *[Maybe](https://hyperformula.handsontable.com/docs/api/globals.md#maybe)‹string›*
*Defined in [src/Serialization.ts:31](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Serialization.ts#L31)*
**Parameters:**
Name | Type |
------ | ------ |
`address` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) |
**Returns:** *[Maybe](https://hyperformula.handsontable.com/docs/api/globals.md#maybe)‹string›*
___
### getCellSerialized
▸ **getCellSerialized**(`address`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md), `targetAddress?`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)): *[RawCellContent](https://hyperformula.handsontable.com/docs/api/globals.md#rawcellcontent)*
*Defined in [src/Serialization.ts:64](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Serialization.ts#L64)*
**Parameters:**
Name | Type |
------ | ------ |
`address` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) |
`targetAddress?` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) |
**Returns:** *[RawCellContent](https://hyperformula.handsontable.com/docs/api/globals.md#rawcellcontent)*
___
### getCellValue
▸ **getCellValue**(`address`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)): *[CellValue](https://hyperformula.handsontable.com/docs/api/globals.md#cellvalue)*
*Defined in [src/Serialization.ts:68](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Serialization.ts#L68)*
**Parameters:**
Name | Type |
------ | ------ |
`address` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) |
**Returns:** *[CellValue](https://hyperformula.handsontable.com/docs/api/globals.md#cellvalue)*
___
### getRawValue
▸ **getRawValue**(`address`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)): *[RawCellContent](https://hyperformula.handsontable.com/docs/api/globals.md#rawcellcontent)*
*Defined in [src/Serialization.ts:72](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Serialization.ts#L72)*
**Parameters:**
Name | Type |
------ | ------ |
`address` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) |
**Returns:** *[RawCellContent](https://hyperformula.handsontable.com/docs/api/globals.md#rawcellcontent)*
___
### getSheetFormulas
▸ **getSheetFormulas**(`sheet`: number): *[Maybe](https://hyperformula.handsontable.com/docs/api/globals.md#maybe)‹string›[][]*
*Defined in [src/Serialization.ts:80](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Serialization.ts#L80)*
**Parameters:**
Name | Type |
------ | ------ |
`sheet` | number |
**Returns:** *[Maybe](https://hyperformula.handsontable.com/docs/api/globals.md#maybe)‹string›[][]*
___
### getSheetSerialized
▸ **getSheetSerialized**(`sheet`: number): *[RawCellContent](https://hyperformula.handsontable.com/docs/api/globals.md#rawcellcontent)[][]*
*Defined in [src/Serialization.ts:124](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Serialization.ts#L124)*
**Parameters:**
Name | Type |
------ | ------ |
`sheet` | number |
**Returns:** *[RawCellContent](https://hyperformula.handsontable.com/docs/api/globals.md#rawcellcontent)[][]*
___
### getSheetValues
▸ **getSheetValues**(`sheet`: number): *[CellValue](https://hyperformula.handsontable.com/docs/api/globals.md#cellvalue)[][]*
*Defined in [src/Serialization.ts:76](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Serialization.ts#L76)*
**Parameters:**
Name | Type |
------ | ------ |
`sheet` | number |
**Returns:** *[CellValue](https://hyperformula.handsontable.com/docs/api/globals.md#cellvalue)[][]*
___
### withNewConfig
▸ **withNewConfig**(`newConfig`: [Config](https://hyperformula.handsontable.com/docs/api/classes/config.md), `namedExpressions`: [NamedExpressions](https://hyperformula.handsontable.com/docs/api/classes/namedexpressions.md)): *[Serialization](https://hyperformula.handsontable.com/docs/api/classes/serialization.md)*
*Defined in [src/Serialization.ts:158](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Serialization.ts#L158)*
**Parameters:**
Name | Type |
------ | ------ |
`newConfig` | [Config](https://hyperformula.handsontable.com/docs/api/classes/config.md) |
`namedExpressions` | [NamedExpressions](https://hyperformula.handsontable.com/docs/api/classes/namedexpressions.md) |
**Returns:** *[Serialization](https://hyperformula.handsontable.com/docs/api/classes/serialization.md)*
---
## SetColumnOrderUndoEntry
URL: https://hyperformula.handsontable.com/docs/api/classes/setcolumnorderundoentry
# SetColumnOrderUndoEntry
## Constructors
### constructor
\+ **new SetColumnOrderUndoEntry**(`sheetId`: number, `columnMapping`: [number, number][], `oldContent`: [[SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md), [ClipboardCell](https://hyperformula.handsontable.com/docs/api/globals.md#clipboardcell)][]): *[SetColumnOrderUndoEntry](https://hyperformula.handsontable.com/docs/api/classes/setcolumnorderundoentry.md)*
*Defined in [src/UndoRedo.ts:128](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L128)*
**Parameters:**
Name | Type |
------ | ------ |
`sheetId` | number |
`columnMapping` | [number, number][] |
`oldContent` | [[SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md), [ClipboardCell](https://hyperformula.handsontable.com/docs/api/globals.md#clipboardcell)][] |
**Returns:** *[SetColumnOrderUndoEntry](https://hyperformula.handsontable.com/docs/api/classes/setcolumnorderundoentry.md)*
## Properties
### columnMapping
• **columnMapping**: *[number, number][]*
*Defined in [src/UndoRedo.ts:131](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L131)*
___
### oldContent
• **oldContent**: *[[SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md), [ClipboardCell](https://hyperformula.handsontable.com/docs/api/globals.md#clipboardcell)][]*
*Defined in [src/UndoRedo.ts:132](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L132)*
___
### sheetId
• **sheetId**: *number*
*Defined in [src/UndoRedo.ts:130](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L130)*
## Methods
### doRedo
▸ **doRedo**(`undoRedo`: [UndoRedo](https://hyperformula.handsontable.com/docs/api/classes/undoredo.md)): *void*
*Defined in [src/UndoRedo.ts:141](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L141)*
**Parameters:**
Name | Type |
------ | ------ |
`undoRedo` | [UndoRedo](https://hyperformula.handsontable.com/docs/api/classes/undoredo.md) |
**Returns:** *void*
___
### doUndo
▸ **doUndo**(`undoRedo`: [UndoRedo](https://hyperformula.handsontable.com/docs/api/classes/undoredo.md)): *void*
*Defined in [src/UndoRedo.ts:137](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L137)*
**Parameters:**
Name | Type |
------ | ------ |
`undoRedo` | [UndoRedo](https://hyperformula.handsontable.com/docs/api/classes/undoredo.md) |
**Returns:** *void*
___
### getReferencedOldDataVersions
▸ **getReferencedOldDataVersions**(): *number[]*
*Defined in [src/UndoRedo.ts:42](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L42)*
Returns LazilyTransformingAstService version keys referenced by this entry's oldData.
Default implementation returns empty — override in entries that store oldData.
**Returns:** *number[]*
---
## SetCellContentsUndoEntry
URL: https://hyperformula.handsontable.com/docs/api/classes/setcellcontentsundoentry
# SetCellContentsUndoEntry
## Constructors
### constructor
\+ **new SetCellContentsUndoEntry**(`cellContents`: object[]): *[SetCellContentsUndoEntry](https://hyperformula.handsontable.com/docs/api/classes/setcellcontentsundoentry.md)*
*Defined in [src/UndoRedo.ts:346](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L346)*
**Parameters:**
Name | Type |
------ | ------ |
`cellContents` | object[] |
**Returns:** *[SetCellContentsUndoEntry](https://hyperformula.handsontable.com/docs/api/classes/setcellcontentsundoentry.md)*
## Properties
### cellContents
• **cellContents**: *object[]*
*Defined in [src/UndoRedo.ts:348](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L348)*
## Methods
### doRedo
▸ **doRedo**(`undoRedo`: [UndoRedo](https://hyperformula.handsontable.com/docs/api/classes/undoredo.md)): *void*
*Defined in [src/UndoRedo.ts:361](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L361)*
**Parameters:**
Name | Type |
------ | ------ |
`undoRedo` | [UndoRedo](https://hyperformula.handsontable.com/docs/api/classes/undoredo.md) |
**Returns:** *void*
___
### doUndo
▸ **doUndo**(`undoRedo`: [UndoRedo](https://hyperformula.handsontable.com/docs/api/classes/undoredo.md)): *void*
*Defined in [src/UndoRedo.ts:357](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L357)*
**Parameters:**
Name | Type |
------ | ------ |
`undoRedo` | [UndoRedo](https://hyperformula.handsontable.com/docs/api/classes/undoredo.md) |
**Returns:** *void*
___
### getReferencedOldDataVersions
▸ **getReferencedOldDataVersions**(): *number[]*
*Defined in [src/UndoRedo.ts:42](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L42)*
Returns LazilyTransformingAstService version keys referenced by this entry's oldData.
Default implementation returns empty — override in entries that store oldData.
**Returns:** *number[]*
---
## RowsSpan
URL: https://hyperformula.handsontable.com/docs/api/classes/rowsspan
# RowsSpan
## Constructors
### constructor
\+ **new RowsSpan**(`sheet`: number, `rowStart`: number, `rowEnd`: number): *[RowsSpan](https://hyperformula.handsontable.com/docs/api/classes/rowsspan.md)*
*Defined in [src/Span.ts:11](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Span.ts#L11)*
**Parameters:**
Name | Type |
------ | ------ |
`sheet` | number |
`rowStart` | number |
`rowEnd` | number |
**Returns:** *[RowsSpan](https://hyperformula.handsontable.com/docs/api/classes/rowsspan.md)*
## Properties
### rowEnd
• **rowEnd**: *number*
*Defined in [src/Span.ts:16](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Span.ts#L16)*
___
### rowStart
• **rowStart**: *number*
*Defined in [src/Span.ts:15](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Span.ts#L15)*
___
### sheet
• **sheet**: *number*
*Defined in [src/Span.ts:14](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Span.ts#L14)*
## Accessors
### end
• **get end**(): *number*
*Defined in [src/Span.ts:34](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Span.ts#L34)*
**Returns:** *number*
___
### numberOfRows
• **get numberOfRows**(): *number*
*Defined in [src/Span.ts:26](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Span.ts#L26)*
**Returns:** *number*
___
### start
• **get start**(): *number*
*Defined in [src/Span.ts:30](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Span.ts#L30)*
**Returns:** *number*
## Methods
### firstRow
▸ **firstRow**(): *[RowsSpan](https://hyperformula.handsontable.com/docs/api/classes/rowsspan.md)*
*Defined in [src/Span.ts:64](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Span.ts#L64)*
**Returns:** *[RowsSpan](https://hyperformula.handsontable.com/docs/api/classes/rowsspan.md)*
___
### intersect
▸ **intersect**(`otherSpan`: [RowsSpan](https://hyperformula.handsontable.com/docs/api/classes/rowsspan.md)): *[RowsSpan](https://hyperformula.handsontable.com/docs/api/classes/rowsspan.md) | null*
*Defined in [src/Span.ts:52](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Span.ts#L52)*
**Parameters:**
Name | Type |
------ | ------ |
`otherSpan` | [RowsSpan](https://hyperformula.handsontable.com/docs/api/classes/rowsspan.md) |
**Returns:** *[RowsSpan](https://hyperformula.handsontable.com/docs/api/classes/rowsspan.md) | null*
___
### rows
▸ **rows**(): *IterableIterator‹number›*
*Defined in [src/Span.ts:46](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Span.ts#L46)*
**Returns:** *IterableIterator‹number›*
___
### fromNumberOfRows
▸ **fromNumberOfRows**(`sheet`: number, `rowStart`: number, `numberOfRows`: number): *[RowsSpan](https://hyperformula.handsontable.com/docs/api/classes/rowsspan.md)‹›*
*Defined in [src/Span.ts:38](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Span.ts#L38)*
**Parameters:**
Name | Type |
------ | ------ |
`sheet` | number |
`rowStart` | number |
`numberOfRows` | number |
**Returns:** *[RowsSpan](https://hyperformula.handsontable.com/docs/api/classes/rowsspan.md)‹›*
___
### fromRowStartAndEnd
▸ **fromRowStartAndEnd**(`sheet`: number, `rowStart`: number, `rowEnd`: number): *[RowsSpan](https://hyperformula.handsontable.com/docs/api/classes/rowsspan.md)‹›*
*Defined in [src/Span.ts:42](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Span.ts#L42)*
**Parameters:**
Name | Type |
------ | ------ |
`sheet` | number |
`rowStart` | number |
`rowEnd` | number |
**Returns:** *[RowsSpan](https://hyperformula.handsontable.com/docs/api/classes/rowsspan.md)‹›*
---
## SetRowOrderUndoEntry
URL: https://hyperformula.handsontable.com/docs/api/classes/setroworderundoentry
# SetRowOrderUndoEntry
## Constructors
### constructor
\+ **new SetRowOrderUndoEntry**(`sheetId`: number, `rowMapping`: [number, number][], `oldContent`: [[SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md), [ClipboardCell](https://hyperformula.handsontable.com/docs/api/globals.md#clipboardcell)][]): *[SetRowOrderUndoEntry](https://hyperformula.handsontable.com/docs/api/classes/setroworderundoentry.md)*
*Defined in [src/UndoRedo.ts:110](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L110)*
**Parameters:**
Name | Type |
------ | ------ |
`sheetId` | number |
`rowMapping` | [number, number][] |
`oldContent` | [[SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md), [ClipboardCell](https://hyperformula.handsontable.com/docs/api/globals.md#clipboardcell)][] |
**Returns:** *[SetRowOrderUndoEntry](https://hyperformula.handsontable.com/docs/api/classes/setroworderundoentry.md)*
## Properties
### oldContent
• **oldContent**: *[[SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md), [ClipboardCell](https://hyperformula.handsontable.com/docs/api/globals.md#clipboardcell)][]*
*Defined in [src/UndoRedo.ts:114](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L114)*
___
### rowMapping
• **rowMapping**: *[number, number][]*
*Defined in [src/UndoRedo.ts:113](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L113)*
___
### sheetId
• **sheetId**: *number*
*Defined in [src/UndoRedo.ts:112](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L112)*
## Methods
### doRedo
▸ **doRedo**(`undoRedo`: [UndoRedo](https://hyperformula.handsontable.com/docs/api/classes/undoredo.md)): *void*
*Defined in [src/UndoRedo.ts:123](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L123)*
**Parameters:**
Name | Type |
------ | ------ |
`undoRedo` | [UndoRedo](https://hyperformula.handsontable.com/docs/api/classes/undoredo.md) |
**Returns:** *void*
___
### doUndo
▸ **doUndo**(`undoRedo`: [UndoRedo](https://hyperformula.handsontable.com/docs/api/classes/undoredo.md)): *void*
*Defined in [src/UndoRedo.ts:119](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L119)*
**Parameters:**
Name | Type |
------ | ------ |
`undoRedo` | [UndoRedo](https://hyperformula.handsontable.com/docs/api/classes/undoredo.md) |
**Returns:** *void*
___
### getReferencedOldDataVersions
▸ **getReferencedOldDataVersions**(): *number[]*
*Defined in [src/UndoRedo.ts:42](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L42)*
Returns LazilyTransformingAstService version keys referenced by this entry's oldData.
Default implementation returns empty — override in entries that store oldData.
**Returns:** *number[]*
---
## SetSheetContentUndoEntry
URL: https://hyperformula.handsontable.com/docs/api/classes/setsheetcontentundoentry
# SetSheetContentUndoEntry
## Constructors
### constructor
\+ **new SetSheetContentUndoEntry**(`sheetId`: number, `oldSheetContent`: [ClipboardCell](https://hyperformula.handsontable.com/docs/api/globals.md#clipboardcell)[][], `newSheetContent`: [RawCellContent](https://hyperformula.handsontable.com/docs/api/globals.md#rawcellcontent)[][]): *[SetSheetContentUndoEntry](https://hyperformula.handsontable.com/docs/api/classes/setsheetcontentundoentry.md)*
*Defined in [src/UndoRedo.ts:146](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L146)*
**Parameters:**
Name | Type |
------ | ------ |
`sheetId` | number |
`oldSheetContent` | [ClipboardCell](https://hyperformula.handsontable.com/docs/api/globals.md#clipboardcell)[][] |
`newSheetContent` | [RawCellContent](https://hyperformula.handsontable.com/docs/api/globals.md#rawcellcontent)[][] |
**Returns:** *[SetSheetContentUndoEntry](https://hyperformula.handsontable.com/docs/api/classes/setsheetcontentundoentry.md)*
## Properties
### newSheetContent
• **newSheetContent**: *[RawCellContent](https://hyperformula.handsontable.com/docs/api/globals.md#rawcellcontent)[][]*
*Defined in [src/UndoRedo.ts:150](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L150)*
___
### oldSheetContent
• **oldSheetContent**: *[ClipboardCell](https://hyperformula.handsontable.com/docs/api/globals.md#clipboardcell)[][]*
*Defined in [src/UndoRedo.ts:149](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L149)*
___
### sheetId
• **sheetId**: *number*
*Defined in [src/UndoRedo.ts:148](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L148)*
## Methods
### doRedo
▸ **doRedo**(`undoRedo`: [UndoRedo](https://hyperformula.handsontable.com/docs/api/classes/undoredo.md)): *void*
*Defined in [src/UndoRedo.ts:159](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L159)*
**Parameters:**
Name | Type |
------ | ------ |
`undoRedo` | [UndoRedo](https://hyperformula.handsontable.com/docs/api/classes/undoredo.md) |
**Returns:** *void*
___
### doUndo
▸ **doUndo**(`undoRedo`: [UndoRedo](https://hyperformula.handsontable.com/docs/api/classes/undoredo.md)): *void*
*Defined in [src/UndoRedo.ts:155](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L155)*
**Parameters:**
Name | Type |
------ | ------ |
`undoRedo` | [UndoRedo](https://hyperformula.handsontable.com/docs/api/classes/undoredo.md) |
**Returns:** *void*
___
### getReferencedOldDataVersions
▸ **getReferencedOldDataVersions**(): *number[]*
*Defined in [src/UndoRedo.ts:42](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L42)*
Returns LazilyTransformingAstService version keys referenced by this entry's oldData.
Default implementation returns empty — override in entries that store oldData.
**Returns:** *number[]*
---
## SheetNameAlreadyTakenError
URL: https://hyperformula.handsontable.com/docs/api/classes/sheetnamealreadytakenerror
# SheetNameAlreadyTakenError
Error thrown when the sheet of a given name already exists.
## Constructors
### constructor
\+ **new SheetNameAlreadyTakenError**(`sheetName`: string): *[SheetNameAlreadyTakenError](https://hyperformula.handsontable.com/docs/api/classes/sheetnamealreadytakenerror.md)*
*Defined in [src/errors.ts:29](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/errors.ts#L29)*
**Parameters:**
Name | Type |
------ | ------ |
`sheetName` | string |
**Returns:** *[SheetNameAlreadyTakenError](https://hyperformula.handsontable.com/docs/api/classes/sheetnamealreadytakenerror.md)*
## Properties
### message
• **message**: *string*
___
### name
• **name**: *string*
___
### stack
• **stack**? : *undefined | string*
___
### Error
▪ **Error**: *ErrorConstructor*
---
## SheetSizeLimitExceededError
URL: https://hyperformula.handsontable.com/docs/api/classes/sheetsizelimitexceedederror
# SheetSizeLimitExceededError
Error thrown when loaded sheet size exceeds configured limits.
## Constructors
### constructor
\+ **new SheetSizeLimitExceededError**(): *[SheetSizeLimitExceededError](https://hyperformula.handsontable.com/docs/api/classes/sheetsizelimitexceedederror.md)*
*Defined in [src/errors.ts:38](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/errors.ts#L38)*
**Returns:** *[SheetSizeLimitExceededError](https://hyperformula.handsontable.com/docs/api/classes/sheetsizelimitexceedederror.md)*
## Properties
### message
• **message**: *string*
___
### name
• **name**: *string*
___
### stack
• **stack**? : *undefined | string*
___
### Error
▪ **Error**: *ErrorConstructor*
---
## SimpleRangeValue
URL: https://hyperformula.handsontable.com/docs/api/classes/simplerangevalue
# SimpleRangeValue
A class that represents a range of data.
## Constructors
### constructor
\+ **new SimpleRangeValue**(`_data?`: InternalScalarValue[][], `range?`: [AbsoluteCellRange](https://hyperformula.handsontable.com/docs/api/classes/absolutecellrange.md), `dependencyGraph?`: DependencyGraph, `_hasOnlyNumbers?`: undefined | false | true): *[SimpleRangeValue](https://hyperformula.handsontable.com/docs/api/classes/simplerangevalue.md)*
*Defined in [src/SimpleRangeValue.ts:21](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/SimpleRangeValue.ts#L21)*
In most cases, it's more convenient to create a `SimpleRangeValue` object
by calling one of the [static factory methods](#fromrange).
**Parameters:**
Name | Type |
------ | ------ |
`_data?` | InternalScalarValue[][] |
`range?` | [AbsoluteCellRange](https://hyperformula.handsontable.com/docs/api/classes/absolutecellrange.md) |
`dependencyGraph?` | DependencyGraph |
`_hasOnlyNumbers?` | undefined | false | true |
**Returns:** *[SimpleRangeValue](https://hyperformula.handsontable.com/docs/api/classes/simplerangevalue.md)*
## Properties
### range
• **range**? : *[AbsoluteCellRange](https://hyperformula.handsontable.com/docs/api/classes/absolutecellrange.md)*
*Defined in [src/SimpleRangeValue.ts:33](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/SimpleRangeValue.ts#L33)*
A property that represents the address of the range.
___
### size
• **size**: *[ArraySize](https://hyperformula.handsontable.com/docs/api/classes/arraysize.md)*
*Defined in [src/SimpleRangeValue.ts:21](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/SimpleRangeValue.ts#L21)*
A property that represents the size of the range.
## Accessors
### data
• **get data**(): *InternalScalarValue[][]*
*Defined in [src/SimpleRangeValue.ts:45](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/SimpleRangeValue.ts#L45)*
Returns the range data as a 2D array.
**Returns:** *InternalScalarValue[][]*
## Methods
### effectiveAddressesFromData
▸ **effectiveAddressesFromData**(`leftCorner`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)): *IterableIterator‹[SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)›*
*Defined in [src/SimpleRangeValue.ts:125](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/SimpleRangeValue.ts#L125)*
Generates the addresses of the cells contained in the range assuming the provided address is the left corner of the range.
**Parameters:**
Name | Type |
------ | ------ |
`leftCorner` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) |
**Returns:** *IterableIterator‹[SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)›*
___
### entriesFromTopLeftCorner
▸ **entriesFromTopLeftCorner**(`leftCorner`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)): *IterableIterator‹[InternalScalarValue, [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)]›*
*Defined in [src/SimpleRangeValue.ts:139](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/SimpleRangeValue.ts#L139)*
Generates values and addresses of the cells contained in the range assuming the provided address is the left corner of the range.
This method combines the functionalities of [`iterateValuesFromTopLeftCorner()`](#iteratevaluesfromtopleftcorner) and [`effectiveAddressesFromData()`](#effectiveaddressesfromdata).
**Parameters:**
Name | Type |
------ | ------ |
`leftCorner` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) |
**Returns:** *IterableIterator‹[InternalScalarValue, [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)]›*
___
### hasOnlyNumbers
▸ **hasOnlyNumbers**(): *boolean*
*Defined in [src/SimpleRangeValue.ts:165](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/SimpleRangeValue.ts#L165)*
Returns `true` if and only if the range contains only numeric values.
**Returns:** *boolean*
___
### height
▸ **height**(): *number*
*Defined in [src/SimpleRangeValue.ts:102](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/SimpleRangeValue.ts#L102)*
Returns the number of rows contained in the range.
**Returns:** *number*
___
### isAdHoc
▸ **isAdHoc**(): *boolean*
*Defined in [src/SimpleRangeValue.ts:88](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/SimpleRangeValue.ts#L88)*
Returns `true` if and only if the `SimpleRangeValue` has no address set.
**Returns:** *boolean*
___
### iterateValuesFromTopLeftCorner
▸ **iterateValuesFromTopLeftCorner**(): *IterableIterator‹InternalScalarValue›*
*Defined in [src/SimpleRangeValue.ts:151](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/SimpleRangeValue.ts#L151)*
Generates the values of the cells contained in the range assuming the provided address is the left corner of the range.
**Returns:** *IterableIterator‹InternalScalarValue›*
___
### numberOfElements
▸ **numberOfElements**(): *number*
*Defined in [src/SimpleRangeValue.ts:158](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/SimpleRangeValue.ts#L158)*
Returns the number of cells contained in the range.
**Returns:** *number*
___
### rawData
▸ **rawData**(): *InternalScalarValue[][]*
*Defined in [src/SimpleRangeValue.ts:196](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/SimpleRangeValue.ts#L196)*
Returns the range data as a 2D array.
Internal use only.
**Returns:** *InternalScalarValue[][]*
___
### rawNumbers
▸ **rawNumbers**(): *number[][]*
*Defined in [src/SimpleRangeValue.ts:186](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/SimpleRangeValue.ts#L186)*
Returns the range data as a 2D array of numbers.
Internal use only.
**Returns:** *number[][]*
___
### sameDimensionsAs
▸ **sameDimensionsAs**(`other`: [SimpleRangeValue](https://hyperformula.handsontable.com/docs/api/classes/simplerangevalue.md)): *boolean*
*Defined in [src/SimpleRangeValue.ts:204](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/SimpleRangeValue.ts#L204)*
Returns `true` if and only if the range has the same width and height as the `other` range object.
**Parameters:**
Name | Type |
------ | ------ |
`other` | [SimpleRangeValue](https://hyperformula.handsontable.com/docs/api/classes/simplerangevalue.md) |
**Returns:** *boolean*
___
### valuesFromTopLeftCorner
▸ **valuesFromTopLeftCorner**(): *InternalScalarValue[]*
*Defined in [src/SimpleRangeValue.ts:109](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/SimpleRangeValue.ts#L109)*
Returns the range data as a 1D array.
**Returns:** *InternalScalarValue[]*
___
### width
▸ **width**(): *number*
*Defined in [src/SimpleRangeValue.ts:95](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/SimpleRangeValue.ts#L95)*
Returns the number of columns contained in the range.
**Returns:** *number*
___
### fromRange
▸ **fromRange**(`data`: InternalScalarValue[][], `range`: [AbsoluteCellRange](https://hyperformula.handsontable.com/docs/api/classes/absolutecellrange.md), `dependencyGraph`: DependencyGraph): *[SimpleRangeValue](https://hyperformula.handsontable.com/docs/api/classes/simplerangevalue.md)*
*Defined in [src/SimpleRangeValue.ts:53](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/SimpleRangeValue.ts#L53)*
A factory method. Returns a `SimpleRangeValue` object with the provided range address and the provided data.
**Parameters:**
Name | Type |
------ | ------ |
`data` | InternalScalarValue[][] |
`range` | [AbsoluteCellRange](https://hyperformula.handsontable.com/docs/api/classes/absolutecellrange.md) |
`dependencyGraph` | DependencyGraph |
**Returns:** *[SimpleRangeValue](https://hyperformula.handsontable.com/docs/api/classes/simplerangevalue.md)*
___
### fromScalar
▸ **fromScalar**(`scalar`: InternalScalarValue): *[SimpleRangeValue](https://hyperformula.handsontable.com/docs/api/classes/simplerangevalue.md)*
*Defined in [src/SimpleRangeValue.ts:81](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/SimpleRangeValue.ts#L81)*
A factory method. Returns a `SimpleRangeValue` object that contains a single value.
**Parameters:**
Name | Type |
------ | ------ |
`scalar` | InternalScalarValue |
**Returns:** *[SimpleRangeValue](https://hyperformula.handsontable.com/docs/api/classes/simplerangevalue.md)*
___
### onlyNumbers
▸ **onlyNumbers**(`data`: number[][]): *[SimpleRangeValue](https://hyperformula.handsontable.com/docs/api/classes/simplerangevalue.md)*
*Defined in [src/SimpleRangeValue.ts:60](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/SimpleRangeValue.ts#L60)*
A factory method. Returns a `SimpleRangeValue` object with the provided numeric data.
**Parameters:**
Name | Type |
------ | ------ |
`data` | number[][] |
**Returns:** *[SimpleRangeValue](https://hyperformula.handsontable.com/docs/api/classes/simplerangevalue.md)*
___
### onlyRange
▸ **onlyRange**(`range`: [AbsoluteCellRange](https://hyperformula.handsontable.com/docs/api/classes/absolutecellrange.md), `dependencyGraph`: DependencyGraph): *[SimpleRangeValue](https://hyperformula.handsontable.com/docs/api/classes/simplerangevalue.md)*
*Defined in [src/SimpleRangeValue.ts:74](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/SimpleRangeValue.ts#L74)*
A factory method. Returns a `SimpleRangeValue` object with the provided range address.
**Parameters:**
Name | Type |
------ | ------ |
`range` | [AbsoluteCellRange](https://hyperformula.handsontable.com/docs/api/classes/absolutecellrange.md) |
`dependencyGraph` | DependencyGraph |
**Returns:** *[SimpleRangeValue](https://hyperformula.handsontable.com/docs/api/classes/simplerangevalue.md)*
___
### onlyValues
▸ **onlyValues**(`data`: InternalScalarValue[][]): *[SimpleRangeValue](https://hyperformula.handsontable.com/docs/api/classes/simplerangevalue.md)*
*Defined in [src/SimpleRangeValue.ts:67](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/SimpleRangeValue.ts#L67)*
A factory method. Returns a `SimpleRangeValue` object with the provided data.
**Parameters:**
Name | Type |
------ | ------ |
`data` | InternalScalarValue[][] |
**Returns:** *[SimpleRangeValue](https://hyperformula.handsontable.com/docs/api/classes/simplerangevalue.md)*
---
## SheetsNotEqual
URL: https://hyperformula.handsontable.com/docs/api/classes/sheetsnotequal
# SheetsNotEqual
Error thrown when the given sheets are not equal.
## Constructors
### constructor
\+ **new SheetsNotEqual**(`sheet1`: number, `sheet2`: number): *[SheetsNotEqual](https://hyperformula.handsontable.com/docs/api/classes/sheetsnotequal.md)*
*Defined in [src/errors.ts:74](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/errors.ts#L74)*
**Parameters:**
Name | Type |
------ | ------ |
`sheet1` | number |
`sheet2` | number |
**Returns:** *[SheetsNotEqual](https://hyperformula.handsontable.com/docs/api/classes/sheetsnotequal.md)*
## Properties
### message
• **message**: *string*
___
### name
• **name**: *string*
___
### stack
• **stack**? : *undefined | string*
___
### Error
▪ **Error**: *ErrorConstructor*
---
## SimpleStrategy
URL: https://hyperformula.handsontable.com/docs/api/classes/simplestrategy
# SimpleStrategy
## Constructors
### constructor
\+ **new SimpleStrategy**(`dependencyGraph`: DependencyGraph, `columnIndex`: [ColumnSearchStrategy](https://hyperformula.handsontable.com/docs/api/interfaces/columnsearchstrategy.md), `parser`: ParserWithCaching, `stats`: [Statistics](https://hyperformula.handsontable.com/docs/api/classes/statistics.md), `cellContentParser`: [CellContentParser](https://hyperformula.handsontable.com/docs/api/classes/cellcontentparser.md), `arraySizePredictor`: [ArraySizePredictor](https://hyperformula.handsontable.com/docs/api/classes/arraysizepredictor.md)): *[SimpleStrategy](https://hyperformula.handsontable.com/docs/api/classes/simplestrategy.md)*
*Defined in [src/GraphBuilder.ts:67](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/GraphBuilder.ts#L67)*
**Parameters:**
Name | Type |
------ | ------ |
`dependencyGraph` | DependencyGraph |
`columnIndex` | [ColumnSearchStrategy](https://hyperformula.handsontable.com/docs/api/interfaces/columnsearchstrategy.md) |
`parser` | ParserWithCaching |
`stats` | [Statistics](https://hyperformula.handsontable.com/docs/api/classes/statistics.md) |
`cellContentParser` | [CellContentParser](https://hyperformula.handsontable.com/docs/api/classes/cellcontentparser.md) |
`arraySizePredictor` | [ArraySizePredictor](https://hyperformula.handsontable.com/docs/api/classes/arraysizepredictor.md) |
**Returns:** *[SimpleStrategy](https://hyperformula.handsontable.com/docs/api/classes/simplestrategy.md)*
## Methods
### run
▸ **run**(`sheets`: [Sheets](https://hyperformula.handsontable.com/docs/api/globals.md#sheets)): *[Dependencies](https://hyperformula.handsontable.com/docs/api/globals.md#dependencies)*
*Defined in [src/GraphBuilder.ts:78](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/GraphBuilder.ts#L78)*
**Parameters:**
Name | Type |
------ | ------ |
`sheets` | [Sheets](https://hyperformula.handsontable.com/docs/api/globals.md#sheets) |
**Returns:** *[Dependencies](https://hyperformula.handsontable.com/docs/api/globals.md#dependencies)*
---
## SourceLocationHasArrayError
URL: https://hyperformula.handsontable.com/docs/api/classes/sourcelocationhasarrayerror
# SourceLocationHasArrayError
Error thrown when selected source location has an array.
## Constructors
### constructor
\+ **new SourceLocationHasArrayError**(): *[SourceLocationHasArrayError](https://hyperformula.handsontable.com/docs/api/classes/sourcelocationhasarrayerror.md)*
*Defined in [src/errors.ts:350](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/errors.ts#L350)*
**Returns:** *[SourceLocationHasArrayError](https://hyperformula.handsontable.com/docs/api/classes/sourcelocationhasarrayerror.md)*
## Properties
### message
• **message**: *string*
___
### name
• **name**: *string*
___
### stack
• **stack**? : *undefined | string*
___
### Error
▪ **Error**: *ErrorConstructor*
---
## Statistics
URL: https://hyperformula.handsontable.com/docs/api/classes/statistics
# Statistics
Provides tracking performance statistics to the engine
## Methods
### end
▸ **end**(`name`: [StatType](https://hyperformula.handsontable.com/docs/api/enums/stattype.md)): *void*
*Defined in [src/statistics/Statistics.ts:59](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/statistics/Statistics.ts#L59)*
Stops tracking particular statistic.
Raise error if tracking statistic wasn't started.
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`name` | [StatType](https://hyperformula.handsontable.com/docs/api/enums/stattype.md) | statistic to stop tracking |
**Returns:** *void*
___
### incrementCriterionFunctionFullCacheUsed
▸ **incrementCriterionFunctionFullCacheUsed**(): *void*
*Defined in [src/statistics/Statistics.ts:18](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/statistics/Statistics.ts#L18)*
**Returns:** *void*
___
### incrementCriterionFunctionPartialCacheUsed
▸ **incrementCriterionFunctionPartialCacheUsed**(): *void*
*Defined in [src/statistics/Statistics.ts:24](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/statistics/Statistics.ts#L24)*
**Returns:** *void*
___
### measure
▸ **measure**‹**T**›(`name`: [StatType](https://hyperformula.handsontable.com/docs/api/enums/stattype.md), `func`: function): *T*
*Defined in [src/statistics/Statistics.ts:80](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/statistics/Statistics.ts#L80)*
Measure given statistic as execution of given function.
**Type parameters:**
▪ **T**
**Parameters:**
▪ **name**: *[StatType](https://hyperformula.handsontable.com/docs/api/enums/stattype.md)*
statistic to track
▪ **func**: *function*
function to call
▸ (): *T*
**Returns:** *T*
result of the function call
___
### reset
▸ **reset**(): *void*
*Defined in [src/statistics/Statistics.ts:33](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/statistics/Statistics.ts#L33)*
Resets statistics
**Returns:** *void*
___
### snapshot
▸ **snapshot**(): *Map‹[StatType](https://hyperformula.handsontable.com/docs/api/enums/stattype.md), number›*
*Defined in [src/statistics/Statistics.ts:90](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/statistics/Statistics.ts#L90)*
Returns the snapshot of current results
**Returns:** *Map‹[StatType](https://hyperformula.handsontable.com/docs/api/enums/stattype.md), number›*
___
### start
▸ **start**(`name`: [StatType](https://hyperformula.handsontable.com/docs/api/enums/stattype.md)): *void*
*Defined in [src/statistics/Statistics.ts:45](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/statistics/Statistics.ts#L45)*
Starts tracking particular statistic.
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`name` | [StatType](https://hyperformula.handsontable.com/docs/api/enums/stattype.md) | statistic to start tracking |
**Returns:** *void*
---
## UnableToParseError
URL: https://hyperformula.handsontable.com/docs/api/classes/unabletoparseerror
# UnableToParseError
Error thrown when the given value cannot be parsed.
Checks against the validity in:
**`see`** [buildFromArray](https://hyperformula.handsontable.com/docs/api/classes/hyperformula.md#static-buildfromarray)
**`see`** [buildFromSheets](https://hyperformula.handsontable.com/docs/api/classes/buildenginefactory.md#static-buildfromsheets)
**`see`** [[setCellsContents]]
## Constructors
### constructor
\+ **new UnableToParseError**(`value`: any): *[UnableToParseError](https://hyperformula.handsontable.com/docs/api/classes/unabletoparseerror.md)*
*Defined in [src/errors.ts:160](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/errors.ts#L160)*
**Parameters:**
Name | Type |
------ | ------ |
`value` | any |
**Returns:** *[UnableToParseError](https://hyperformula.handsontable.com/docs/api/classes/unabletoparseerror.md)*
## Properties
### message
• **message**: *string*
___
### name
• **name**: *string*
___
### stack
• **stack**? : *undefined | string*
___
### Error
▪ **Error**: *ErrorConstructor*
---
## TargetLocationHasArrayError
URL: https://hyperformula.handsontable.com/docs/api/classes/targetlocationhasarrayerror
# TargetLocationHasArrayError
Error thrown when selected target location has an array.
**`see`** [addRows](https://hyperformula.handsontable.com/docs/api/classes/arrayvalue.md#addrows)
**`see`** [addColumns](https://hyperformula.handsontable.com/docs/api/classes/arrayvalue.md#addcolumns)
**`see`** [moveCells](https://hyperformula.handsontable.com/docs/api/classes/crudoperations.md#movecells)
**`see`** [moveRows](https://hyperformula.handsontable.com/docs/api/classes/crudoperations.md#moverows)
**`see`** [moveColumns](https://hyperformula.handsontable.com/docs/api/classes/crudoperations.md#movecolumns)
**`see`** [paste](https://hyperformula.handsontable.com/docs/api/classes/crudoperations.md#paste)
## Constructors
### constructor
\+ **new TargetLocationHasArrayError**(): *[TargetLocationHasArrayError](https://hyperformula.handsontable.com/docs/api/classes/targetlocationhasarrayerror.md)*
*Defined in [src/errors.ts:366](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/errors.ts#L366)*
**Returns:** *[TargetLocationHasArrayError](https://hyperformula.handsontable.com/docs/api/classes/targetlocationhasarrayerror.md)*
## Properties
### message
• **message**: *string*
___
### name
• **name**: *string*
___
### stack
• **stack**? : *undefined | string*
___
### Error
▪ **Error**: *ErrorConstructor*
---
## CellType
URL: https://hyperformula.handsontable.com/docs/api/enums/celltype
# CellType
## Enumeration members
### ARRAY
• **ARRAY**: = "ARRAY"
*Defined in [src/Cell.ts:56](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Cell.ts#L56)*
___
### ARRAYFORMULA
• **ARRAYFORMULA**: = "ARRAYFORMULA"
*Defined in [src/Cell.ts:58](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Cell.ts#L58)*
___
### EMPTY
• **EMPTY**: = "EMPTY"
*Defined in [src/Cell.ts:57](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Cell.ts#L57)*
___
### FORMULA
• **FORMULA**: = "FORMULA"
*Defined in [src/Cell.ts:54](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Cell.ts#L54)*
___
### VALUE
• **VALUE**: = "VALUE"
*Defined in [src/Cell.ts:55](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Cell.ts#L55)*
---
## CellValueJustNumber
URL: https://hyperformula.handsontable.com/docs/api/enums/cellvaluejustnumber
# CellValueJustNumber
## Enumeration members
### NUMBER
• **NUMBER**: = "NUMBER"
*Defined in [src/Cell.ts:88](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Cell.ts#L88)*
---
## ClipboardCellType
URL: https://hyperformula.handsontable.com/docs/api/enums/clipboardcelltype
# ClipboardCellType
## Enumeration members
### EMPTY
• **EMPTY**:
*Defined in [src/ClipboardOperations.ts:25](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ClipboardOperations.ts#L25)*
___
### FORMULA
• **FORMULA**:
*Defined in [src/ClipboardOperations.ts:26](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ClipboardOperations.ts#L26)*
___
### PARSING_ERROR
• **PARSING_ERROR**:
*Defined in [src/ClipboardOperations.ts:27](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ClipboardOperations.ts#L27)*
___
### VALUE
• **VALUE**:
*Defined in [src/ClipboardOperations.ts:24](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ClipboardOperations.ts#L24)*
---
## ClipboardOperationType
URL: https://hyperformula.handsontable.com/docs/api/enums/clipboardoperationtype
# ClipboardOperationType
## Enumeration members
### COPY
• **COPY**:
*Defined in [src/ClipboardOperations.ts:19](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ClipboardOperations.ts#L19)*
___
### CUT
• **CUT**:
*Defined in [src/ClipboardOperations.ts:20](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ClipboardOperations.ts#L20)*
---
## ErrorType
URL: https://hyperformula.handsontable.com/docs/api/enums/errortype
# ErrorType
Possible errors returned by our interpreter.
## Enumeration members
### CYCLE
• **CYCLE**: = "CYCLE"
*Defined in [src/Cell.ts:36](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Cell.ts#L36)*
Cyclic dependency.
___
### DIV_BY_ZERO
• **DIV_BY_ZERO**: = "DIV_BY_ZERO"
*Defined in [src/Cell.ts:27](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Cell.ts#L27)*
Division by zero.
___
### ERROR
• **ERROR**: = "ERROR"
*Defined in [src/Cell.ts:48](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Cell.ts#L48)*
Generic error
___
### LIC
• **LIC**: = "LIC"
*Defined in [src/Cell.ts:45](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Cell.ts#L45)*
Invalid/missing licence error.
___
### NA
• **NA**: = "NA"
*Defined in [src/Cell.ts:33](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Cell.ts#L33)*
___
### NAME
• **NAME**: = "NAME"
*Defined in [src/Cell.ts:30](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Cell.ts#L30)*
Unknown function name.
___
### NUM
• **NUM**: = "NUM"
*Defined in [src/Cell.ts:32](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Cell.ts#L32)*
___
### REF
• **REF**: = "REF"
*Defined in [src/Cell.ts:39](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Cell.ts#L39)*
Wrong address reference.
___
### SPILL
• **SPILL**: = "SPILL"
*Defined in [src/Cell.ts:42](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Cell.ts#L42)*
Array spill error.
___
### VALUE
• **VALUE**: = "VALUE"
*Defined in [src/Cell.ts:31](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Cell.ts#L31)*
---
## Events
URL: https://hyperformula.handsontable.com/docs/api/enums/events
# Events
## Enumeration members
### EvaluationResumed
• **EvaluationResumed**: = "evaluationResumed"
*Defined in [src/Emitter.ts:17](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Emitter.ts#L17)*
___
### EvaluationSuspended
• **EvaluationSuspended**: = "evaluationSuspended"
*Defined in [src/Emitter.ts:16](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Emitter.ts#L16)*
___
### NamedExpressionAdded
• **NamedExpressionAdded**: = "namedExpressionAdded"
*Defined in [src/Emitter.ts:13](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Emitter.ts#L13)*
___
### NamedExpressionRemoved
• **NamedExpressionRemoved**: = "namedExpressionRemoved"
*Defined in [src/Emitter.ts:14](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Emitter.ts#L14)*
___
### SheetAdded
• **SheetAdded**: = "sheetAdded"
*Defined in [src/Emitter.ts:10](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Emitter.ts#L10)*
___
### SheetRemoved
• **SheetRemoved**: = "sheetRemoved"
*Defined in [src/Emitter.ts:11](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Emitter.ts#L11)*
___
### SheetRenamed
• **SheetRenamed**: = "sheetRenamed"
*Defined in [src/Emitter.ts:12](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Emitter.ts#L12)*
___
### ValuesUpdated
• **ValuesUpdated**: = "valuesUpdated"
*Defined in [src/Emitter.ts:15](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Emitter.ts#L15)*
---
## CellValueNoNumber
URL: https://hyperformula.handsontable.com/docs/api/enums/cellvaluenonumber
# CellValueNoNumber
## Enumeration members
### BOOLEAN
• **BOOLEAN**: = "BOOLEAN"
*Defined in [src/Cell.ts:83](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Cell.ts#L83)*
___
### EMPTY
• **EMPTY**: = "EMPTY"
*Defined in [src/Cell.ts:80](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Cell.ts#L80)*
___
### ERROR
• **ERROR**: = "ERROR"
*Defined in [src/Cell.ts:84](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Cell.ts#L84)*
___
### NUMBER
• **NUMBER**: = "NUMBER"
*Defined in [src/Cell.ts:81](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Cell.ts#L81)*
___
### STRING
• **STRING**: = "STRING"
*Defined in [src/Cell.ts:82](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Cell.ts#L82)*
---
## LicenseKeyValidityState
URL: https://hyperformula.handsontable.com/docs/api/enums/licensekeyvaliditystate
# LicenseKeyValidityState
The list of all available states which the license checker can return.
## Enumeration members
### EXPIRED
• **EXPIRED**: = "expired"
*Defined in [src/helpers/licenseKeyValidator.ts:14](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/helpers/licenseKeyValidator.ts#L14)*
___
### INVALID
• **INVALID**: = "invalid"
*Defined in [src/helpers/licenseKeyValidator.ts:13](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/helpers/licenseKeyValidator.ts#L13)*
___
### MISSING
• **MISSING**: = "missing"
*Defined in [src/helpers/licenseKeyValidator.ts:15](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/helpers/licenseKeyValidator.ts#L15)*
___
### VALID
• **VALID**: = "valid"
*Defined in [src/helpers/licenseKeyValidator.ts:12](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/helpers/licenseKeyValidator.ts#L12)*
---
## FormatExpressionType
URL: https://hyperformula.handsontable.com/docs/api/enums/formatexpressiontype
# FormatExpressionType
## Enumeration members
### DATE
• **DATE**: = "DATE"
*Defined in [src/format/parser.ts:30](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/format/parser.ts#L30)*
___
### NUMBER
• **NUMBER**: = "NUMBER"
*Defined in [src/format/parser.ts:31](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/format/parser.ts#L31)*
___
### STRING
• **STRING**: = "STRING"
*Defined in [src/format/parser.ts:32](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/format/parser.ts#L32)*
---
## TokenType
URL: https://hyperformula.handsontable.com/docs/api/enums/tokentype
# TokenType
## Enumeration members
### FORMAT
• **FORMAT**: = "FORMAT"
*Defined in [src/format/parser.ts:12](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/format/parser.ts#L12)*
___
### FREE_TEXT
• **FREE_TEXT**: = "FREE_TEXT"
*Defined in [src/format/parser.ts:13](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/format/parser.ts#L13)*
___
### PERCENT
• **PERCENT**: = "PERCENT"
*Defined in [src/format/parser.ts:14](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/format/parser.ts#L14)*
---
## StatType
URL: https://hyperformula.handsontable.com/docs/api/enums/stattype
# StatType
**`license`**
Copyright (c) 2025 Handsoncode. All rights reserved.
## Enumeration members
### ADJUSTING_ADDRESS_MAPPING
• **ADJUSTING_ADDRESS_MAPPING**: = "ADJUSTING_ADDRESS_MAPPING"
*Defined in [src/statistics/StatType.ts:20](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/statistics/StatType.ts#L20)*
___
### ADJUSTING_ARRAY_MAPPING
• **ADJUSTING_ARRAY_MAPPING**: = "ADJUSTING_ARRAY_MAPPING"
*Defined in [src/statistics/StatType.ts:21](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/statistics/StatType.ts#L21)*
___
### ADJUSTING_GRAPH
• **ADJUSTING_GRAPH**: = "ADJUSTING_GRAPH"
*Defined in [src/statistics/StatType.ts:23](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/statistics/StatType.ts#L23)*
___
### ADJUSTING_RANGES
• **ADJUSTING_RANGES**: = "ADJUSTING_RANGES"
*Defined in [src/statistics/StatType.ts:22](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/statistics/StatType.ts#L22)*
___
### BUILD_COLUMN_INDEX
• **BUILD_COLUMN_INDEX**: = "BUILD_COLUMN_INDEX"
*Defined in [src/statistics/StatType.ts:14](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/statistics/StatType.ts#L14)*
___
### BUILD_ENGINE_TOTAL
• **BUILD_ENGINE_TOTAL**: = "BUILD_ENGINE_TOTAL"
*Defined in [src/statistics/StatType.ts:8](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/statistics/StatType.ts#L8)*
___
### COLLECT_DEPENDENCIES
• **COLLECT_DEPENDENCIES**: = "COLLECT_DEPENDENCIES"
*Defined in [src/statistics/StatType.ts:11](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/statistics/StatType.ts#L11)*
___
### CRITERION_FUNCTION_FULL_CACHE_USED
• **CRITERION_FUNCTION_FULL_CACHE_USED**: = "CRITERION_FUNCTION_FULL_CACHE_USED"
*Defined in [src/statistics/StatType.ts:25](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/statistics/StatType.ts#L25)*
___
### CRITERION_FUNCTION_PARTIAL_CACHE_USED
• **CRITERION_FUNCTION_PARTIAL_CACHE_USED**: = "CRITERION_FUNCTION_PARTIAL_CACHE_USED"
*Defined in [src/statistics/StatType.ts:26](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/statistics/StatType.ts#L26)*
___
### EVALUATION
• **EVALUATION**: = "EVALUATION"
*Defined in [src/statistics/StatType.ts:15](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/statistics/StatType.ts#L15)*
___
### GRAPH_BUILD
• **GRAPH_BUILD**: = "GRAPH_BUILD"
*Defined in [src/statistics/StatType.ts:10](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/statistics/StatType.ts#L10)*
___
### PARSER
• **PARSER**: = "PARSER"
*Defined in [src/statistics/StatType.ts:9](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/statistics/StatType.ts#L9)*
___
### PROCESS_DEPENDENCIES
• **PROCESS_DEPENDENCIES**: = "PROCESS_DEPENDENCIES"
*Defined in [src/statistics/StatType.ts:12](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/statistics/StatType.ts#L12)*
___
### TOP_SORT
• **TOP_SORT**: = "TOP_SORT"
*Defined in [src/statistics/StatType.ts:13](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/statistics/StatType.ts#L13)*
___
### TRANSFORM_ASTS
• **TRANSFORM_ASTS**: = "TRANSFORM_ASTS"
*Defined in [src/statistics/StatType.ts:18](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/statistics/StatType.ts#L18)*
___
### TRANSFORM_ASTS_POSTPONED
• **TRANSFORM_ASTS_POSTPONED**: = "TRANSFORM_ASTS_POSTPONED"
*Defined in [src/statistics/StatType.ts:19](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/statistics/StatType.ts#L19)*
___
### VLOOKUP
• **VLOOKUP**: = "VLOOKUP"
*Defined in [src/statistics/StatType.ts:16](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/statistics/StatType.ts#L16)*
---
## AdvancedFindOptions
URL: https://hyperformula.handsontable.com/docs/api/interfaces/advancedfindoptions
# AdvancedFindOptions
## Properties
### returnOccurrence
• **returnOccurrence**? : *"first" | "last"*
*Defined in [src/Lookup/SearchStrategy.ts:24](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Lookup/SearchStrategy.ts#L24)*
---
## API Reference Overview
URL: https://hyperformula.handsontable.com/docs/api/globals
# API Reference Overview
## Type aliases
### CellDependency
Ƭ **CellDependency**: *[SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) | [AbsoluteCellRange](https://hyperformula.handsontable.com/docs/api/classes/absolutecellrange.md) | NamedExpressionDependency*
*Defined in [src/CellDependency.ts:10](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/CellDependency.ts#L10)*
___
### CellValue
Ƭ **CellValue**: *[NoErrorCellValue](https://hyperformula.handsontable.com/docs/api/globals.md#noerrorcellvalue) | [DetailedCellError](https://hyperformula.handsontable.com/docs/api/classes/detailedcellerror.md)*
*Defined in [src/CellValue.ts:9](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/CellValue.ts#L9)*
___
### CellValueDetailedType
Ƭ **CellValueDetailedType**: *[CellValueNoNumber](https://hyperformula.handsontable.com/docs/api/enums/cellvaluenonumber.md) | NumberType*
*Defined in [src/Cell.ts:94](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Cell.ts#L94)*
___
### CellValueType
Ƭ **CellValueType**: *[CellValueNoNumber](https://hyperformula.handsontable.com/docs/api/enums/cellvaluenonumber.md) | [CellValueJustNumber](https://hyperformula.handsontable.com/docs/api/enums/cellvaluejustnumber.md)*
*Defined in [src/Cell.ts:91](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Cell.ts#L91)*
___
### ChangeList
Ƭ **ChangeList**: *[CellValueChange](https://hyperformula.handsontable.com/docs/api/interfaces/cellvaluechange.md)[]*
*Defined in [src/ContentChanges.ts:20](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ContentChanges.ts#L20)*
___
### ClipboardCell
Ƭ **ClipboardCell**: *[ClipboardCellValue](https://hyperformula.handsontable.com/docs/api/interfaces/clipboardcellvalue.md) | [ClipboardCellFormula](https://hyperformula.handsontable.com/docs/api/interfaces/clipboardcellformula.md) | [ClipboardCellEmpty](https://hyperformula.handsontable.com/docs/api/interfaces/clipboardcellempty.md) | [ClipboardCellParsingError](https://hyperformula.handsontable.com/docs/api/interfaces/clipboardcellparsingerror.md)*
*Defined in [src/ClipboardOperations.ts:16](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ClipboardOperations.ts#L16)*
___
### ColumnMap
Ƭ **ColumnMap**: *Map‹RawInterpreterValue, [ValueIndex](https://hyperformula.handsontable.com/docs/api/interfaces/valueindex.md)›*
*Defined in [src/Lookup/ColumnIndex.ts:30](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Lookup/ColumnIndex.ts#L30)*
___
### ColumnRowIndex
Ƭ **ColumnRowIndex**: *[number, number]*
*Defined in [src/CrudOperations.ts:65](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/CrudOperations.ts#L65)*
___
### ConfigParamsList
Ƭ **ConfigParamsList**: *keyof ConfigParams*
*Defined in [src/ConfigParams.ts:450](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ConfigParams.ts#L450)*
___
### ConsoleMessages
Ƭ **ConsoleMessages**: *object*
*Defined in [src/helpers/licenseKeyValidator.ts:24](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/helpers/licenseKeyValidator.ts#L24)*
#### Type declaration:
___
### DateTime
Ƭ **DateTime**: *[SimpleTime](https://hyperformula.handsontable.com/docs/api/interfaces/simpletime.md) | [SimpleDate](https://hyperformula.handsontable.com/docs/api/interfaces/simpledate.md) | [SimpleDateTime](https://hyperformula.handsontable.com/docs/api/globals.md#simpledatetime)*
*Defined in [src/DateTimeHelper.ts:31](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/DateTimeHelper.ts#L31)*
___
### Dependencies
Ƭ **Dependencies**: *Map‹Vertex, [CellDependency](https://hyperformula.handsontable.com/docs/api/globals.md#celldependency)[]›*
*Defined in [src/GraphBuilder.ts:25](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/GraphBuilder.ts#L25)*
___
### EngineState
Ƭ **EngineState**: *object*
*Defined in [src/BuildEngineFactory.ts:33](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/BuildEngineFactory.ts#L33)*
#### Type declaration:
* **cellContentParser**: *[CellContentParser](https://hyperformula.handsontable.com/docs/api/classes/cellcontentparser.md)*
* **columnSearch**: *[ColumnSearchStrategy](https://hyperformula.handsontable.com/docs/api/interfaces/columnsearchstrategy.md)*
* **config**: *[Config](https://hyperformula.handsontable.com/docs/api/classes/config.md)*
* **crudOperations**: *[CrudOperations](https://hyperformula.handsontable.com/docs/api/classes/crudoperations.md)*
* **dependencyGraph**: *DependencyGraph*
* **evaluator**: *[Evaluator](https://hyperformula.handsontable.com/docs/api/classes/evaluator.md)*
* **exporter**: *[Exporter](https://hyperformula.handsontable.com/docs/api/classes/exporter.md)*
* **functionRegistry**: *FunctionRegistry*
* **lazilyTransformingAstService**: *[LazilyTransformingAstService](https://hyperformula.handsontable.com/docs/api/classes/lazilytransformingastservice.md)*
* **namedExpressions**: *[NamedExpressions](https://hyperformula.handsontable.com/docs/api/classes/namedexpressions.md)*
* **parser**: *ParserWithCaching*
* **serialization**: *[Serialization](https://hyperformula.handsontable.com/docs/api/classes/serialization.md)*
* **stats**: *[Statistics](https://hyperformula.handsontable.com/docs/api/classes/statistics.md)*
* **unparser**: *Unparser*
___
### ExportedChange
Ƭ **ExportedChange**: *[ExportedCellChange](https://hyperformula.handsontable.com/docs/api/classes/exportedcellchange.md) | [ExportedNamedExpressionChange](https://hyperformula.handsontable.com/docs/api/classes/exportednamedexpressionchange.md)*
*Defined in [src/Exporter.ts:18](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Exporter.ts#L18)*
___
### LicenseKeyInvalidState
Ƭ **LicenseKeyInvalidState**: *Exclude‹[LicenseKeyValidityState](https://hyperformula.handsontable.com/docs/api/enums/licensekeyvaliditystate.md), [VALID](https://hyperformula.handsontable.com/docs/api/enums/licensekeyvaliditystate.md#valid)›*
*Defined in [src/helpers/licenseKeyValidator.ts:18](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/helpers/licenseKeyValidator.ts#L18)*
___
### Maybe
Ƭ **Maybe**: *T | undefined*
*Defined in [src/Maybe.ts:6](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Maybe.ts#L6)*
**`license`**
Copyright (c) 2025 Handsoncode. All rights reserved.
___
### MessageDescriptor
Ƭ **MessageDescriptor**: *object*
*Defined in [src/helpers/licenseKeyValidator.ts:28](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/helpers/licenseKeyValidator.ts#L28)*
#### Type declaration:
* **template**: *[LicenseKeyValidityState](https://hyperformula.handsontable.com/docs/api/enums/licensekeyvaliditystate.md)*
* **vars**: *[TemplateVars](https://hyperformula.handsontable.com/docs/api/interfaces/templatevars.md)*
___
### NamedExpressionOptions
Ƭ **NamedExpressionOptions**: *Record‹string, string | number | boolean›*
*Defined in [src/NamedExpressions.ts:22](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/NamedExpressions.ts#L22)*
___
### NoErrorCellValue
Ƭ **NoErrorCellValue**: *number | string | boolean | null*
*Defined in [src/CellValue.ts:8](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/CellValue.ts#L8)*
___
### RawCellContent
Ƭ **RawCellContent**: *Date | string | number | boolean | null | undefined*
*Defined in [src/CellContentParser.ts:25](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/CellContentParser.ts#L25)*
___
### Sheet
Ƭ **Sheet**: *[RawCellContent](https://hyperformula.handsontable.com/docs/api/globals.md#rawcellcontent)[][]*
*Defined in [src/Sheet.ts:12](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Sheet.ts#L12)*
Two-dimenstional array representation of sheet
___
### SheetDimensions
Ƭ **SheetDimensions**: *object*
*Defined in [src/Sheet.ts:19](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Sheet.ts#L19)*
Represents size of a sheet
#### Type declaration:
* **height**: *number*
* **width**: *number*
___
### SheetIndex
Ƭ **SheetIndex**: *[ColumnMap](https://hyperformula.handsontable.com/docs/api/globals.md#columnmap)[]*
*Defined in [src/Lookup/ColumnIndex.ts:37](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Lookup/ColumnIndex.ts#L37)*
___
### Sheets
Ƭ **Sheets**: *Record‹string, [Sheet](https://hyperformula.handsontable.com/docs/api/globals.md#sheet)›*
*Defined in [src/Sheet.ts:14](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Sheet.ts#L14)*
___
### SimpleDateTime
Ƭ **SimpleDateTime**: *[SimpleDate](https://hyperformula.handsontable.com/docs/api/interfaces/simpledate.md) & [SimpleTime](https://hyperformula.handsontable.com/docs/api/interfaces/simpletime.md)*
*Defined in [src/DateTimeHelper.ts:29](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/DateTimeHelper.ts#L29)*
___
### Span
Ƭ **Span**: *[RowsSpan](https://hyperformula.handsontable.com/docs/api/classes/rowsspan.md) | [ColumnsSpan](https://hyperformula.handsontable.com/docs/api/classes/columnsspan.md)*
*Defined in [src/Span.ts:6](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Span.ts#L6)*
**`license`**
Copyright (c) 2025 Handsoncode. All rights reserved.
___
### TranslatableErrorType
Ƭ **TranslatableErrorType**: *Exclude‹[ErrorType](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-errortype), [LIC](https://hyperformula.handsontable.com/docs/api/enums/errortype.md#lic)›*
*Defined in [src/Cell.ts:51](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Cell.ts#L51)*
## Variables
### DATE_SEPARATOR_REGEXP
• **DATE_SEPARATOR_REGEXP**: *RegExp‹›* = new RegExp('[ /.-]')
*Defined in [src/DateTimeDefault.ts:13](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/DateTimeDefault.ts#L13)*
___
### HOURS_PER_DAY
• **HOURS_PER_DAY**: *24* = 24
*Defined in [src/DateTimeHelper.ts:15](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/DateTimeHelper.ts#L15)*
___
### LCID_CURRENCY_TAG
• **LCID_CURRENCY_TAG**: *RegExp‹›* = /\[\$[^\-\]]+-/
*Defined in [src/format/format.ts:28](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/format/format.ts#L28)*
Detects Excel LCID-tagged currency tags (`[$SYMBOL-LCID]` with a non-empty
SYMBOL portion). Shared by `defaultStringifyDateTime` and
`defaultStringifyDuration` so a format string carrying such a tag short-
circuits both date and duration dispatch and falls through to the
number formatter (or the user-supplied `stringifyCurrency` callback).
The pattern is intentionally unanchored: any occurrence of `[$SYMBOL-`
in the format string triggers the guard. Excel does not mix date/time
tokens with a currency tag in the same format string, so a mid-string
match cannot misclassify a legitimate composite — every observed
format string with a currency tag is currency-only.
___
### MINUTES_PER_HOUR
• **MINUTES_PER_HOUR**: *60* = 60
*Defined in [src/DateTimeHelper.ts:14](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/DateTimeHelper.ts#L14)*
___
### NOT_FOUND
• **NOT_FOUND**: *-1* = -1
*Defined in [src/Lookup/AdvancedFind.ts:19](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Lookup/AdvancedFind.ts#L19)*
___
### QUICK_CHECK_REGEXP
• **QUICK_CHECK_REGEXP**: *RegExp‹›* = new RegExp('^[0-9/.\\-: ]+[ap]?m?$')
*Defined in [src/DateTimeDefault.ts:11](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/DateTimeDefault.ts#L11)*
___
### SECONDS_PER_MINUTE
• **SECONDS_PER_MINUTE**: *60* = 60
*Defined in [src/DateTimeHelper.ts:13](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/DateTimeHelper.ts#L13)*
___
### SECONDS_PRECISION
• **SECONDS_PRECISION**: *1000* = 1000
*Defined in [src/DateTimeDefault.ts:15](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/DateTimeDefault.ts#L15)*
___
### TIME_FORMAT_SECONDS_ITEM_REGEXP
• **TIME_FORMAT_SECONDS_ITEM_REGEXP**: *RegExp‹›* = new RegExp('^ss(\\.(s+|0+))?$')
*Defined in [src/DateTimeDefault.ts:9](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/DateTimeDefault.ts#L9)*
___
### TIME_SEPARATOR
• **TIME_SEPARATOR**: *":"* = ":"
*Defined in [src/DateTimeDefault.ts:14](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/DateTimeDefault.ts#L14)*
___
### WHITESPACE_REGEXP
• **WHITESPACE_REGEXP**: *RegExp‹›* = new RegExp('\\s+')
*Defined in [src/DateTimeDefault.ts:12](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/DateTimeDefault.ts#L12)*
___
### WRONG_RANGE_SIZE
• **WRONG_RANGE_SIZE**: *"AbsoluteCellRange: Wrong range size"* = "AbsoluteCellRange: Wrong range size"
*Defined in [src/AbsoluteCellRange.ts:22](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L22)*
___
### _notified
• **_notified**: *boolean* = false
*Defined in [src/helpers/licenseKeyValidator.ts:43](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/helpers/licenseKeyValidator.ts#L43)*
___
### _rl
• **_rl**: *"length"* = "length"
*Defined in [src/helpers/licenseKeyHelper.ts:9](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/helpers/licenseKeyHelper.ts#L9)*
**`license`**
Copyright (c) 2025 Handsoncode. All rights reserved.
___
### dateFormatRegex
• **dateFormatRegex**: *RegExp‹›* = /(\\.|dd|DD|d|D|mm|MM|m|M|YYYY|YY|yyyy|yy|HH|hh|H|h|ss(\.(0+|s+))?|s|AM\/PM|am\/pm|A\/P|a\/p|\[mm]|\[MM]|\[hh]|\[HH])/g
*Defined in [src/format/parser.ts:8](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/format/parser.ts#L8)*
___
### defaultLanguage
• **defaultLanguage**: *string* = Config.defaultConfig.language
*Defined in [src/index.ts:108](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/index.ts#L108)*
___
### memoizedParseDateFormat
• **memoizedParseDateFormat**: *(Anonymous function)* = memoize(parseDateFormat)
*Defined in [src/DateTimeDefault.ts:17](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/DateTimeDefault.ts#L17)*
___
### memoizedParseTimeFormat
• **memoizedParseTimeFormat**: *(Anonymous function)* = memoize(parseTimeFormat)
*Defined in [src/DateTimeDefault.ts:16](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/DateTimeDefault.ts#L16)*
___
### numDays
• **numDays**: *number[]* = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
*Defined in [src/DateTimeHelper.ts:10](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/DateTimeHelper.ts#L10)*
___
### numberFormatRegex
• **numberFormatRegex**: *RegExp‹›* = /(\\.|"[^"]*"|[#0]+(\.[#0]*)?|%)/g
*Defined in [src/format/parser.ts:9](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/format/parser.ts#L9)*
___
### prefSumDays
• **prefSumDays**: *number[]* = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334]
*Defined in [src/DateTimeHelper.ts:11](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/DateTimeHelper.ts#L11)*
___
### privatePool
• **privatePool**: *WeakMap‹[Config](https://hyperformula.handsontable.com/docs/api/classes/config.md), object›* = new WeakMap()
*Defined in [src/Config.ts:27](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Config.ts#L27)*
## Functions
### CellValueTypeOrd
▸ **CellValueTypeOrd**(`arg`: [CellValueType](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-cellvaluetype)): *number*
*Defined in [src/Cell.ts:97](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Cell.ts#L97)*
**Parameters:**
Name | Type |
------ | ------ |
`arg` | [CellValueType](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-cellvaluetype) |
**Returns:** *number*
___
### _cp
▸ **_cp**(`v`: any): *number*
*Defined in [src/helpers/licenseKeyHelper.ts:14](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/helpers/licenseKeyHelper.ts#L14)*
**Parameters:**
Name | Type |
------ | ------ |
`v` | any |
**Returns:** *number*
___
### _hd
▸ **_hd**(`v`: any): *number*
*Defined in [src/helpers/licenseKeyHelper.ts:10](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/helpers/licenseKeyHelper.ts#L10)*
**Parameters:**
Name | Type |
------ | ------ |
`v` | any |
**Returns:** *number*
___
### _nm
▸ **_nm**(`v`: any): *string*
*Defined in [src/helpers/licenseKeyHelper.ts:12](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/helpers/licenseKeyHelper.ts#L12)*
**Parameters:**
Name | Type |
------ | ------ |
`v` | any |
**Returns:** *string*
___
### _pi
▸ **_pi**(`v`: any): *number*
*Defined in [src/helpers/licenseKeyHelper.ts:11](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/helpers/licenseKeyHelper.ts#L11)*
**Parameters:**
Name | Type |
------ | ------ |
`v` | any |
**Returns:** *number*
___
### _ss
▸ **_ss**(`v`: any, `s`: any, `l`: any): *any*
*Defined in [src/helpers/licenseKeyHelper.ts:13](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/helpers/licenseKeyHelper.ts#L13)*
**Parameters:**
Name | Type |
------ | ------ |
`v` | any |
`s` | any |
`l` | any |
**Returns:** *any*
___
### absoluteSheetReference
▸ **absoluteSheetReference**(`address`: AddressWithSheet, `baseAddress`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)): *number*
*Defined in [src/Cell.ts:222](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Cell.ts#L222)*
**Parameters:**
Name | Type |
------ | ------ |
`address` | AddressWithSheet |
`baseAddress` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) |
**Returns:** *number*
___
### absolutizeDependencies
▸ **absolutizeDependencies**(`deps`: RelativeDependency[], `baseAddress`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)): *[CellDependency](https://hyperformula.handsontable.com/docs/api/globals.md#celldependency)[]*
*Defined in [src/absolutizeDependencies.ts:17](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/absolutizeDependencies.ts#L17)*
Converts dependencies from maybe relative addressing to absolute addressing.
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`deps` | RelativeDependency[] | list of addresses in R0C0 format |
`baseAddress` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) | base address with regard to which make a convertion |
**Returns:** *[CellDependency](https://hyperformula.handsontable.com/docs/api/globals.md#celldependency)[]*
___
### addressKey
▸ **addressKey**(`address`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)): *string*
*Defined in [src/Cell.ts:209](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Cell.ts#L209)*
**Parameters:**
Name | Type |
------ | ------ |
`address` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) |
**Returns:** *string*
___
### arraySizeForBinaryOp
▸ **arraySizeForBinaryOp**(`leftArraySize`: [ArraySize](https://hyperformula.handsontable.com/docs/api/classes/arraysize.md), `rightArraySize`: [ArraySize](https://hyperformula.handsontable.com/docs/api/classes/arraysize.md)): *[ArraySize](https://hyperformula.handsontable.com/docs/api/classes/arraysize.md)*
*Defined in [src/ArraySize.ts:34](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ArraySize.ts#L34)*
**Parameters:**
Name | Type |
------ | ------ |
`leftArraySize` | [ArraySize](https://hyperformula.handsontable.com/docs/api/classes/arraysize.md) |
`rightArraySize` | [ArraySize](https://hyperformula.handsontable.com/docs/api/classes/arraysize.md) |
**Returns:** *[ArraySize](https://hyperformula.handsontable.com/docs/api/classes/arraysize.md)*
___
### arraySizeForUnaryOp
▸ **arraySizeForUnaryOp**(`arraySize`: [ArraySize](https://hyperformula.handsontable.com/docs/api/classes/arraysize.md)): *[ArraySize](https://hyperformula.handsontable.com/docs/api/classes/arraysize.md)*
*Defined in [src/ArraySize.ts:38](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ArraySize.ts#L38)*
**Parameters:**
Name | Type |
------ | ------ |
`arraySize` | [ArraySize](https://hyperformula.handsontable.com/docs/api/classes/arraysize.md) |
**Returns:** *[ArraySize](https://hyperformula.handsontable.com/docs/api/classes/arraysize.md)*
___
### buildColumnSearchStrategy
▸ **buildColumnSearchStrategy**(`dependencyGraph`: DependencyGraph, `config`: [Config](https://hyperformula.handsontable.com/docs/api/classes/config.md), `statistics`: [Statistics](https://hyperformula.handsontable.com/docs/api/classes/statistics.md)): *[ColumnSearchStrategy](https://hyperformula.handsontable.com/docs/api/interfaces/columnsearchstrategy.md)*
*Defined in [src/Lookup/SearchStrategy.ts:63](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Lookup/SearchStrategy.ts#L63)*
**Parameters:**
Name | Type |
------ | ------ |
`dependencyGraph` | DependencyGraph |
`config` | [Config](https://hyperformula.handsontable.com/docs/api/classes/config.md) |
`statistics` | [Statistics](https://hyperformula.handsontable.com/docs/api/classes/statistics.md) |
**Returns:** *[ColumnSearchStrategy](https://hyperformula.handsontable.com/docs/api/interfaces/columnsearchstrategy.md)*
___
### checkKeySchema
▸ **checkKeySchema**(`v`: any): *boolean*
*Defined in [src/helpers/licenseKeyHelper.ts:20](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/helpers/licenseKeyHelper.ts#L20)*
**Parameters:**
Name | Type |
------ | ------ |
`v` | any |
**Returns:** *boolean*
___
### checkLicenseKeyValidity
▸ **checkLicenseKeyValidity**(`licenseKey`: string): *[LicenseKeyValidityState](https://hyperformula.handsontable.com/docs/api/enums/licensekeyvaliditystate.md)*
*Defined in [src/helpers/licenseKeyValidator.ts:51](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/helpers/licenseKeyValidator.ts#L51)*
Checks if the provided license key is grammatically valid or not expired.
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`licenseKey` | string | The license key to check. |
**Returns:** *[LicenseKeyValidityState](https://hyperformula.handsontable.com/docs/api/enums/licensekeyvaliditystate.md)*
Returns the checking state.
___
### collatorFromConfig
▸ **collatorFromConfig**(`config`: [Config](https://hyperformula.handsontable.com/docs/api/classes/config.md)): *Collator*
*Defined in [src/StringHelper.ts:8](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/StringHelper.ts#L8)*
**Parameters:**
Name | Type |
------ | ------ |
`config` | [Config](https://hyperformula.handsontable.com/docs/api/classes/config.md) |
**Returns:** *Collator*
___
### configCheckIfParametersNotInConflict
▸ **configCheckIfParametersNotInConflict**(...`params`: object[]): *void*
*Defined in [src/ArgumentSanitization.ts:57](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ArgumentSanitization.ts#L57)*
**Parameters:**
Name | Type |
------ | ------ |
`...params` | object[] |
**Returns:** *void*
___
### configValueFromParam
▸ **configValueFromParam**(`inputValue`: any, `expectedType`: string | string[], `paramName`: [ConfigParamsList](https://hyperformula.handsontable.com/docs/api/globals.md#configparamslist)): *any*
*Defined in [src/ArgumentSanitization.ts:16](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ArgumentSanitization.ts#L16)*
**Parameters:**
Name | Type |
------ | ------ |
`inputValue` | any |
`expectedType` | string | string[] |
`paramName` | [ConfigParamsList](https://hyperformula.handsontable.com/docs/api/globals.md#configparamslist) |
**Returns:** *any*
___
### configValueFromParamCheck
▸ **configValueFromParamCheck**(`inputValue`: any, `typeCheck`: function, `expectedType`: string, `paramName`: [ConfigParamsList](https://hyperformula.handsontable.com/docs/api/globals.md#configparamslist)): *any*
*Defined in [src/ArgumentSanitization.ts:47](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ArgumentSanitization.ts#L47)*
**Parameters:**
▪ **inputValue**: *any*
▪ **typeCheck**: *function*
▸ (`object`: any): *boolean*
**Parameters:**
Name | Type |
------ | ------ |
`object` | any |
▪ **expectedType**: *string*
▪ **paramName**: *[ConfigParamsList](https://hyperformula.handsontable.com/docs/api/globals.md#configparamslist)*
**Returns:** *any*
___
### countChars
▸ **countChars**(`text`: string, `char`: string): *number*
*Defined in [src/format/format.ts:76](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/format/format.ts#L76)*
**Parameters:**
Name | Type |
------ | ------ |
`text` | string |
`char` | string |
**Returns:** *number*
___
### createTokens
▸ **createTokens**(`regexTokens`: RegExpExecArray[], `str`: string): *[FormatToken](https://hyperformula.handsontable.com/docs/api/interfaces/formattoken.md)[]*
*Defined in [src/format/parser.ts:78](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/format/parser.ts#L78)*
**Parameters:**
Name | Type |
------ | ------ |
`regexTokens` | RegExpExecArray[] |
`str` | string |
**Returns:** *[FormatToken](https://hyperformula.handsontable.com/docs/api/interfaces/formattoken.md)[]*
___
### dayToMonth
▸ **dayToMonth**(`dayOfYear`: number): *number*
*Defined in [src/DateTimeHelper.ts:270](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/DateTimeHelper.ts#L270)*
**Parameters:**
Name | Type |
------ | ------ |
`dayOfYear` | number |
**Returns:** *number*
___
### defaultParseToDate
▸ **defaultParseToDate**(`dateItems`: string[], `dateFormat`: [Maybe](https://hyperformula.handsontable.com/docs/api/globals.md#maybe)‹string›): *[Maybe](https://hyperformula.handsontable.com/docs/api/globals.md#maybe)‹[SimpleDate](https://hyperformula.handsontable.com/docs/api/interfaces/simpledate.md)›*
*Defined in [src/DateTimeDefault.ts:137](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/DateTimeDefault.ts#L137)*
Parses a date value from a string if the string matches the given date format.
**Parameters:**
Name | Type |
------ | ------ |
`dateItems` | string[] |
`dateFormat` | [Maybe](https://hyperformula.handsontable.com/docs/api/globals.md#maybe)‹string› |
**Returns:** *[Maybe](https://hyperformula.handsontable.com/docs/api/globals.md#maybe)‹[SimpleDate](https://hyperformula.handsontable.com/docs/api/interfaces/simpledate.md)›*
___
### defaultParseToDateTime
▸ **defaultParseToDateTime**(`text`: string, `dateFormat`: [Maybe](https://hyperformula.handsontable.com/docs/api/globals.md#maybe)‹string›, `timeFormat`: [Maybe](https://hyperformula.handsontable.com/docs/api/globals.md#maybe)‹string›): *[Maybe](https://hyperformula.handsontable.com/docs/api/globals.md#maybe)‹[DateTime](https://hyperformula.handsontable.com/docs/api/globals.md#datetime)›*
*Defined in [src/DateTimeDefault.ts:30](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/DateTimeDefault.ts#L30)*
Parses a DateTime value from a string if the string matches the given date format and time format.
Idea for more readable implementation:
- divide string into parts by a regexp [date_regexp]? [time_regexp]? [ampm_regexp]?
- start by finding the time part, because it is unambiguous '([0-9]+:[0-9:.]+ ?[ap]?m?)$', before it is the date part
- OR split by spaces - last segment is ampm token, second to last is time (with or without ampm), rest is date
If applied:
- date parsing might work differently after these changes but still according to the docs
- make sure to test edge cases like timeFormats: ['hh', 'ss.ss'] etc, string: '01-01-2019 AM', 'PM'
**Parameters:**
Name | Type |
------ | ------ |
`text` | string |
`dateFormat` | [Maybe](https://hyperformula.handsontable.com/docs/api/globals.md#maybe)‹string› |
`timeFormat` | [Maybe](https://hyperformula.handsontable.com/docs/api/globals.md#maybe)‹string› |
**Returns:** *[Maybe](https://hyperformula.handsontable.com/docs/api/globals.md#maybe)‹[DateTime](https://hyperformula.handsontable.com/docs/api/globals.md#datetime)›*
___
### defaultParseToTime
▸ **defaultParseToTime**(`timeItems`: string[], `timeFormat`: [Maybe](https://hyperformula.handsontable.com/docs/api/globals.md#maybe)‹string›): *[Maybe](https://hyperformula.handsontable.com/docs/api/globals.md#maybe)‹[SimpleTime](https://hyperformula.handsontable.com/docs/api/interfaces/simpletime.md)›*
*Defined in [src/DateTimeDefault.ts:82](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/DateTimeDefault.ts#L82)*
Parses a time value from a string if the string matches the given time format.
**Parameters:**
Name | Type |
------ | ------ |
`timeItems` | string[] |
`timeFormat` | [Maybe](https://hyperformula.handsontable.com/docs/api/globals.md#maybe)‹string› |
**Returns:** *[Maybe](https://hyperformula.handsontable.com/docs/api/globals.md#maybe)‹[SimpleTime](https://hyperformula.handsontable.com/docs/api/interfaces/simpletime.md)›*
___
### defaultStringifyCurrency
▸ **defaultStringifyCurrency**(`_value`: number, `_formatArg`: string): *[Maybe](https://hyperformula.handsontable.com/docs/api/globals.md#maybe)‹string›*
*Defined in [src/format/format.ts:342](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/format/format.ts#L342)*
Default implementation of the `stringifyCurrency` config option.
Returning `undefined` instructs the formatter to fall through to the
built-in number formatter, preserving HyperFormula's zero-dependency
default behavior. Replace this default by setting the
[`stringifyCurrency`](https://hyperformula.handsontable.com/api/interfaces/configparams.md#stringifycurrency)
config option.
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`_value` | number | the numeric value to format (unused in default). |
`_formatArg` | string | the format string passed to `TEXT` (unused in default). |
**Returns:** *[Maybe](https://hyperformula.handsontable.com/docs/api/globals.md#maybe)‹string›*
`undefined` — caller should fall through to the built-in formatter.
___
### defaultStringifyDateTime
▸ **defaultStringifyDateTime**(`dateTime`: [SimpleDateTime](https://hyperformula.handsontable.com/docs/api/globals.md#simpledatetime), `formatArg`: string): *[Maybe](https://hyperformula.handsontable.com/docs/api/globals.md#maybe)‹string›*
*Defined in [src/format/format.ts:238](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/format/format.ts#L238)*
Default `stringifyDateTime` callback — formats a date/time value against an
Excel-style format string (e.g. `YYYY-MM-DD HH:mm:ss`).
Returns `undefined` for format strings that are not date/time formats so the
dispatcher in `format()` can fall through to `parseForNumberFormat` (or to a
user-supplied `stringifyCurrency` callback for currency-tagged formats).
**LCID currency-tag guard** — explicitly returns `undefined` for Excel
currency tags `[$SYMBOL-LCID]` (non-empty SYMBOL portion). Without the
guard, `parseForDateTimeFormat` greedily consumes letters like `D`/`M`/`S`/`Y`/`H`
inside the currency code (e.g. `D` in USD, `H` in CHF, `M`+`D` in AMD),
mangling the output of an `[$USD-409] #,##0.00` format into
`[$US9-409] #,##0.00` because `D` is read as a day token. The pre-HF-24
behaviour was to mis-format; the guarded return is the deliberate
correction, not a regression. Bit-for-bit compatibility is preserved for
every non-currency format (dates, durations, `$#,##0.00`, etc.).
The guard pattern (`/\[\$[^\-\]]+-/`) requires ≥1 character between `[$`
and `-` so it distinguishes currency tags (`[$USD-409]`, `[$€-2]`) from
Excel's locale-only modifier (`[$-409]`, `[$-F800]`), which is valid on
date/time formats and must continue to flow through this function.
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`dateTime` | [SimpleDateTime](https://hyperformula.handsontable.com/docs/api/globals.md#simpledatetime) | parsed date/time value to render |
`formatArg` | string | Excel-style format string |
**Returns:** *[Maybe](https://hyperformula.handsontable.com/docs/api/globals.md#maybe)‹string›*
formatted string, or `undefined` to defer to the next dispatch step
___
### defaultStringifyDuration
▸ **defaultStringifyDuration**(`time`: [SimpleTime](https://hyperformula.handsontable.com/docs/api/interfaces/simpletime.md), `formatArg`: string): *[Maybe](https://hyperformula.handsontable.com/docs/api/globals.md#maybe)‹string›*
*Defined in [src/format/format.ts:146](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/format/format.ts#L146)*
Default `stringifyDuration` callback — formats a duration value against an
Excel-style time format string (e.g. `[hh]:mm:ss`).
Returns `undefined` for format strings that are not duration formats so the
dispatcher in `format()` can fall through to other handlers.
**LCID currency-tag guard** — sibling to the same guard in
`defaultStringifyDateTime`; explicitly returns `undefined` for Excel
currency tags `[$SYMBOL-LCID]` because the SYMBOL portion contains
duration-token letters (`H` in CHF/HUF, `m` in AMD/HMD) that
`parseForDateTimeFormat` would otherwise interpret as time tokens and
mangle the output. See `defaultStringifyDateTime` for the full
symbol-vs-locale-modifier rationale and the historical pre-HF-24
behaviour the guard corrects.
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`time` | [SimpleTime](https://hyperformula.handsontable.com/docs/api/interfaces/simpletime.md) | parsed duration value to render |
`formatArg` | string | Excel-style format string |
**Returns:** *[Maybe](https://hyperformula.handsontable.com/docs/api/globals.md#maybe)‹string›*
formatted string, or `undefined` to defer to the next dispatch step
___
### doesContainRelativeReferences
▸ **doesContainRelativeReferences**(`ast`: Ast): *boolean*
*Defined in [src/NamedExpressions.ts:299](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/NamedExpressions.ts#L299)*
**Parameters:**
Name | Type |
------ | ------ |
`ast` | Ast |
**Returns:** *boolean*
___
### doesItLookLikeADateTimeQuickCheck
▸ **doesItLookLikeADateTimeQuickCheck**(`text`: string): *boolean*
*Defined in [src/DateTimeDefault.ts:222](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/DateTimeDefault.ts#L222)*
If this function returns false, the string is not parsable as a date time. Otherwise, it might be.
This is a quick check that is used to avoid running the more expensive parsing operations.
**Parameters:**
Name | Type |
------ | ------ |
`text` | string |
**Returns:** *boolean*
___
### empty
▸ **empty**‹**T**›(): *IterableIterator‹T›*
*Defined in [src/generatorUtils.ts:8](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/generatorUtils.ts#L8)*
**Type parameters:**
▪ **T**
**Returns:** *IterableIterator‹T›*
___
### equalSimpleCellAddress
▸ **equalSimpleCellAddress**(`left`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md), `right`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)): *boolean*
*Defined in [src/Cell.ts:226](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Cell.ts#L226)*
**Parameters:**
Name | Type |
------ | ------ |
`left` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) |
`right` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) |
**Returns:** *boolean*
___
### extractTime
▸ **extractTime**(`v`: any): *number*
*Defined in [src/helpers/licenseKeyHelper.ts:16](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/helpers/licenseKeyHelper.ts#L16)*
**Parameters:**
Name | Type |
------ | ------ |
`v` | any |
**Returns:** *number*
___
### filterDependenciesOutOfScope
▸ **filterDependenciesOutOfScope**(`deps`: [CellDependency](https://hyperformula.handsontable.com/docs/api/globals.md#celldependency)[]): *[CellDependency](https://hyperformula.handsontable.com/docs/api/globals.md#celldependency)[]*
*Defined in [src/absolutizeDependencies.ts:21](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/absolutizeDependencies.ts#L21)*
**Parameters:**
Name | Type |
------ | ------ |
`deps` | [CellDependency](https://hyperformula.handsontable.com/docs/api/globals.md#celldependency)[] |
**Returns:** *[CellDependency](https://hyperformula.handsontable.com/docs/api/globals.md#celldependency)[]*
___
### findBoundaries
▸ **findBoundaries**(`sheet`: [Sheet](https://hyperformula.handsontable.com/docs/api/globals.md#sheet)): *[SheetBoundaries](https://hyperformula.handsontable.com/docs/api/interfaces/sheetboundaries.md)*
*Defined in [src/Sheet.ts:49](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Sheet.ts#L49)*
Returns actual width, height and fill ratio of a sheet
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`sheet` | [Sheet](https://hyperformula.handsontable.com/docs/api/globals.md#sheet) | two-dimmensional array sheet representation |
**Returns:** *[SheetBoundaries](https://hyperformula.handsontable.com/docs/api/interfaces/sheetboundaries.md)*
___
### findInOrderedArray
▸ **findInOrderedArray**(`key`: number, `values`: number[], `handlingMisses`: "lowerBound" | "upperBound"): *number*
*Defined in [src/Lookup/ColumnIndex.ts:339](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Lookup/ColumnIndex.ts#L339)*
**Parameters:**
Name | Type | Default |
------ | ------ | ------ |
`key` | number | - |
`values` | number[] | - |
`handlingMisses` | "lowerBound" | "upperBound" | "upperBound" |
**Returns:** *number*
___
### first
▸ **first**‹**T**›(`iterable`: IterableIterator‹T›): *[Maybe](https://hyperformula.handsontable.com/docs/api/globals.md#maybe)‹T›*
*Defined in [src/generatorUtils.ts:22](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/generatorUtils.ts#L22)*
**Type parameters:**
▪ **T**
**Parameters:**
Name | Type |
------ | ------ |
`iterable` | IterableIterator‹T› |
**Returns:** *[Maybe](https://hyperformula.handsontable.com/docs/api/globals.md#maybe)‹T›*
___
### format
▸ **format**(`value`: number, `formatArg`: string, `config`: [Config](https://hyperformula.handsontable.com/docs/api/classes/config.md), `dateHelper`: [DateTimeHelper](https://hyperformula.handsontable.com/docs/api/classes/datetimehelper.md)): *RawScalarValue*
*Defined in [src/format/format.ts:30](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/format/format.ts#L30)*
**Parameters:**
Name | Type |
------ | ------ |
`value` | number |
`formatArg` | string |
`config` | [Config](https://hyperformula.handsontable.com/docs/api/classes/config.md) |
`dateHelper` | [DateTimeHelper](https://hyperformula.handsontable.com/docs/api/classes/datetimehelper.md) |
**Returns:** *RawScalarValue*
___
### formatDate
▸ **formatDate**(`date`: Date): *string*
*Defined in [src/helpers/licenseKeyValidator.ts:91](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/helpers/licenseKeyValidator.ts#L91)*
Formats a Date instance to hard-coded format MMMM DD, YYYY.
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`date` | Date | The date to format. |
**Returns:** *string*
___
### formatToken
▸ **formatToken**(`type`: [TokenType](https://hyperformula.handsontable.com/docs/api/enums/tokentype.md), `value`: string): *[FormatToken](https://hyperformula.handsontable.com/docs/api/interfaces/formattoken.md)*
*Defined in [src/format/parser.ts:22](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/format/parser.ts#L22)*
**Parameters:**
Name | Type |
------ | ------ |
`type` | [TokenType](https://hyperformula.handsontable.com/docs/api/enums/tokentype.md) |
`value` | string |
**Returns:** *[FormatToken](https://hyperformula.handsontable.com/docs/api/interfaces/formattoken.md)*
___
### getCellType
▸ **getCellType**(`vertex`: [Maybe](https://hyperformula.handsontable.com/docs/api/globals.md#maybe)‹CellVertex›, `address`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)): *[CellType](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-celltype)*
*Defined in [src/Cell.ts:61](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Cell.ts#L61)*
**Parameters:**
Name | Type |
------ | ------ |
`vertex` | [Maybe](https://hyperformula.handsontable.com/docs/api/globals.md#maybe)‹CellVertex› |
`address` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) |
**Returns:** *[CellType](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-celltype)*
___
### getCellValueDetailedType
▸ **getCellValueDetailedType**(`cellValue`: InterpreterValue): *[CellValueDetailedType](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-cellvaluedetailedtype)*
*Defined in [src/Cell.ts:133](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Cell.ts#L133)*
**Parameters:**
Name | Type |
------ | ------ |
`cellValue` | InterpreterValue |
**Returns:** *[CellValueDetailedType](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-cellvaluedetailedtype)*
___
### getCellValueFormat
▸ **getCellValueFormat**(`cellValue`: InterpreterValue): *string | undefined*
*Defined in [src/Cell.ts:141](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Cell.ts#L141)*
**Parameters:**
Name | Type |
------ | ------ |
`cellValue` | InterpreterValue |
**Returns:** *string | undefined*
___
### getCellValueType
▸ **getCellValueType**(`cellValue`: InterpreterValue): *[CellValueType](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-cellvaluetype)*
*Defined in [src/Cell.ts:113](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Cell.ts#L113)*
**Parameters:**
Name | Type |
------ | ------ |
`cellValue` | InterpreterValue |
**Returns:** *[CellValueType](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-cellvaluetype)*
___
### getDefaultConfig
▸ **getDefaultConfig**(): *[ConfigParams](https://hyperformula.handsontable.com/docs/api/interfaces/configparams.md)*
*Defined in [src/Config.ts:354](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Config.ts#L354)*
**Returns:** *[ConfigParams](https://hyperformula.handsontable.com/docs/api/interfaces/configparams.md)*
___
### getFullConfigFromPartial
▸ **getFullConfigFromPartial**(`partialConfig`: Partial‹[ConfigParams](https://hyperformula.handsontable.com/docs/api/interfaces/configparams.md)›): *[ConfigParams](https://hyperformula.handsontable.com/docs/api/interfaces/configparams.md)*
*Defined in [src/Config.ts:340](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Config.ts#L340)*
**Parameters:**
Name | Type |
------ | ------ |
`partialConfig` | Partial‹[ConfigParams](https://hyperformula.handsontable.com/docs/api/interfaces/configparams.md)› |
**Returns:** *[ConfigParams](https://hyperformula.handsontable.com/docs/api/interfaces/configparams.md)*
___
### instanceOfSimpleDate
▸ **instanceOfSimpleDate**(`obj`: any): *obj is SimpleDate*
*Defined in [src/DateTimeHelper.ts:34](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/DateTimeHelper.ts#L34)*
**Parameters:**
Name | Type |
------ | ------ |
`obj` | any |
**Returns:** *obj is SimpleDate*
___
### instanceOfSimpleTime
▸ **instanceOfSimpleTime**(`obj`: any): *obj is SimpleTime*
*Defined in [src/DateTimeHelper.ts:43](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/DateTimeHelper.ts#L43)*
**Parameters:**
Name | Type |
------ | ------ |
`obj` | any |
**Returns:** *obj is SimpleTime*
___
### invalidSimpleColumnAddress
▸ **invalidSimpleColumnAddress**(`address`: [SimpleColumnAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecolumnaddress.md)): *boolean*
*Defined in [src/Cell.ts:190](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Cell.ts#L190)*
**Parameters:**
Name | Type |
------ | ------ |
`address` | [SimpleColumnAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecolumnaddress.md) |
**Returns:** *boolean*
___
### invalidSimpleRowAddress
▸ **invalidSimpleRowAddress**(`address`: [SimpleRowAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplerowaddress.md)): *boolean*
*Defined in [src/Cell.ts:181](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Cell.ts#L181)*
**Parameters:**
Name | Type |
------ | ------ |
`address` | [SimpleRowAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplerowaddress.md) |
**Returns:** *boolean*
___
### isBoolean
▸ **isBoolean**(`text`: string): *boolean*
*Defined in [src/CellContentParser.ts:81](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/CellContentParser.ts#L81)*
**Parameters:**
Name | Type |
------ | ------ |
`text` | string |
**Returns:** *boolean*
___
### isColOrRowInvalid
▸ **isColOrRowInvalid**(`address`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)): *boolean*
*Defined in [src/Cell.ts:203](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Cell.ts#L203)*
Checks if the column or row id is negative.
**Parameters:**
Name | Type |
------ | ------ |
`address` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) |
**Returns:** *boolean*
___
### isError
▸ **isError**(`text`: string, `errorMapping`: Record‹string, [ErrorType](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-errortype)›): *boolean*
*Defined in [src/CellContentParser.ts:86](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/CellContentParser.ts#L86)*
**Parameters:**
Name | Type |
------ | ------ |
`text` | string |
`errorMapping` | Record‹string, [ErrorType](https://hyperformula.handsontable.com/docs/api/classes/hyperformulans.md#static-errortype)› |
**Returns:** *boolean*
___
### isEscapeToken
▸ **isEscapeToken**(`token`: RegExpExecArray): *boolean*
*Defined in [src/format/parser.ts:159](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/format/parser.ts#L159)*
**Parameters:**
Name | Type |
------ | ------ |
`token` | RegExpExecArray |
**Returns:** *boolean*
___
### isFormula
▸ **isFormula**(`text`: string): *boolean*
*Defined in [src/CellContentParser.ts:77](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/CellContentParser.ts#L77)*
Checks whether string looks like formula or not.
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`text` | string | formula |
**Returns:** *boolean*
___
### isNonnegativeInteger
▸ **isNonnegativeInteger**(`x`: number): *boolean*
*Defined in [src/CrudOperations.ts:657](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/CrudOperations.ts#L657)*
**Parameters:**
Name | Type |
------ | ------ |
`x` | number |
**Returns:** *boolean*
___
### isPositiveInteger
▸ **isPositiveInteger**(`x`: number): *boolean*
*Defined in [src/CrudOperations.ts:653](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/CrudOperations.ts#L653)*
**Parameters:**
Name | Type |
------ | ------ |
`x` | number |
**Returns:** *boolean*
___
### isRowOrColumnRange
▸ **isRowOrColumnRange**(`leftCorner`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md), `width`: number, `height`: number): *boolean*
*Defined in [src/Operations.ts:1100](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Operations.ts#L1100)*
**Parameters:**
Name | Type |
------ | ------ |
`leftCorner` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) |
`width` | number |
`height` | number |
**Returns:** *boolean*
___
### isSimpleCellAddress
▸ **isSimpleCellAddress**(`obj`: unknown): *obj is SimpleCellAddress*
*Defined in [src/Cell.ts:214](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Cell.ts#L214)*
Checks if the object is a simple cell address.
**Parameters:**
Name | Type |
------ | ------ |
`obj` | unknown |
**Returns:** *obj is SimpleCellAddress*
___
### isSimpleCellRange
▸ **isSimpleCellRange**(`val`: unknown): *val is SimpleCellRange*
*Defined in [src/AbsoluteCellRange.ts:34](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L34)*
Type guard that checks if an object is a valid SimpleCellRange.
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`val` | unknown | Value to check |
**Returns:** *val is SimpleCellRange*
True if and only if the object is a valid SimpleCellRange
___
### matchDateFormat
▸ **matchDateFormat**(`str`: string): *RegExpExecArray[]*
*Defined in [src/format/parser.ts:40](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/format/parser.ts#L40)*
**Parameters:**
Name | Type |
------ | ------ |
`str` | string |
**Returns:** *RegExpExecArray[]*
___
### matchNumberFormat
▸ **matchNumberFormat**(`str`: string): *RegExpExecArray[]*
*Defined in [src/format/parser.ts:61](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/format/parser.ts#L61)*
Finds one numeric mask and its surrounding literals and percent operators.
Keeping quotes and escapes intact prevents literal percent signs from scaling
the value. Later numeric masks remain free text, as in the existing formatter.
**Parameters:**
Name | Type |
------ | ------ |
`str` | string |
**Returns:** *RegExpExecArray[]*
___
### memoize
▸ **memoize**‹**T**›(`fn`: function): *(Anonymous function)*
*Defined in [src/DateTimeDefault.ts:229](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/DateTimeDefault.ts#L229)*
Function memoization for improved performance.
**Type parameters:**
▪ **T**
**Parameters:**
▪ **fn**: *function*
▸ (`arg`: string): *T*
**Parameters:**
Name | Type |
------ | ------ |
`arg` | string |
**Returns:** *(Anonymous function)*
___
### movedSimpleCellAddress
▸ **movedSimpleCellAddress**(`address`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md), `toSheet`: number, `toRight`: number, `toBottom`: number): *[SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)*
*Defined in [src/Cell.ts:205](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Cell.ts#L205)*
**Parameters:**
Name | Type |
------ | ------ |
`address` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) |
`toSheet` | number |
`toRight` | number |
`toBottom` | number |
**Returns:** *[SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)*
___
### normalizeAddedIndexes
▸ **normalizeAddedIndexes**(`indexes`: [ColumnRowIndex](https://hyperformula.handsontable.com/docs/api/globals.md#columnrowindex)[]): *[ColumnRowIndex](https://hyperformula.handsontable.com/docs/api/globals.md#columnrowindex)[]*
*Defined in [src/Operations.ts:1068](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Operations.ts#L1068)*
**Parameters:**
Name | Type |
------ | ------ |
`indexes` | [ColumnRowIndex](https://hyperformula.handsontable.com/docs/api/globals.md#columnrowindex)[] |
**Returns:** *[ColumnRowIndex](https://hyperformula.handsontable.com/docs/api/globals.md#columnrowindex)[]*
___
### normalizeRemovedIndexes
▸ **normalizeRemovedIndexes**(`indexes`: [ColumnRowIndex](https://hyperformula.handsontable.com/docs/api/globals.md#columnrowindex)[]): *[ColumnRowIndex](https://hyperformula.handsontable.com/docs/api/globals.md#columnrowindex)[]*
*Defined in [src/Operations.ts:1037](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Operations.ts#L1037)*
**Parameters:**
Name | Type |
------ | ------ |
`indexes` | [ColumnRowIndex](https://hyperformula.handsontable.com/docs/api/globals.md#columnrowindex)[] |
**Returns:** *[ColumnRowIndex](https://hyperformula.handsontable.com/docs/api/globals.md#columnrowindex)[]*
___
### numberFormat
▸ **numberFormat**(`tokens`: [FormatToken](https://hyperformula.handsontable.com/docs/api/interfaces/formattoken.md)[], `value`: number): *RawScalarValue*
*Defined in [src/format/format.ts:84](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/format/format.ts#L84)*
Renders a numeric mask after scaling once for each active percent operator.
Scaling precedes rounding and leaves custom formatter callbacks unaffected.
**Parameters:**
Name | Type |
------ | ------ |
`tokens` | [FormatToken](https://hyperformula.handsontable.com/docs/api/interfaces/formattoken.md)[] |
`value` | number |
**Returns:** *RawScalarValue*
___
### numberToSimpleTime
▸ **numberToSimpleTime**(`arg`: number): *[SimpleTime](https://hyperformula.handsontable.com/docs/api/interfaces/simpletime.md)*
*Defined in [src/DateTimeHelper.ts:304](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/DateTimeHelper.ts#L304)*
**Parameters:**
Name | Type |
------ | ------ |
`arg` | number |
**Returns:** *[SimpleTime](https://hyperformula.handsontable.com/docs/api/interfaces/simpletime.md)*
___
### objectDestroy
▸ **objectDestroy**(`object`: any): *void*
*Defined in [src/Destroy.ts:6](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Destroy.ts#L6)*
**`license`**
Copyright (c) 2025 Handsoncode. All rights reserved.
**Parameters:**
Name | Type |
------ | ------ |
`object` | any |
**Returns:** *void*
___
### offsetMonth
▸ **offsetMonth**(`date`: [SimpleDate](https://hyperformula.handsontable.com/docs/api/interfaces/simpledate.md), `offset`: number): *[SimpleDate](https://hyperformula.handsontable.com/docs/api/interfaces/simpledate.md)*
*Defined in [src/DateTimeHelper.ts:286](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/DateTimeHelper.ts#L286)*
**Parameters:**
Name | Type |
------ | ------ |
`date` | [SimpleDate](https://hyperformula.handsontable.com/docs/api/interfaces/simpledate.md) |
`offset` | number |
**Returns:** *[SimpleDate](https://hyperformula.handsontable.com/docs/api/interfaces/simpledate.md)*
___
### padLeft
▸ **padLeft**(`number`: number | string, `size`: number): *string*
*Defined in [src/format/format.ts:60](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/format/format.ts#L60)*
**Parameters:**
Name | Type |
------ | ------ |
`number` | number | string |
`size` | number |
**Returns:** *string*
___
### padRight
▸ **padRight**(`number`: number | string, `size`: number): *string*
*Defined in [src/format/format.ts:68](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/format/format.ts#L68)*
**Parameters:**
Name | Type |
------ | ------ |
`number` | number | string |
`size` | number |
**Returns:** *string*
___
### parse
▸ **parse**(`str`: string): *[FormatExpression](https://hyperformula.handsontable.com/docs/api/interfaces/formatexpression.md)*
*Defined in [src/format/parser.ts:149](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/format/parser.ts#L149)*
**Parameters:**
Name | Type |
------ | ------ |
`str` | string |
**Returns:** *[FormatExpression](https://hyperformula.handsontable.com/docs/api/interfaces/formatexpression.md)*
___
### parseDateFormat
▸ **parseDateFormat**(`dateFormat`: string): *object*
*Defined in [src/DateTimeDefault.ts:206](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/DateTimeDefault.ts#L206)*
Parses a date format string into a format object.
**Parameters:**
Name | Type |
------ | ------ |
`dateFormat` | string |
**Returns:** *object*
* **dayItem**: *number*
* **itemsCount**: *number*
* **longYearItem**: *number*
* **monthItem**: *number*
* **shortYearItem**: *number*
___
### parseForDateTimeFormat
▸ **parseForDateTimeFormat**(`str`: string): *[Maybe](https://hyperformula.handsontable.com/docs/api/globals.md#maybe)‹[FormatExpression](https://hyperformula.handsontable.com/docs/api/interfaces/formatexpression.md)›*
*Defined in [src/format/parser.ts:108](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/format/parser.ts#L108)*
**Parameters:**
Name | Type |
------ | ------ |
`str` | string |
**Returns:** *[Maybe](https://hyperformula.handsontable.com/docs/api/globals.md#maybe)‹[FormatExpression](https://hyperformula.handsontable.com/docs/api/interfaces/formatexpression.md)›*
___
### parseForNumberFormat
▸ **parseForNumberFormat**(`str`: string): *[Maybe](https://hyperformula.handsontable.com/docs/api/globals.md#maybe)‹[FormatExpression](https://hyperformula.handsontable.com/docs/api/interfaces/formatexpression.md)›*
*Defined in [src/format/parser.ts:126](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/format/parser.ts#L126)*
Tokenizes a numeric format, distinguishing percent operators from literals.
Percent escapes and quoted literals are decoded only on the number path;
date tokens and unrelated backslash escapes retain their representation.
**Parameters:**
Name | Type |
------ | ------ |
`str` | string |
**Returns:** *[Maybe](https://hyperformula.handsontable.com/docs/api/globals.md#maybe)‹[FormatExpression](https://hyperformula.handsontable.com/docs/api/interfaces/formatexpression.md)›*
___
### parseTimeFormat
▸ **parseTimeFormat**(`timeFormat`: string): *object*
*Defined in [src/DateTimeDefault.ts:186](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/DateTimeDefault.ts#L186)*
Parses a time format string into a format object.
**Parameters:**
Name | Type |
------ | ------ |
`timeFormat` | string |
**Returns:** *object*
* **hourItem**: *number*
* **itemsCount**: *number*
* **minuteItem**: *number*
* **secondItem**: *number*
___
### postMortem
▸ **postMortem**(`method`: any): *(Anonymous function)*
*Defined in [src/Destroy.ts:16](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Destroy.ts#L16)*
**Parameters:**
Name | Type |
------ | ------ |
`method` | any |
**Returns:** *(Anonymous function)*
___
### replacer
▸ **replacer**(`key`: string, `val`: any): *any*
*Defined in [src/errors.ts:134](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/errors.ts#L134)*
**Parameters:**
Name | Type |
------ | ------ |
`key` | string |
`val` | any |
**Returns:** *any*
___
### roundToEpsilon
▸ **roundToEpsilon**(`arg`: number, `epsilon`: number): *number*
*Defined in [src/DateTimeHelper.ts:299](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/DateTimeHelper.ts#L299)*
**Parameters:**
Name | Type | Default |
------ | ------ | ------ |
`arg` | number | - |
`epsilon` | number | 1 |
**Returns:** *number*
___
### roundToNearestSecond
▸ **roundToNearestSecond**(`arg`: number): *number*
*Defined in [src/DateTimeHelper.ts:295](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/DateTimeHelper.ts#L295)*
**Parameters:**
Name | Type |
------ | ------ |
`arg` | number |
**Returns:** *number*
___
### simpleCellAddress
▸ **simpleCellAddress**(`sheet`: number, `col`: number, `row`: number): *[SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)*
*Defined in [src/Cell.ts:198](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Cell.ts#L198)*
**Parameters:**
Name | Type |
------ | ------ |
`sheet` | number |
`col` | number |
`row` | number |
**Returns:** *[SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)*
___
### simpleCellRange
▸ **simpleCellRange**(`start`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md), `end`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)): *object*
*Defined in [src/AbsoluteCellRange.ts:43](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L43)*
**Parameters:**
Name | Type |
------ | ------ |
`start` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) |
`end` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) |
**Returns:** *object*
* **end**: *[SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)*
* **start**: *[SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)*
___
### simpleColumnAddress
▸ **simpleColumnAddress**(`sheet`: number, `col`: number): *[SimpleColumnAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecolumnaddress.md)*
*Defined in [src/Cell.ts:188](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Cell.ts#L188)*
**Parameters:**
Name | Type |
------ | ------ |
`sheet` | number |
`col` | number |
**Returns:** *[SimpleColumnAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecolumnaddress.md)*
___
### simpleRowAddress
▸ **simpleRowAddress**(`sheet`: number, `row`: number): *[SimpleRowAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplerowaddress.md)*
*Defined in [src/Cell.ts:179](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Cell.ts#L179)*
**Parameters:**
Name | Type |
------ | ------ |
`sheet` | number |
`row` | number |
**Returns:** *[SimpleRowAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplerowaddress.md)*
___
### split
▸ **split**‹**T**›(`iterable`: IterableIterator‹T›): *object*
*Defined in [src/generatorUtils.ts:11](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/generatorUtils.ts#L11)*
**Type parameters:**
▪ **T**
**Parameters:**
Name | Type |
------ | ------ |
`iterable` | IterableIterator‹T› |
**Returns:** *object*
* **rest**: *IterableIterator‹T›*
* **value**? : *T*
___
### timeToNumber
▸ **timeToNumber**(`time`: [SimpleTime](https://hyperformula.handsontable.com/docs/api/interfaces/simpletime.md)): *number*
*Defined in [src/DateTimeHelper.ts:315](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/DateTimeHelper.ts#L315)*
**Parameters:**
Name | Type |
------ | ------ |
`time` | [SimpleTime](https://hyperformula.handsontable.com/docs/api/interfaces/simpletime.md) |
**Returns:** *number*
___
### toBasisEU
▸ **toBasisEU**(`date`: [SimpleDate](https://hyperformula.handsontable.com/docs/api/interfaces/simpledate.md)): *[SimpleDate](https://hyperformula.handsontable.com/docs/api/interfaces/simpledate.md)*
*Defined in [src/DateTimeHelper.ts:319](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/DateTimeHelper.ts#L319)*
**Parameters:**
Name | Type |
------ | ------ |
`date` | [SimpleDate](https://hyperformula.handsontable.com/docs/api/interfaces/simpledate.md) |
**Returns:** *[SimpleDate](https://hyperformula.handsontable.com/docs/api/interfaces/simpledate.md)*
___
### truncateDayInMonth
▸ **truncateDayInMonth**(`date`: [SimpleDate](https://hyperformula.handsontable.com/docs/api/interfaces/simpledate.md)): *[SimpleDate](https://hyperformula.handsontable.com/docs/api/interfaces/simpledate.md)*
*Defined in [src/DateTimeHelper.ts:291](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/DateTimeHelper.ts#L291)*
**Parameters:**
Name | Type |
------ | ------ |
`date` | [SimpleDate](https://hyperformula.handsontable.com/docs/api/interfaces/simpledate.md) |
**Returns:** *[SimpleDate](https://hyperformula.handsontable.com/docs/api/interfaces/simpledate.md)*
___
### validateArgToType
▸ **validateArgToType**(`inputValue`: any, `expectedType`: string, `paramName`: string): *void*
*Defined in [src/ArgumentSanitization.ts:81](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ArgumentSanitization.ts#L81)*
**Parameters:**
Name | Type |
------ | ------ |
`inputValue` | any |
`expectedType` | string |
`paramName` | string |
**Returns:** *void*
___
### validateAsSheet
▸ **validateAsSheet**(`sheet`: [Sheet](https://hyperformula.handsontable.com/docs/api/globals.md#sheet)): *void*
*Defined in [src/Sheet.ts:33](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Sheet.ts#L33)*
**Parameters:**
Name | Type |
------ | ------ |
`sheet` | [Sheet](https://hyperformula.handsontable.com/docs/api/globals.md#sheet) |
**Returns:** *void*
___
### validateNumberToBeAtLeast
▸ **validateNumberToBeAtLeast**(`value`: number, `paramName`: string, `minimum`: number): *void*
*Defined in [src/ArgumentSanitization.ts:34](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ArgumentSanitization.ts#L34)*
**Parameters:**
Name | Type |
------ | ------ |
`value` | number |
`paramName` | string |
`minimum` | number |
**Returns:** *void*
___
### validateNumberToBeAtMost
▸ **validateNumberToBeAtMost**(`value`: number, `paramName`: string, `maximum`: number): *void*
*Defined in [src/ArgumentSanitization.ts:40](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ArgumentSanitization.ts#L40)*
**Parameters:**
Name | Type |
------ | ------ |
`value` | number |
`paramName` | string |
`maximum` | number |
**Returns:** *void*
## Object literals
### CellValueDetailedType
### ▪ **CellValueDetailedType**: *object*
*Defined in [src/Cell.ts:95](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Cell.ts#L95)*
___
### CellValueType
### ▪ **CellValueType**: *object*
*Defined in [src/Cell.ts:92](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Cell.ts#L92)*
___
### consoleMessages
### ▪ **consoleMessages**: *object*
*Defined in [src/helpers/licenseKeyValidator.ts:36](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/helpers/licenseKeyValidator.ts#L36)*
List of all not valid messages which may occur.
### expired
▸ **expired**(`__namedParameters`: object): *string*
*Defined in [src/helpers/licenseKeyValidator.ts:38](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/helpers/licenseKeyValidator.ts#L38)*
**Parameters:**
▪ **__namedParameters**: *object*
Name | Type |
------ | ------ |
`keyValidityDate` | string |
**Returns:** *string*
### invalid
▸ **invalid**(): *string*
*Defined in [src/helpers/licenseKeyValidator.ts:37](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/helpers/licenseKeyValidator.ts#L37)*
**Returns:** *string*
### missing
▸ **missing**(): *string*
*Defined in [src/helpers/licenseKeyValidator.ts:40](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/helpers/licenseKeyValidator.ts#L40)*
**Returns:** *string*
___
### maxDate
### ▪ **maxDate**: *object*
*Defined in [src/DateTimeHelper.ts:51](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/DateTimeHelper.ts#L51)*
### day
• **day**: *number* = 31
*Defined in [src/DateTimeHelper.ts:51](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/DateTimeHelper.ts#L51)*
### month
• **month**: *number* = 12
*Defined in [src/DateTimeHelper.ts:51](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/DateTimeHelper.ts#L51)*
### year
• **year**: *number* = 9999
*Defined in [src/DateTimeHelper.ts:51](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/DateTimeHelper.ts#L51)*
---
## WorkbookStore
URL: https://hyperformula.handsontable.com/docs/api/classes/workbookstore
# WorkbookStore
## Methods
### add
▸ **add**(`namedExpression`: [InternalNamedExpression](https://hyperformula.handsontable.com/docs/api/classes/internalnamedexpression.md)): *void*
*Defined in [src/NamedExpressions.ts:55](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/NamedExpressions.ts#L55)*
**Parameters:**
Name | Type |
------ | ------ |
`namedExpression` | [InternalNamedExpression](https://hyperformula.handsontable.com/docs/api/classes/internalnamedexpression.md) |
**Returns:** *void*
___
### get
▸ **get**(`expressionName`: string): *[Maybe](https://hyperformula.handsontable.com/docs/api/globals.md#maybe)‹[InternalNamedExpression](https://hyperformula.handsontable.com/docs/api/classes/internalnamedexpression.md)›*
*Defined in [src/NamedExpressions.ts:59](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/NamedExpressions.ts#L59)*
**Parameters:**
Name | Type |
------ | ------ |
`expressionName` | string |
**Returns:** *[Maybe](https://hyperformula.handsontable.com/docs/api/globals.md#maybe)‹[InternalNamedExpression](https://hyperformula.handsontable.com/docs/api/classes/internalnamedexpression.md)›*
___
### getAllNamedExpressions
▸ **getAllNamedExpressions**(): *[InternalNamedExpression](https://hyperformula.handsontable.com/docs/api/classes/internalnamedexpression.md)[]*
*Defined in [src/NamedExpressions.ts:80](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/NamedExpressions.ts#L80)*
**Returns:** *[InternalNamedExpression](https://hyperformula.handsontable.com/docs/api/classes/internalnamedexpression.md)[]*
___
### getExisting
▸ **getExisting**(`expressionName`: string): *[Maybe](https://hyperformula.handsontable.com/docs/api/globals.md#maybe)‹[InternalNamedExpression](https://hyperformula.handsontable.com/docs/api/classes/internalnamedexpression.md)›*
*Defined in [src/NamedExpressions.ts:63](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/NamedExpressions.ts#L63)*
**Parameters:**
Name | Type |
------ | ------ |
`expressionName` | string |
**Returns:** *[Maybe](https://hyperformula.handsontable.com/docs/api/globals.md#maybe)‹[InternalNamedExpression](https://hyperformula.handsontable.com/docs/api/classes/internalnamedexpression.md)›*
___
### has
▸ **has**(`expressionName`: string): *boolean*
*Defined in [src/NamedExpressions.ts:45](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/NamedExpressions.ts#L45)*
**Parameters:**
Name | Type |
------ | ------ |
`expressionName` | string |
**Returns:** *boolean*
___
### isNameAvailable
▸ **isNameAvailable**(`expressionName`: string): *boolean*
*Defined in [src/NamedExpressions.ts:49](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/NamedExpressions.ts#L49)*
**Parameters:**
Name | Type |
------ | ------ |
`expressionName` | string |
**Returns:** *boolean*
___
### remove
▸ **remove**(`expressionName`: string): *void*
*Defined in [src/NamedExpressions.ts:72](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/NamedExpressions.ts#L72)*
**Parameters:**
Name | Type |
------ | ------ |
`expressionName` | string |
**Returns:** *void*
---
## CellValueChange
URL: https://hyperformula.handsontable.com/docs/api/interfaces/cellvaluechange
# CellValueChange
## Properties
### address
• **address**: *[SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)*
*Defined in [src/ContentChanges.ts:11](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ContentChanges.ts#L11)*
___
### oldValue
• **oldValue**? : *InterpreterValue*
*Defined in [src/ContentChanges.ts:13](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ContentChanges.ts#L13)*
___
### value
• **value**: *InterpreterValue*
*Defined in [src/ContentChanges.ts:12](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ContentChanges.ts#L12)*
---
## UndoRedo
URL: https://hyperformula.handsontable.com/docs/api/classes/undoredo
# UndoRedo
Manages undo/redo stacks for all spreadsheet operations.
## oldData: Preserving Formula ASTs Across Irreversible Transformations
Some structural operations (e.g., removing rows/columns, moving cells) destroy
formula information that cannot be reconstructed from the transformation alone.
For example, when a row is removed, formulas referencing that row are rewritten
to `#REF!` — an irreversible change.
To support undo of such operations, `oldData` stores snapshots of formula AST
hashes keyed by the LazilyTransformingAstService version at which the irreversible
transformation was applied. Each entry maps a version number to an array of
`[cellAddress, astHash]` pairs that can be used to restore the original formula
from the parser cache.
### Memory Management
Without cleanup, `oldData` grows indefinitely as undo entries are evicted but
their oldData keys remain. Three mechanisms prevent this:
1. **Eviction cleanup**: When undo entries are evicted (due to `undoLimit`),
`cleanupOldDataForEntries()` deletes their referenced oldData keys
(unless still needed by entries on the other stack).
2. **Orphan cleanup**: Compaction may force lazy formula evaluation, which
writes new oldData entries for already-evicted undo entries. After compaction,
`cleanupOrphanedOldData()` removes any keys not referenced by entries on
either stack or the in-progress batch.
3. **Short-circuit**: When `undoLimit` is 0 (undo disabled),
`storeDataForVersion()` returns immediately to avoid storing data that
would never be used.
## Constructors
### constructor
\+ **new UndoRedo**(`config`: [Config](https://hyperformula.handsontable.com/docs/api/classes/config.md), `operations`: [Operations](https://hyperformula.handsontable.com/docs/api/classes/operations.md)): *[UndoRedo](https://hyperformula.handsontable.com/docs/api/classes/undoredo.md)*
*Defined in [src/UndoRedo.ts:505](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L505)*
**Parameters:**
Name | Type |
------ | ------ |
`config` | [Config](https://hyperformula.handsontable.com/docs/api/classes/config.md) |
`operations` | [Operations](https://hyperformula.handsontable.com/docs/api/classes/operations.md) |
**Returns:** *[UndoRedo](https://hyperformula.handsontable.com/docs/api/classes/undoredo.md)*
## Properties
### oldData
• **oldData**: *Map‹number, [[SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md), string][]›* = new Map()
*Defined in [src/UndoRedo.ts:501](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L501)*
## Methods
### beginBatchMode
▸ **beginBatchMode**(): *void*
*Defined in [src/UndoRedo.ts:522](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L522)*
**Returns:** *void*
___
### cleanupOrphanedOldData
▸ **cleanupOrphanedOldData**(): *void*
*Defined in [src/UndoRedo.ts:880](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L880)*
Removes oldData entries whose version keys are not referenced by any
entry on the undo stack, redo stack, or in-progress batch. Called after
compaction forces lazy formula evaluation, which may insert oldData for
already-evicted entries.
**Returns:** *void*
___
### clearRedoStack
▸ **clearRedoStack**(): *void*
*Defined in [src/UndoRedo.ts:550](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L550)*
Clears the redo stack and removes oldData entries no longer referenced by any remaining entry.
**Returns:** *void*
___
### clearUndoStack
▸ **clearUndoStack**(): *void*
*Defined in [src/UndoRedo.ts:556](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L556)*
Clears the undo stack and removes oldData entries no longer referenced by any remaining entry.
**Returns:** *void*
___
### commitBatchMode
▸ **commitBatchMode**(): *void*
*Defined in [src/UndoRedo.ts:526](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L526)*
**Returns:** *void*
___
### isRedoStackEmpty
▸ **isRedoStackEmpty**(): *boolean*
*Defined in [src/UndoRedo.ts:565](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L565)*
**Returns:** *boolean*
___
### isUndoStackEmpty
▸ **isUndoStackEmpty**(): *boolean*
*Defined in [src/UndoRedo.ts:561](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L561)*
**Returns:** *boolean*
___
### redo
▸ **redo**(): *void*
*Defined in [src/UndoRedo.ts:756](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L756)*
**Returns:** *void*
___
### redoAddColumns
▸ **redoAddColumns**(`operation`: [AddColumnsUndoEntry](https://hyperformula.handsontable.com/docs/api/classes/addcolumnsundoentry.md)): *void*
*Defined in [src/UndoRedo.ts:808](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L808)*
**Parameters:**
Name | Type |
------ | ------ |
`operation` | [AddColumnsUndoEntry](https://hyperformula.handsontable.com/docs/api/classes/addcolumnsundoentry.md) |
**Returns:** *void*
___
### redoAddNamedExpression
▸ **redoAddNamedExpression**(`operation`: [AddNamedExpressionUndoEntry](https://hyperformula.handsontable.com/docs/api/classes/addnamedexpressionundoentry.md)): *void*
*Defined in [src/UndoRedo.ts:841](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L841)*
**Parameters:**
Name | Type |
------ | ------ |
`operation` | [AddNamedExpressionUndoEntry](https://hyperformula.handsontable.com/docs/api/classes/addnamedexpressionundoentry.md) |
**Returns:** *void*
___
### redoAddRows
▸ **redoAddRows**(`operation`: [AddRowsUndoEntry](https://hyperformula.handsontable.com/docs/api/classes/addrowsundoentry.md)): *void*
*Defined in [src/UndoRedo.ts:804](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L804)*
**Parameters:**
Name | Type |
------ | ------ |
`operation` | [AddRowsUndoEntry](https://hyperformula.handsontable.com/docs/api/classes/addrowsundoentry.md) |
**Returns:** *void*
___
### redoAddSheet
▸ **redoAddSheet**(`operation`: [AddSheetUndoEntry](https://hyperformula.handsontable.com/docs/api/classes/addsheetundoentry.md)): *void*
*Defined in [src/UndoRedo.ts:816](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L816)*
**Parameters:**
Name | Type |
------ | ------ |
`operation` | [AddSheetUndoEntry](https://hyperformula.handsontable.com/docs/api/classes/addsheetundoentry.md) |
**Returns:** *void*
___
### redoBatch
▸ **redoBatch**(`batchOperation`: [BatchUndoEntry](https://hyperformula.handsontable.com/docs/api/classes/batchundoentry.md)): *void*
*Defined in [src/UndoRedo.ts:768](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L768)*
**Parameters:**
Name | Type |
------ | ------ |
`batchOperation` | [BatchUndoEntry](https://hyperformula.handsontable.com/docs/api/classes/batchundoentry.md) |
**Returns:** *void*
___
### redoChangeNamedExpression
▸ **redoChangeNamedExpression**(`operation`: [ChangeNamedExpressionUndoEntry](https://hyperformula.handsontable.com/docs/api/classes/changenamedexpressionundoentry.md)): *void*
*Defined in [src/UndoRedo.ts:849](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L849)*
**Parameters:**
Name | Type |
------ | ------ |
`operation` | [ChangeNamedExpressionUndoEntry](https://hyperformula.handsontable.com/docs/api/classes/changenamedexpressionundoentry.md) |
**Returns:** *void*
___
### redoClearSheet
▸ **redoClearSheet**(`operation`: [ClearSheetUndoEntry](https://hyperformula.handsontable.com/docs/api/classes/clearsheetundoentry.md)): *void*
*Defined in [src/UndoRedo.ts:832](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L832)*
**Parameters:**
Name | Type |
------ | ------ |
`operation` | [ClearSheetUndoEntry](https://hyperformula.handsontable.com/docs/api/classes/clearsheetundoentry.md) |
**Returns:** *void*
___
### redoMoveCells
▸ **redoMoveCells**(`operation`: [MoveCellsUndoEntry](https://hyperformula.handsontable.com/docs/api/classes/movecellsundoentry.md)): *void*
*Defined in [src/UndoRedo.ts:778](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L778)*
**Parameters:**
Name | Type |
------ | ------ |
`operation` | [MoveCellsUndoEntry](https://hyperformula.handsontable.com/docs/api/classes/movecellsundoentry.md) |
**Returns:** *void*
___
### redoMoveColumns
▸ **redoMoveColumns**(`operation`: [MoveColumnsUndoEntry](https://hyperformula.handsontable.com/docs/api/classes/movecolumnsundoentry.md)): *void*
*Defined in [src/UndoRedo.ts:828](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L828)*
**Parameters:**
Name | Type |
------ | ------ |
`operation` | [MoveColumnsUndoEntry](https://hyperformula.handsontable.com/docs/api/classes/movecolumnsundoentry.md) |
**Returns:** *void*
___
### redoMoveRows
▸ **redoMoveRows**(`operation`: [MoveRowsUndoEntry](https://hyperformula.handsontable.com/docs/api/classes/moverowsundoentry.md)): *void*
*Defined in [src/UndoRedo.ts:824](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L824)*
**Parameters:**
Name | Type |
------ | ------ |
`operation` | [MoveRowsUndoEntry](https://hyperformula.handsontable.com/docs/api/classes/moverowsundoentry.md) |
**Returns:** *void*
___
### redoPaste
▸ **redoPaste**(`operation`: [PasteUndoEntry](https://hyperformula.handsontable.com/docs/api/classes/pasteundoentry.md)): *void*
*Defined in [src/UndoRedo.ts:786](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L786)*
**Parameters:**
Name | Type |
------ | ------ |
`operation` | [PasteUndoEntry](https://hyperformula.handsontable.com/docs/api/classes/pasteundoentry.md) |
**Returns:** *void*
___
### redoRemoveColumns
▸ **redoRemoveColumns**(`operation`: [RemoveColumnsUndoEntry](https://hyperformula.handsontable.com/docs/api/classes/removecolumnsundoentry.md)): *void*
*Defined in [src/UndoRedo.ts:782](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L782)*
**Parameters:**
Name | Type |
------ | ------ |
`operation` | [RemoveColumnsUndoEntry](https://hyperformula.handsontable.com/docs/api/classes/removecolumnsundoentry.md) |
**Returns:** *void*
___
### redoRemoveNamedExpression
▸ **redoRemoveNamedExpression**(`operation`: [RemoveNamedExpressionUndoEntry](https://hyperformula.handsontable.com/docs/api/classes/removenamedexpressionundoentry.md)): *void*
*Defined in [src/UndoRedo.ts:845](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L845)*
**Parameters:**
Name | Type |
------ | ------ |
`operation` | [RemoveNamedExpressionUndoEntry](https://hyperformula.handsontable.com/docs/api/classes/removenamedexpressionundoentry.md) |
**Returns:** *void*
___
### redoRemoveRows
▸ **redoRemoveRows**(`operation`: [RemoveRowsUndoEntry](https://hyperformula.handsontable.com/docs/api/classes/removerowsundoentry.md)): *void*
*Defined in [src/UndoRedo.ts:774](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L774)*
**Parameters:**
Name | Type |
------ | ------ |
`operation` | [RemoveRowsUndoEntry](https://hyperformula.handsontable.com/docs/api/classes/removerowsundoentry.md) |
**Returns:** *void*
___
### redoRemoveSheet
▸ **redoRemoveSheet**(`operation`: [RemoveSheetUndoEntry](https://hyperformula.handsontable.com/docs/api/classes/removesheetundoentry.md)): *void*
*Defined in [src/UndoRedo.ts:812](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L812)*
**Parameters:**
Name | Type |
------ | ------ |
`operation` | [RemoveSheetUndoEntry](https://hyperformula.handsontable.com/docs/api/classes/removesheetundoentry.md) |
**Returns:** *void*
___
### redoRenameSheet
▸ **redoRenameSheet**(`operation`: [RenameSheetUndoEntry](https://hyperformula.handsontable.com/docs/api/classes/renamesheetundoentry.md)): *void*
*Defined in [src/UndoRedo.ts:820](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L820)*
**Parameters:**
Name | Type |
------ | ------ |
`operation` | [RenameSheetUndoEntry](https://hyperformula.handsontable.com/docs/api/classes/renamesheetundoentry.md) |
**Returns:** *void*
___
### redoSetCellContents
▸ **redoSetCellContents**(`operation`: [SetCellContentsUndoEntry](https://hyperformula.handsontable.com/docs/api/classes/setcellcontentsundoentry.md)): *void*
*Defined in [src/UndoRedo.ts:798](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L798)*
**Parameters:**
Name | Type |
------ | ------ |
`operation` | [SetCellContentsUndoEntry](https://hyperformula.handsontable.com/docs/api/classes/setcellcontentsundoentry.md) |
**Returns:** *void*
___
### redoSetColumnOrder
▸ **redoSetColumnOrder**(`operation`: [SetColumnOrderUndoEntry](https://hyperformula.handsontable.com/docs/api/classes/setcolumnorderundoentry.md)): *void*
*Defined in [src/UndoRedo.ts:857](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L857)*
**Parameters:**
Name | Type |
------ | ------ |
`operation` | [SetColumnOrderUndoEntry](https://hyperformula.handsontable.com/docs/api/classes/setcolumnorderundoentry.md) |
**Returns:** *void*
___
### redoSetRowOrder
▸ **redoSetRowOrder**(`operation`: [SetRowOrderUndoEntry](https://hyperformula.handsontable.com/docs/api/classes/setroworderundoentry.md)): *void*
*Defined in [src/UndoRedo.ts:853](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L853)*
**Parameters:**
Name | Type |
------ | ------ |
`operation` | [SetRowOrderUndoEntry](https://hyperformula.handsontable.com/docs/api/classes/setroworderundoentry.md) |
**Returns:** *void*
___
### redoSetSheetContent
▸ **redoSetSheetContent**(`operation`: [SetSheetContentUndoEntry](https://hyperformula.handsontable.com/docs/api/classes/setsheetcontentundoentry.md)): *void*
*Defined in [src/UndoRedo.ts:836](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L836)*
**Parameters:**
Name | Type |
------ | ------ |
`operation` | [SetSheetContentUndoEntry](https://hyperformula.handsontable.com/docs/api/classes/setsheetcontentundoentry.md) |
**Returns:** *void*
___
### saveOperation
▸ **saveOperation**(`operation`: [UndoEntry](https://hyperformula.handsontable.com/docs/api/interfaces/undoentry.md)): *void*
*Defined in [src/UndoRedo.ts:514](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L514)*
**Parameters:**
Name | Type |
------ | ------ |
`operation` | [UndoEntry](https://hyperformula.handsontable.com/docs/api/interfaces/undoentry.md) |
**Returns:** *void*
___
### storeDataForVersion
▸ **storeDataForVersion**(`version`: number, `address`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md), `astHash`: string): *void*
*Defined in [src/UndoRedo.ts:538](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L538)*
Stores a formula AST hash snapshot for the given LazilyTransformingAstService version.
Skipped when `undoLimit` is 0 (undo disabled) to avoid storing data that would never be used.
**Parameters:**
Name | Type |
------ | ------ |
`version` | number |
`address` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) |
`astHash` | string |
**Returns:** *void*
___
### undo
▸ **undo**(): *void*
*Defined in [src/UndoRedo.ts:569](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L569)*
**Returns:** *void*
___
### undoAddColumns
▸ **undoAddColumns**(`operation`: [AddColumnsUndoEntry](https://hyperformula.handsontable.com/docs/api/classes/addcolumnsundoentry.md)): *void*
*Defined in [src/UndoRedo.ts:626](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L626)*
**Parameters:**
Name | Type |
------ | ------ |
`operation` | [AddColumnsUndoEntry](https://hyperformula.handsontable.com/docs/api/classes/addcolumnsundoentry.md) |
**Returns:** *void*
___
### undoAddNamedExpression
▸ **undoAddNamedExpression**(`operation`: [AddNamedExpressionUndoEntry](https://hyperformula.handsontable.com/docs/api/classes/addnamedexpressionundoentry.md)): *void*
*Defined in [src/UndoRedo.ts:736](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L736)*
**Parameters:**
Name | Type |
------ | ------ |
`operation` | [AddNamedExpressionUndoEntry](https://hyperformula.handsontable.com/docs/api/classes/addnamedexpressionundoentry.md) |
**Returns:** *void*
___
### undoAddRows
▸ **undoAddRows**(`operation`: [AddRowsUndoEntry](https://hyperformula.handsontable.com/docs/api/classes/addrowsundoentry.md)): *void*
*Defined in [src/UndoRedo.ts:618](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L618)*
**Parameters:**
Name | Type |
------ | ------ |
`operation` | [AddRowsUndoEntry](https://hyperformula.handsontable.com/docs/api/classes/addrowsundoentry.md) |
**Returns:** *void*
___
### undoAddSheet
▸ **undoAddSheet**(`operation`: [AddSheetUndoEntry](https://hyperformula.handsontable.com/docs/api/classes/addsheetundoentry.md)): *void*
*Defined in [src/UndoRedo.ts:678](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L678)*
**Parameters:**
Name | Type |
------ | ------ |
`operation` | [AddSheetUndoEntry](https://hyperformula.handsontable.com/docs/api/classes/addsheetundoentry.md) |
**Returns:** *void*
___
### undoBatch
▸ **undoBatch**(`batchOperation`: [BatchUndoEntry](https://hyperformula.handsontable.com/docs/api/classes/batchundoentry.md)): *void*
*Defined in [src/UndoRedo.ts:580](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L580)*
**Parameters:**
Name | Type |
------ | ------ |
`batchOperation` | [BatchUndoEntry](https://hyperformula.handsontable.com/docs/api/classes/batchundoentry.md) |
**Returns:** *void*
___
### undoChangeNamedExpression
▸ **undoChangeNamedExpression**(`operation`: [ChangeNamedExpressionUndoEntry](https://hyperformula.handsontable.com/docs/api/classes/changenamedexpressionundoentry.md)): *void*
*Defined in [src/UndoRedo.ts:744](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L744)*
**Parameters:**
Name | Type |
------ | ------ |
`operation` | [ChangeNamedExpressionUndoEntry](https://hyperformula.handsontable.com/docs/api/classes/changenamedexpressionundoentry.md) |
**Returns:** *void*
___
### undoClearSheet
▸ **undoClearSheet**(`operation`: [ClearSheetUndoEntry](https://hyperformula.handsontable.com/docs/api/classes/clearsheetundoentry.md)): *void*
*Defined in [src/UndoRedo.ts:711](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L711)*
**Parameters:**
Name | Type |
------ | ------ |
`operation` | [ClearSheetUndoEntry](https://hyperformula.handsontable.com/docs/api/classes/clearsheetundoentry.md) |
**Returns:** *void*
___
### undoMoveCells
▸ **undoMoveCells**(`operation`: [MoveCellsUndoEntry](https://hyperformula.handsontable.com/docs/api/classes/movecellsundoentry.md)): *void*
*Defined in [src/UndoRedo.ts:666](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L666)*
**Parameters:**
Name | Type |
------ | ------ |
`operation` | [MoveCellsUndoEntry](https://hyperformula.handsontable.com/docs/api/classes/movecellsundoentry.md) |
**Returns:** *void*
___
### undoMoveColumns
▸ **undoMoveColumns**(`operation`: [MoveColumnsUndoEntry](https://hyperformula.handsontable.com/docs/api/classes/movecolumnsundoentry.md)): *void*
*Defined in [src/UndoRedo.ts:659](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L659)*
**Parameters:**
Name | Type |
------ | ------ |
`operation` | [MoveColumnsUndoEntry](https://hyperformula.handsontable.com/docs/api/classes/movecolumnsundoentry.md) |
**Returns:** *void*
___
### undoMoveRows
▸ **undoMoveRows**(`operation`: [MoveRowsUndoEntry](https://hyperformula.handsontable.com/docs/api/classes/moverowsundoentry.md)): *void*
*Defined in [src/UndoRedo.ts:652](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L652)*
**Parameters:**
Name | Type |
------ | ------ |
`operation` | [MoveRowsUndoEntry](https://hyperformula.handsontable.com/docs/api/classes/moverowsundoentry.md) |
**Returns:** *void*
___
### undoPaste
▸ **undoPaste**(`operation`: [PasteUndoEntry](https://hyperformula.handsontable.com/docs/api/classes/pasteundoentry.md)): *void*
*Defined in [src/UndoRedo.ts:645](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L645)*
**Parameters:**
Name | Type |
------ | ------ |
`operation` | [PasteUndoEntry](https://hyperformula.handsontable.com/docs/api/classes/pasteundoentry.md) |
**Returns:** *void*
___
### undoRemoveColumns
▸ **undoRemoveColumns**(`operation`: [RemoveColumnsUndoEntry](https://hyperformula.handsontable.com/docs/api/classes/removecolumnsundoentry.md)): *void*
*Defined in [src/UndoRedo.ts:602](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L602)*
**Parameters:**
Name | Type |
------ | ------ |
`operation` | [RemoveColumnsUndoEntry](https://hyperformula.handsontable.com/docs/api/classes/removecolumnsundoentry.md) |
**Returns:** *void*
___
### undoRemoveNamedExpression
▸ **undoRemoveNamedExpression**(`operation`: [RemoveNamedExpressionUndoEntry](https://hyperformula.handsontable.com/docs/api/classes/removenamedexpressionundoentry.md)): *void*
*Defined in [src/UndoRedo.ts:740](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L740)*
**Parameters:**
Name | Type |
------ | ------ |
`operation` | [RemoveNamedExpressionUndoEntry](https://hyperformula.handsontable.com/docs/api/classes/removenamedexpressionundoentry.md) |
**Returns:** *void*
___
### undoRemoveRows
▸ **undoRemoveRows**(`operation`: [RemoveRowsUndoEntry](https://hyperformula.handsontable.com/docs/api/classes/removerowsundoentry.md)): *void*
*Defined in [src/UndoRedo.ts:586](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L586)*
**Parameters:**
Name | Type |
------ | ------ |
`operation` | [RemoveRowsUndoEntry](https://hyperformula.handsontable.com/docs/api/classes/removerowsundoentry.md) |
**Returns:** *void*
___
### undoRemoveSheet
▸ **undoRemoveSheet**(`operation`: [RemoveSheetUndoEntry](https://hyperformula.handsontable.com/docs/api/classes/removesheetundoentry.md)): *void*
*Defined in [src/UndoRedo.ts:683](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L683)*
**Parameters:**
Name | Type |
------ | ------ |
`operation` | [RemoveSheetUndoEntry](https://hyperformula.handsontable.com/docs/api/classes/removesheetundoentry.md) |
**Returns:** *void*
___
### undoRenameSheet
▸ **undoRenameSheet**(`operation`: [RenameSheetUndoEntry](https://hyperformula.handsontable.com/docs/api/classes/renamesheetundoentry.md)): *void*
*Defined in [src/UndoRedo.ts:701](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L701)*
**Parameters:**
Name | Type |
------ | ------ |
`operation` | [RenameSheetUndoEntry](https://hyperformula.handsontable.com/docs/api/classes/renamesheetundoentry.md) |
**Returns:** *void*
___
### undoSetCellContents
▸ **undoSetCellContents**(`operation`: [SetCellContentsUndoEntry](https://hyperformula.handsontable.com/docs/api/classes/setcellcontentsundoentry.md)): *void*
*Defined in [src/UndoRedo.ts:634](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L634)*
**Parameters:**
Name | Type |
------ | ------ |
`operation` | [SetCellContentsUndoEntry](https://hyperformula.handsontable.com/docs/api/classes/setcellcontentsundoentry.md) |
**Returns:** *void*
___
### undoSetColumnOrder
▸ **undoSetColumnOrder**(`operation`: [SetColumnOrderUndoEntry](https://hyperformula.handsontable.com/docs/api/classes/setcolumnorderundoentry.md)): *void*
*Defined in [src/UndoRedo.ts:752](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L752)*
**Parameters:**
Name | Type |
------ | ------ |
`operation` | [SetColumnOrderUndoEntry](https://hyperformula.handsontable.com/docs/api/classes/setcolumnorderundoentry.md) |
**Returns:** *void*
___
### undoSetRowOrder
▸ **undoSetRowOrder**(`operation`: [SetRowOrderUndoEntry](https://hyperformula.handsontable.com/docs/api/classes/setroworderundoentry.md)): *void*
*Defined in [src/UndoRedo.ts:748](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L748)*
**Parameters:**
Name | Type |
------ | ------ |
`operation` | [SetRowOrderUndoEntry](https://hyperformula.handsontable.com/docs/api/classes/setroworderundoentry.md) |
**Returns:** *void*
___
### undoSetSheetContent
▸ **undoSetSheetContent**(`operation`: [SetSheetContentUndoEntry](https://hyperformula.handsontable.com/docs/api/classes/setsheetcontentundoentry.md)): *void*
*Defined in [src/UndoRedo.ts:723](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L723)*
**Parameters:**
Name | Type |
------ | ------ |
`operation` | [SetSheetContentUndoEntry](https://hyperformula.handsontable.com/docs/api/classes/setsheetcontentundoentry.md) |
**Returns:** *void*
---
## ChangedCell
URL: https://hyperformula.handsontable.com/docs/api/interfaces/changedcell
# ChangedCell
## Properties
### address
• **address**: *[SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)*
*Defined in [src/Operations.ts:133](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Operations.ts#L133)*
___
### cellType
• **cellType**: *[ClipboardCell](https://hyperformula.handsontable.com/docs/api/globals.md#clipboardcell)*
*Defined in [src/Operations.ts:134](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Operations.ts#L134)*
---
## CellRange
URL: https://hyperformula.handsontable.com/docs/api/interfaces/cellrange
# CellRange
## Properties
### end
• **end**: *CellAddress*
*Defined in [src/Cell.ts:237](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Cell.ts#L237)*
___
### start
• **start**: *CellAddress*
*Defined in [src/Cell.ts:236](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Cell.ts#L236)*
---
## CellArray
URL: https://hyperformula.handsontable.com/docs/api/interfaces/cellarray
# CellArray
## Properties
### size
• **size**: *[ArraySize](https://hyperformula.handsontable.com/docs/api/classes/arraysize.md)*
*Defined in [src/ArrayValue.ts:12](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ArrayValue.ts#L12)*
## Methods
### get
▸ **get**(`col`: number, `row`: number): *InternalScalarValue*
*Defined in [src/ArrayValue.ts:18](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ArrayValue.ts#L18)*
**Parameters:**
Name | Type |
------ | ------ |
`col` | number |
`row` | number |
**Returns:** *InternalScalarValue*
___
### height
▸ **height**(): *number*
*Defined in [src/ArrayValue.ts:16](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ArrayValue.ts#L16)*
**Returns:** *number*
___
### simpleRangeValue
▸ **simpleRangeValue**(): *[SimpleRangeValue](https://hyperformula.handsontable.com/docs/api/classes/simplerangevalue.md) | [CellError](https://hyperformula.handsontable.com/docs/api/classes/cellerror.md)*
*Defined in [src/ArrayValue.ts:20](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ArrayValue.ts#L20)*
**Returns:** *[SimpleRangeValue](https://hyperformula.handsontable.com/docs/api/classes/simplerangevalue.md) | [CellError](https://hyperformula.handsontable.com/docs/api/classes/cellerror.md)*
___
### width
▸ **width**(): *number*
*Defined in [src/ArrayValue.ts:14](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ArrayValue.ts#L14)*
**Returns:** *number*
---
## /
URL: https://hyperformula.handsontable.com/docs/
An open-source headless spreadsheet for business web apps
--- HyperFormula is a headless spreadsheet built in TypeScript, serving as both a parser and evaluator of spreadsheet formulas. It can be integrated into your browser or utilized as a service with Node.js as your back-end technology. ## What HyperFormula can be used for? HyperFormula doesn't assume any existing user interface, making it a general-purpose library that can be used in various business applications. Here are some examples: - Deterministic compute layer for AI & LLMs - Calculated fields in CRM and ERP software - Custom spreadsheet-like app - Business logic builder - Forms and form builder - Educational app - Online calculator ## Features - [Function syntax compatible with Microsoft Excel](https://hyperformula.handsontable.com/docs/guide/compatibility-with-microsoft-excel.md) and [Google Sheets](https://hyperformula.handsontable.com/docs/guide/compatibility-with-google-sheets.md) - High-speed parsing and evaluation of spreadsheet formulas - [A library of 423 built-in functions](https://hyperformula.handsontable.com/docs/guide/built-in-functions.md) - [Support for custom functions](https://hyperformula.handsontable.com/docs/guide/custom-functions.md) - [Support for Node.js](https://hyperformula.handsontable.com/docs/guide/server-side-installation.md#install-with-npm-or-yarn) - [Support for undo/redo](https://hyperformula.handsontable.com/docs/guide/undo-redo.md) - [Support for CRUD operations](https://hyperformula.handsontable.com/docs/guide/basic-operations.md) - [Support for clipboard](https://hyperformula.handsontable.com/docs/guide/clipboard-operations.md) - [Support for named expressions](https://hyperformula.handsontable.com/docs/guide/named-expressions.md) - [Support for data sorting](https://hyperformula.handsontable.com/docs/guide/sorting-data.md) - [Support for formula localization with 18 built-in languages](https://hyperformula.handsontable.com/docs/guide/i18n-features.md) - Easy integration with any front-end or back-end application - GPLv3 or a [commercial license](https://handsontable.com/get-a-quote) - Maintained by the team that stands behind the [Handsontable](https://handsontable.com/) data grid ## Documentation - [Client-side installation](https://hyperformula.handsontable.com/docs/guide/client-side-installation.md) - [Server-side installation](https://hyperformula.handsontable.com/docs/guide/server-side-installation.md) - [Basic usage](https://hyperformula.handsontable.com/docs/guide/basic-usage.md) - [Configuration options](https://hyperformula.handsontable.com/docs/guide/configuration-options.md) - [List of built-in functions](https://hyperformula.handsontable.com/docs/guide/built-in-functions.md) - [API Reference](https://hyperformula.handsontable.com/docs/api/) ## Integrations - [Integration with React](https://hyperformula.handsontable.com/docs/guide/integration-with-react.md#demo) - [Integration with Angular](https://hyperformula.handsontable.com/docs/guide/integration-with-angular.md#demo) - [Integration with Vue](https://hyperformula.handsontable.com/docs/guide/integration-with-vue.md#demo) - [Integration with Svelte](https://hyperformula.handsontable.com/docs/guide/integration-with-svelte.md#demo) ## Installation and usage Install the library from [npm](https://www.npmjs.com/package/hyperformula) like so: ```bash npm install hyperformula ``` Once installed, you can use it to develop applications tailored to your specific business needs. Here, we've used it to craft a form that calculates mortgage payments using the `PMT` formula. ```js import { HyperFormula } from 'hyperformula'; // Create a HyperFormula instance const hf = HyperFormula.buildEmpty({ licenseKey: 'gpl-v3' }); // Add an empty sheet const sheetName = hf.addSheet('Mortgage Calculator'); const sheetId = hf.getSheetId(sheetName); // Enter the mortgage parameters hf.addNamedExpression('AnnualInterestRate', '8%'); hf.addNamedExpression('NumberOfMonths', 360); hf.addNamedExpression('LoanAmount', 800000); // Use the PMT function to calculate the monthly payment hf.setCellContents({ sheet: sheetId, row: 0, col: 0 }, [['Monthly Payment', '=PMT(AnnualInterestRate/12, NumberOfMonths, -LoanAmount)']]); // Display the result console.log(`${hf.getCellValue({ sheet: sheetId, row: 0, col: 0 })}: ${hf.getCellValue({ sheet: sheetId, row: 0, col: 1 })}`); ``` [Run this code in StackBlitz](https://stackblitz.com/github/handsontable/hyperformula-demos/tree/3.4.x/mortgage-calculator) HyperFormula ships an official Claude skill and machine-readable docs, so your AI coding agent can scaffold, configure, and debug HyperFormula correctly. To install the skill in Claude Code, or to point Cursor, GitHub Copilot, or another agent at the docs, see [Set up your coding agent](https://hyperformula.handsontable.com/docs/guide/setup-coding-agent.md). ## Contributing Contributions are welcome, but before you make them, please read the [Contributing Guide](https://hyperformula.handsontable.com/docs/guide/contributing.md) and accept the [Contributor License Agreement](https://goo.gl/forms/yuutGuN0RjsikVpM2). ## License HyperFormula is available under two different licenses: GPLv3 and proprietary. The proprietary license can be purchased by [contacting our team](https://handsontable.com/get-a-quote) at Handsontable. Copyright (c) Handsoncode --- ## ClipboardCellEmpty URL: https://hyperformula.handsontable.com/docs/api/interfaces/clipboardcellempty # ClipboardCellEmpty ## Properties ### type • **type**: *[EMPTY](https://hyperformula.handsontable.com/docs/api/enums/clipboardcelltype.md#empty)* *Defined in [src/ClipboardOperations.ts:37](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ClipboardOperations.ts#L37)* --- ## ChangeExporter URL: https://hyperformula.handsontable.com/docs/api/interfaces/changeexporter # ChangeExporter ## Properties ### exportChange • **exportChange**: *function* *Defined in [src/ContentChanges.ts:17](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ContentChanges.ts#L17)* #### Type declaration: ▸ (`arg`: [CellValueChange](https://hyperformula.handsontable.com/docs/api/interfaces/cellvaluechange.md)): *T | T[]* **Parameters:** Name | Type | ------ | ------ | `arg` | [CellValueChange](https://hyperformula.handsontable.com/docs/api/interfaces/cellvaluechange.md) | --- ## ColumnSearchStrategy URL: https://hyperformula.handsontable.com/docs/api/interfaces/columnsearchstrategy # ColumnSearchStrategy ## Methods ### add ▸ **add**(`value`: RawInterpreterValue, `address`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)): *void* *Defined in [src/Lookup/SearchStrategy.ts:37](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Lookup/SearchStrategy.ts#L37)* **Parameters:** Name | Type | ------ | ------ | `value` | RawInterpreterValue | `address` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) | **Returns:** *void* ___ ### addColumns ▸ **addColumns**(`columnsSpan`: [ColumnsSpan](https://hyperformula.handsontable.com/docs/api/classes/columnsspan.md)): *void* *Defined in [src/Lookup/SearchStrategy.ts:45](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Lookup/SearchStrategy.ts#L45)* **Parameters:** Name | Type | ------ | ------ | `columnsSpan` | [ColumnsSpan](https://hyperformula.handsontable.com/docs/api/classes/columnsspan.md) | **Returns:** *void* ___ ### advancedFind ▸ **advancedFind**(`keyMatcher`: function, `range`: [SimpleRangeValue](https://hyperformula.handsontable.com/docs/api/classes/simplerangevalue.md), `options`: [AdvancedFindOptions](https://hyperformula.handsontable.com/docs/api/interfaces/advancedfindoptions.md)): *number* *Defined in [src/Lookup/SearchStrategy.ts:33](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Lookup/SearchStrategy.ts#L33)* **Parameters:** ▪ **keyMatcher**: *function* ▸ (`arg`: RawInterpreterValue): *boolean* **Parameters:** Name | Type | ------ | ------ | `arg` | RawInterpreterValue | ▪ **range**: *[SimpleRangeValue](https://hyperformula.handsontable.com/docs/api/classes/simplerangevalue.md)* ▪ **options**: *[AdvancedFindOptions](https://hyperformula.handsontable.com/docs/api/interfaces/advancedfindoptions.md)* **Returns:** *number* ___ ### applyChanges ▸ **applyChanges**(`contentChanges`: [CellValueChange](https://hyperformula.handsontable.com/docs/api/interfaces/cellvaluechange.md)[]): *void* *Defined in [src/Lookup/SearchStrategy.ts:43](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Lookup/SearchStrategy.ts#L43)* **Parameters:** Name | Type | ------ | ------ | `contentChanges` | [CellValueChange](https://hyperformula.handsontable.com/docs/api/interfaces/cellvaluechange.md)[] | **Returns:** *void* ___ ### change ▸ **change**(`oldValue`: RawInterpreterValue | undefined, `newValue`: RawInterpreterValue, `address`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)): *void* *Defined in [src/Lookup/SearchStrategy.ts:41](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Lookup/SearchStrategy.ts#L41)* **Parameters:** Name | Type | ------ | ------ | `oldValue` | RawInterpreterValue | undefined | `newValue` | RawInterpreterValue | `address` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) | **Returns:** *void* ___ ### find ▸ **find**(`searchKey`: RawNoErrorScalarValue, `range`: [SimpleRangeValue](https://hyperformula.handsontable.com/docs/api/classes/simplerangevalue.md), `options`: [SearchOptions](https://hyperformula.handsontable.com/docs/api/interfaces/searchoptions.md)): *number* *Defined in [src/Lookup/SearchStrategy.ts:31](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Lookup/SearchStrategy.ts#L31)* **Parameters:** Name | Type | ------ | ------ | `searchKey` | RawNoErrorScalarValue | `range` | [SimpleRangeValue](https://hyperformula.handsontable.com/docs/api/classes/simplerangevalue.md) | `options` | [SearchOptions](https://hyperformula.handsontable.com/docs/api/interfaces/searchoptions.md) | **Returns:** *number* ___ ### forceApplyPostponedTransformations ▸ **forceApplyPostponedTransformations**(): *void* *Defined in [src/Lookup/SearchStrategy.ts:60](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Lookup/SearchStrategy.ts#L60)* Forces all lazily-tracked ValueIndex entries to apply any pending transformations, bringing every entry's version up to the current LazilyTransformingAstService version. Must be called before compacting LazilyTransformingAstService. **Returns:** *void* ___ ### moveValues ▸ **moveValues**(`range`: IterableIterator‹[RawScalarValue, [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)]›, `toRight`: number, `toBottom`: number, `toSheet`: number): *void* *Defined in [src/Lookup/SearchStrategy.ts:51](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Lookup/SearchStrategy.ts#L51)* **Parameters:** Name | Type | ------ | ------ | `range` | IterableIterator‹[RawScalarValue, [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)]› | `toRight` | number | `toBottom` | number | `toSheet` | number | **Returns:** *void* ___ ### remove ▸ **remove**(`value`: RawInterpreterValue | undefined, `address`: [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)): *void* *Defined in [src/Lookup/SearchStrategy.ts:39](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Lookup/SearchStrategy.ts#L39)* **Parameters:** Name | Type | ------ | ------ | `value` | RawInterpreterValue | undefined | `address` | [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md) | **Returns:** *void* ___ ### removeColumns ▸ **removeColumns**(`columnsSpan`: [ColumnsSpan](https://hyperformula.handsontable.com/docs/api/classes/columnsspan.md)): *void* *Defined in [src/Lookup/SearchStrategy.ts:47](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Lookup/SearchStrategy.ts#L47)* **Parameters:** Name | Type | ------ | ------ | `columnsSpan` | [ColumnsSpan](https://hyperformula.handsontable.com/docs/api/classes/columnsspan.md) | **Returns:** *void* ___ ### removeSheet ▸ **removeSheet**(`sheetId`: number): *void* *Defined in [src/Lookup/SearchStrategy.ts:49](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Lookup/SearchStrategy.ts#L49)* **Parameters:** Name | Type | ------ | ------ | `sheetId` | number | **Returns:** *void* ___ ### removeValues ▸ **removeValues**(`range`: IterableIterator‹[RawScalarValue, [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)]›): *void* *Defined in [src/Lookup/SearchStrategy.ts:53](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Lookup/SearchStrategy.ts#L53)* **Parameters:** Name | Type | ------ | ------ | `range` | IterableIterator‹[RawScalarValue, [SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)]› | **Returns:** *void* --- ## ClipboardCellValue URL: https://hyperformula.handsontable.com/docs/api/interfaces/clipboardcellvalue # ClipboardCellValue ## Properties ### parsedValue • **parsedValue**: *ValueCellVertexValue* *Defined in [src/ClipboardOperations.ts:32](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ClipboardOperations.ts#L32)* ___ ### rawValue • **rawValue**: *[RawCellContent](https://hyperformula.handsontable.com/docs/api/globals.md#rawcellcontent)* *Defined in [src/ClipboardOperations.ts:33](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ClipboardOperations.ts#L33)* ___ ### type • **type**: *[VALUE](https://hyperformula.handsontable.com/docs/api/enums/clipboardcelltype.md#value)* *Defined in [src/ClipboardOperations.ts:31](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ClipboardOperations.ts#L31)* --- ## ColumnsRemoval URL: https://hyperformula.handsontable.com/docs/api/interfaces/columnsremoval # ColumnsRemoval ## Properties ### columnCount • **columnCount**: *number* *Defined in [src/Operations.ts:146](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Operations.ts#L146)* ___ ### columnFrom • **columnFrom**: *number* *Defined in [src/Operations.ts:145](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Operations.ts#L145)* ___ ### removedCells • **removedCells**: *[ChangedCell](https://hyperformula.handsontable.com/docs/api/interfaces/changedcell.md)[]* *Defined in [src/Operations.ts:148](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Operations.ts#L148)* ___ ### version • **version**: *number* *Defined in [src/Operations.ts:147](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Operations.ts#L147)* --- ## ClipboardCellFormula URL: https://hyperformula.handsontable.com/docs/api/interfaces/clipboardcellformula # ClipboardCellFormula ## Properties ### hash • **hash**: *string* *Defined in [src/ClipboardOperations.ts:42](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ClipboardOperations.ts#L42)* ___ ### type • **type**: *[FORMULA](https://hyperformula.handsontable.com/docs/api/enums/clipboardcelltype.md#formula)* *Defined in [src/ClipboardOperations.ts:41](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ClipboardOperations.ts#L41)* --- ## ConfigParams URL: https://hyperformula.handsontable.com/docs/api/interfaces/configparams # ConfigParams ## License ### licenseKey • **licenseKey**: *string* *Defined in [src/ConfigParams.ts:182](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ConfigParams.ts#L182)* Sets your HyperFormula license key. To use HyperFormula on the GPLv3 license terms, set this option to `gpl-v3`. To use HyperFormula with your proprietary license, set this option to your valid license key string. For more information, go [here](https://hyperformula.handsontable.com/docs/guide/license-key.md). **`default`** undefined ___ ## Engine ### chooseAddressMappingPolicy • **chooseAddressMappingPolicy**: *ChooseAddressMapping* *Defined in [src/ConfigParams.ts:55](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ConfigParams.ts#L55)* Sets the address mapping policy to be used. Built-in implementations: - `DenseSparseChooseBasedOnThreshold`: sets the address mapping policy separately for each sheet, based on fill ratio. - `AlwaysDense`: uses `DenseStrategy` for all sheets. - `AlwaysSparse`: uses `SparseStrategy` for all sheets. For more information, see the [Performance guide](https://hyperformula.handsontable.com/docs/guide/performance.md). **`default`** AlwaysDense ___ ### context • **context**: *unknown* *Defined in [src/ConfigParams.ts:63](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ConfigParams.ts#L63)* A generic parameter that can be used to pass data to custom functions. For more information, see the [Custom functions guide](https://hyperformula.handsontable.com/docs/guide/custom-functions.md). **`default`** undefined ___ ### evaluateNullToZero • **evaluateNullToZero**: *boolean* *Defined in [src/ConfigParams.ts:125](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ConfigParams.ts#L125)* When set to `true`, formulas evaluating to `null` evaluate to `0` instead. **`default`** false ___ ### maxColumns • **maxColumns**: *number* *Defined in [src/ConfigParams.ts:228](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ConfigParams.ts#L228)* Sets the maximum number of columns. **`default`** 18.278 (Columns A, B, ..., ZZZ) ___ ### maxPendingLazyTransformations • **maxPendingLazyTransformations**: *number* *Defined in [src/ConfigParams.ts:435](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ConfigParams.ts#L435)* Controls memory usage for long-running instances by limiting the number of pending lazy transformations before cleanup occurs. Structural operations (adding/removing rows/columns, moving cells) create transformations that are applied lazily to formulas. This setting determines how many can accumulate before they are flushed and memory is reclaimed. Lower values reduce peak memory usage but may slightly increase CPU overhead. Higher values reduce overhead but allow more memory accumulation. **`default`** 50 ___ ### maxRows • **maxRows**: *number* *Defined in [src/ConfigParams.ts:222](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ConfigParams.ts#L222)* Sets the maximum number of rows. **`default`** 40.000 ___ ### useArrayArithmetic • **useArrayArithmetic**: *boolean* *Defined in [src/ConfigParams.ts:392](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ConfigParams.ts#L392)* When set to `true`, array arithmetic is enabled globally. When set to `false`, array arithmetic is enabled only inside array functions (`ARRAYFORMULA`, `FILTER`, and `ARRAY_CONSTRAIN`). For more information, see the [Arrays guide](https://hyperformula.handsontable.com/docs/guide/arrays.md). **`default`** false ___ ### useColumnIndex • **useColumnIndex**: *boolean* *Defined in [src/ConfigParams.ts:404](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ConfigParams.ts#L404)* When set to `true`, switches column search strategy from binary search to column index. Using column index improves efficiency of the `VLOOKUP` and `MATCH` functions, but increases memory usage. When searching with wildcards or regular expressions, column search strategy falls back to binary search (even with `useColumnIndex` set to `true`). For more information, see the [Performance guide](https://hyperformula.handsontable.com/docs/guide/performance.md). **`default`** false ___ ### useStats • **useStats**: *boolean* *Defined in [src/ConfigParams.ts:412](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ConfigParams.ts#L412)* When set to `true`, enables gathering engine statistics and timings. Useful for testing and benchmarking. **`default`** false ___ ## Formula Syntax ### arrayColumnSeparator • **arrayColumnSeparator**: *"," | ";"* *Defined in [src/ConfigParams.ts:208](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ConfigParams.ts#L208)* Sets a column separator symbol for array notation. For more information, see the [Arrays guide](https://hyperformula.handsontable.com/docs/guide/arrays.md). **`default`** ',' ___ ### arrayRowSeparator • **arrayRowSeparator**: *";" | "|"* *Defined in [src/ConfigParams.ts:216](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ConfigParams.ts#L216)* Sets a row separator symbol for array notation. For more information, see the [Arrays guide](https://hyperformula.handsontable.com/docs/guide/arrays.md). **`default`** ';' ___ ### functionArgSeparator • **functionArgSeparator**: *string* *Defined in [src/ConfigParams.ts:105](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ConfigParams.ts#L105)* Sets a separator character that separates procedure arguments in formulas. Must be different from [decimalSeparator](https://hyperformula.handsontable.com/docs/api/interfaces/configparams.md#decimalseparator) and [thousandSeparator](https://hyperformula.handsontable.com/docs/api/interfaces/configparams.md#thousandseparator). For more information, see the [Internationalization features guide](https://hyperformula.handsontable.com/docs/guide/i18n-features.md). **`default`** ',' ___ ### functionPlugins • **functionPlugins**: *any[]* *Defined in [src/ConfigParams.ts:134](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ConfigParams.ts#L134)* Lists additional function plugins to be used by the formula interpreter. For more information, see the [Custom functions guide](https://hyperformula.handsontable.com/docs/guide/custom-functions.md). **`default`** [] ___ ### ignoreWhiteSpace • **ignoreWhiteSpace**: *"standard" | "any"* *Defined in [src/ConfigParams.ts:160](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ConfigParams.ts#L160)* Controls the set of whitespace characters that are allowed inside a formula. When set to `'standard'`, allows only SPACE (U+0020), CHARACTER TABULATION (U+0009), LINE FEED (U+000A), and CARRIAGE RETURN (U+000D) (compliant with OpenFormula Standard 1.3) When set to `'any'`, allows all whitespace characters that would be captured by the `\s` character class of the JavaScript regular expressions. **`default`** 'standard' ___ ### language • **language**: *string* *Defined in [src/ConfigParams.ts:150](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ConfigParams.ts#L150)* Sets a translation package for function and error names. For more information, see the [Localizing functions guide](https://hyperformula.handsontable.com/docs/guide/localizing-functions.md). **`default`** 'enGB' ___ ## Undo and Redo ### undoLimit • **undoLimit**: *number* *Defined in [src/ConfigParams.ts:420](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ConfigParams.ts#L420)* Sets the number of elements kept in the undo history. For more information, see the [Undo-Redo guide](https://hyperformula.handsontable.com/docs/guide/undo-redo.md). **`default`** 20 ___ ## Date and Time ### dateFormats • **dateFormats**: *string[]* *Defined in [src/ConfigParams.ts:95](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ConfigParams.ts#L95)* Sets the date formats accepted by the date-parsing function. A format must be specified as a string consisting of tokens and separators. Supported tokens: - `DD` (day of month) - `MM` (month as a number) - `YYYY` (year as a 4-digit number) - `YY` (year as a 2-digit number) Supported separators: - `/` (slash) - `-` (dash) - `.` (dot) - ` ` (empty space) Regardless of the separator specified in the format string, all of the above are accepted by the date-parsing function. For more information, see the [Date and time handling guide](https://hyperformula.handsontable.com/docs/guide/date-and-time-handling.md). **`default`** ['DD/MM/YYYY', 'DD/MM/YY'] ___ ### leapYear1900 • **leapYear1900**: *boolean* *Defined in [src/ConfigParams.ts:170](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ConfigParams.ts#L170)* Sets year 1900 as a leap year. For compatibility with Lotus 1-2-3 and Microsoft Excel, set this option to `true`. For more information, see the [Date and time handling guide](https://hyperformula.handsontable.com/docs/guide/date-and-time-handling.md) and [nullDate](https://hyperformula.handsontable.com/docs/api/interfaces/configparams.md#nulldate). **`default`** false ___ ### nullDate • **nullDate**: *[SimpleDate](https://hyperformula.handsontable.com/docs/api/interfaces/simpledate.md)* *Defined in [src/ConfigParams.ts:238](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ConfigParams.ts#L238)* Internally, each date is represented as a number of days that passed since `nullDate`. This option sets a specific date from which that number of days is counted. For more information, see the [Date and time handling guide](https://hyperformula.handsontable.com/docs/guide/date-and-time-handling.md). **`default`** {year: 1899, month: 12, day: 30} ___ ### nullYear • **nullYear**: *number* *Defined in [src/ConfigParams.ts:252](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ConfigParams.ts#L252)* Sets the interpretation of two-digit year values. Two-digit year values (`xx`) can either become `19xx` or `20xx`. If `xx` is less or equal to `nullYear`, two-digit year values become `20xx`. If `xx` is more than `nullYear`, two-digit year values become `19xx`. For more information, see the [Date and time handling guide](https://hyperformula.handsontable.com/docs/guide/date-and-time-handling.md). **`default`** 30 ___ ### parseDateTime • **parseDateTime**: *function* *Defined in [src/ConfigParams.ts:262](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ConfigParams.ts#L262)* Sets a function that parses strings representing date-time into actual date-time values. The function should return a [DateTime](https://hyperformula.handsontable.com/docs/api/globals.md#datetime) object or undefined. For more information, see the [Date and time handling guide](https://hyperformula.handsontable.com/docs/guide/date-and-time-handling.md). **`default`** defaultParseToDateTime #### Type declaration: ▸ (`dateTimeString`: string, `dateFormat?`: undefined | string, `timeFormat?`: undefined | string): *[Maybe](https://hyperformula.handsontable.com/docs/api/globals.md#maybe)‹[DateTime](https://hyperformula.handsontable.com/docs/api/globals.md#datetime)›* **Parameters:** Name | Type | ------ | ------ | `dateTimeString` | string | `dateFormat?` | undefined | string | `timeFormat?` | undefined | string | ___ ### stringifyDateTime • **stringifyDateTime**: *function* *Defined in [src/ConfigParams.ts:302](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ConfigParams.ts#L302)* Sets a function that converts date-time values into strings. The function should return a string or undefined. For more information, see the [Date and time handling guide](https://hyperformula.handsontable.com/docs/guide/date-and-time-handling.md). **`default`** defaultStringifyDateTime #### Type declaration: ▸ (`dateTime`: [SimpleDateTime](https://hyperformula.handsontable.com/docs/api/globals.md#simpledatetime), `dateTimeFormat`: string): *[Maybe](https://hyperformula.handsontable.com/docs/api/globals.md#maybe)‹string›* **Parameters:** Name | Type | ------ | ------ | `dateTime` | [SimpleDateTime](https://hyperformula.handsontable.com/docs/api/globals.md#simpledatetime) | `dateTimeFormat` | string | ___ ### stringifyDuration • **stringifyDuration**: *function* *Defined in [src/ConfigParams.ts:312](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ConfigParams.ts#L312)* Sets a function that converts time duration values into strings. The function should return a string or undefined. For more information, see the [Date and time handling guide](https://hyperformula.handsontable.com/docs/guide/date-and-time-handling.md). **`default`** defaultStringifyDuration #### Type declaration: ▸ (`time`: [SimpleTime](https://hyperformula.handsontable.com/docs/api/interfaces/simpletime.md), `timeFormat`: string): *[Maybe](https://hyperformula.handsontable.com/docs/api/globals.md#maybe)‹string›* **Parameters:** Name | Type | ------ | ------ | `time` | [SimpleTime](https://hyperformula.handsontable.com/docs/api/interfaces/simpletime.md) | `timeFormat` | string | ___ ### timeFormats • **timeFormats**: *string[]* *Defined in [src/ConfigParams.ts:382](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ConfigParams.ts#L382)* Sets the time formats accepted by the time-parsing function. A format must be specified as a string consisting of at least two tokens separated by `:` (a colon). Supported tokens: - `hh` (hours) - `mm` (minutes) - `ss`, `ss.s`, `ss.ss`, `ss.sss`, `ss.ssss`, etc. (seconds) The number of decimal places in the seconds token does not matter. All versions of the seconds token are equivalent in the context of parsing time values. Regardless of the time format specified, the hours-minutes-seconds value may be followed by the AM/PM designator. For more information, see the [Date and time handling guide](https://hyperformula.handsontable.com/docs/guide/date-and-time-handling.md). **`example`** E.g., for `timeFormats = ['hh:mm:ss.sss']`, valid time strings include: - `1:33:33` - `1:33:33.3` - `1:33:33.33` - `1:33:33.333` - `01:33:33` - `1:33:33 AM` - `1:33:33 PM` - `1:33:33 am` - `1:33:33 pm` - `1:33:33AM` - `1:33:33PM` **`default`** ['hh:mm', 'hh:mm:ss.sss'] ___ ## Number ### currencySymbol • **currencySymbol**: *string[]* *Defined in [src/ConfigParams.ts:71](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ConfigParams.ts#L71)* Sets symbols that denote currency numbers. For more information, see the [Internationalization features guide](https://hyperformula.handsontable.com/docs/guide/i18n-features.md). **`default`** ['$'] ___ ### decimalSeparator • **decimalSeparator**: *"." | ","* *Defined in [src/ConfigParams.ts:119](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ConfigParams.ts#L119)* Sets a decimal separator used for parsing numerical literals. Can be one of the following: - `.` (period) - `,` (comma) Must be different from [thousandSeparator](https://hyperformula.handsontable.com/docs/api/interfaces/configparams.md#thousandseparator) and [functionArgSeparator](https://hyperformula.handsontable.com/docs/api/interfaces/configparams.md#functionargseparator). For more information, see the [Internationalization features guide](https://hyperformula.handsontable.com/docs/guide/i18n-features.md). **`default`** '.' ___ ### precisionEpsilon • **precisionEpsilon**: *number* *Defined in [src/ConfigParams.ts:277](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ConfigParams.ts#L277)* Sets how far two numerical values need to be from each other to be treated as non-equal. `a` and `b` are equal if all three of the following conditions are met: - Both `a` and `b` are of the same sign - `abs(a)` <= `(1+precisionEpsilon) * abs(b)` - `abs(b)` <= `(1+precisionEpsilon) * abs(a)` Additionally, this option controls the snap-to-zero behavior for additions and subtractions: - For `c=a+b`, if `abs(c)` <= `precisionEpsilon * abs(a)`, then `c` is set to `0` - For `c=a-b`, if `abs(c)` <= `precisionEpsilon * abs(a)`, then `c` is set to `0` **`default`** 1e-13 ___ ### precisionRounding • **precisionRounding**: *number* *Defined in [src/ConfigParams.ts:292](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ConfigParams.ts#L292)* Sets the precision level of calculations' output. Internally, all arithmetic operations are performed using JavaScript's built-in numbers. But when HyperFormula exports a cell's value, it rounds the output to the `precisionRounding` number of significant digits. Setting `precisionRounding` too low can cause large numbers' imprecision (for example, with `precisionRounding` set to `4`, 100005 becomes 100010). Setting precisionRounding too high will expose the floating-point calculation errors. For example, with `precisionRounding` set to `15`, `0.1 + 0.2` results in `0.3000000000000001`. **`default`** 10 ___ ### smartRounding • **smartRounding**: *boolean* *Defined in [src/ConfigParams.ts:336](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ConfigParams.ts#L336)* When set to `false`, no rounding happens, and numbers are equal if and only if they are of truly identical value. For more information, see [precisionEpsilon](https://hyperformula.handsontable.com/docs/api/interfaces/configparams.md#precisionepsilon). **`default`** true ___ ### stringifyCurrency • **stringifyCurrency**: *function* *Defined in [src/ConfigParams.ts:328](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ConfigParams.ts#L328)* Sets a function that converts numeric values into currency-formatted strings. The function receives the raw value and the format string passed to `TEXT` and should return a string or `undefined`. The formatter calls this for every format string that reaches it, not only currency-shaped ones — return `undefined` for any format your callback does not handle and HyperFormula will fall through to the built-in number formatter. For more information, see the [Currency handling guide](https://hyperformula.handsontable.com/docs/guide/currency-handling.md). **`default`** defaultStringifyCurrency #### Type declaration: ▸ (`value`: number, `currencyFormat`: string): *[Maybe](https://hyperformula.handsontable.com/docs/api/globals.md#maybe)‹string›* **Parameters:** Name | Type | ------ | ------ | `value` | number | `currencyFormat` | string | ___ ### thousandSeparator • **thousandSeparator**: *"" | "," | " " | "."* *Defined in [src/ConfigParams.ts:351](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ConfigParams.ts#L351)* Sets the thousands' separator symbol for parsing numerical literals. Can be one of the following: - empty - `,` (comma) - ` ` (empty space) Must be different from [decimalSeparator](https://hyperformula.handsontable.com/docs/api/interfaces/configparams.md#decimalseparator) and [functionArgSeparator](https://hyperformula.handsontable.com/docs/api/interfaces/configparams.md#functionargseparator). For more information, see the [Internationalization features guide](https://hyperformula.handsontable.com/docs/guide/i18n-features.md). **`default`** '' ___ ## String ### accentSensitive • **accentSensitive**: *boolean* *Defined in [src/ConfigParams.ts:20](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ConfigParams.ts#L20)* When set to `true`, makes string comparison accent-sensitive. Applies only to comparison operators. For more information, see the [Types of operators guide](https://hyperformula.handsontable.com/docs/guide/types-of-operators.md#comparing-strings). **`default`** false ___ ### caseFirst • **caseFirst**: *"upper" | "lower" | "false"* *Defined in [src/ConfigParams.ts:42](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ConfigParams.ts#L42)* When set to `upper`, upper case sorts first. When set to `lower`, lower case sorts first. When set to `false`, uses the locale's default. For more information, see the [Types of operators guide](https://hyperformula.handsontable.com/docs/guide/types-of-operators.md#comparing-strings). **`default`** 'lower' ___ ### caseSensitive • **caseSensitive**: *boolean* *Defined in [src/ConfigParams.ts:30](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ConfigParams.ts#L30)* When set to `true`, makes string comparison case-sensitive. Applies to comparison operators only. For more information, see the [Types of operators guide](https://hyperformula.handsontable.com/docs/guide/types-of-operators.md#comparing-strings). **`default`** false ___ ### ignorePunctuation • **ignorePunctuation**: *boolean* *Defined in [src/ConfigParams.ts:142](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ConfigParams.ts#L142)* When set to `true`, string comparison ignores punctuation. For more information, see the [Types of operators guide](https://hyperformula.handsontable.com/docs/guide/types-of-operators.md#comparing-strings). **`default`** false ___ ### localeLang • **localeLang**: *string* *Defined in [src/ConfigParams.ts:192](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ConfigParams.ts#L192)* Sets the locale for language-sensitive string comparison. Accepts **IETF BCP 47** language tags. For more information, see the [Internationalization features guide](https://hyperformula.handsontable.com/docs/guide/i18n-features.md). **`default`** 'en' ___ ### matchWholeCell • **matchWholeCell**: *boolean* *Defined in [src/ConfigParams.ts:200](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ConfigParams.ts#L200)* When set to `true`, function criteria require whole cells to match the pattern. When set to `false`, function criteria require just a sub-word to match the pattern. **`default`** true ___ ### useRegularExpressions • **useRegularExpressions**: *boolean* *Defined in [src/ConfigParams.ts:441](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ConfigParams.ts#L441)* When set to `true`, criteria in functions (SUMIF, COUNTIF, ...) are allowed to use regular expressions. **`default`** false ___ ### useWildcards • **useWildcards**: *boolean* *Defined in [src/ConfigParams.ts:447](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ConfigParams.ts#L447)* When set to `true`, criteria in functions (SUMIF, COUNTIF, ...) can use the `*` and `?` wildcards. **`default`** true --- ## FormatExpression URL: https://hyperformula.handsontable.com/docs/api/interfaces/formatexpression # FormatExpression ## Properties ### tokens • **tokens**: *[FormatToken](https://hyperformula.handsontable.com/docs/api/interfaces/formattoken.md)[]* *Defined in [src/format/parser.ts:37](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/format/parser.ts#L37)* ___ ### type • **type**: *[FormatExpressionType](https://hyperformula.handsontable.com/docs/api/enums/formatexpressiontype.md)* *Defined in [src/format/parser.ts:36](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/format/parser.ts#L36)* --- ## ClipboardCellParsingError URL: https://hyperformula.handsontable.com/docs/api/interfaces/clipboardcellparsingerror # ClipboardCellParsingError ## Properties ### errors • **errors**: *ParsingError[]* *Defined in [src/ClipboardOperations.ts:48](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ClipboardOperations.ts#L48)* ___ ### rawInput • **rawInput**: *string* *Defined in [src/ClipboardOperations.ts:47](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ClipboardOperations.ts#L47)* ___ ### type • **type**: *[PARSING_ERROR](https://hyperformula.handsontable.com/docs/api/enums/clipboardcelltype.md#parsing_error)* *Defined in [src/ClipboardOperations.ts:46](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/ClipboardOperations.ts#L46)* --- ## GraphBuilderStrategy URL: https://hyperformula.handsontable.com/docs/api/interfaces/graphbuilderstrategy # GraphBuilderStrategy ## Methods ### run ▸ **run**(`sheets`: [Sheets](https://hyperformula.handsontable.com/docs/api/globals.md#sheets)): *[Dependencies](https://hyperformula.handsontable.com/docs/api/globals.md#dependencies)* *Defined in [src/GraphBuilder.ts:64](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/GraphBuilder.ts#L64)* **Parameters:** Name | Type | ------ | ------ | `sheets` | [Sheets](https://hyperformula.handsontable.com/docs/api/globals.md#sheets) | **Returns:** *[Dependencies](https://hyperformula.handsontable.com/docs/api/globals.md#dependencies)* --- ## FormatToken URL: https://hyperformula.handsontable.com/docs/api/interfaces/formattoken # FormatToken ## Properties ### type • **type**: *[TokenType](https://hyperformula.handsontable.com/docs/api/enums/tokentype.md)* *Defined in [src/format/parser.ts:18](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/format/parser.ts#L18)* ___ ### value • **value**: *string* *Defined in [src/format/parser.ts:19](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/format/parser.ts#L19)* --- ## Listeners URL: https://hyperformula.handsontable.com/docs/api/interfaces/listeners # Listeners ## Batch ### evaluationResumed • **evaluationResumed**: *function* *Defined in [src/Emitter.ts:316](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Emitter.ts#L316)* Occurs when evaluation is resumed. **`param`** the values and location of applied changes **`example`** ```js const hfInstance = HyperFormula.buildFromSheets({ MySheet1: [ ['1'] ], MySheet2: [ ['10'] ] }); // define a function to be called when the event occurs const handler = (changes) => { console.log('baz') } // subscribe to the 'evaluationResumed' event, pass the handler hfInstance.on('evaluationResumed', handler); // first, suspend evaluation hfInstance.suspendEvaluation(); // now, resume evaluation // the console prints 'baz' each time evaluation is resumed hfInstance.resumeEvaluation(); // unsubscribe from the 'evaluationResumed' event hfInstance.off('evaluationResumed', handler); // suspend evaluation again hfInstance.suspendEvaluation(); // resume evaluation again // this time, the console doesn't print anything hfInstance.resumeEvaluation();; ``` #### Type declaration: ▸ (`changes`: [ExportedChange](https://hyperformula.handsontable.com/docs/api/globals.md#exportedchange)[]): *any* **Parameters:** Name | Type | ------ | ------ | `changes` | [ExportedChange](https://hyperformula.handsontable.com/docs/api/globals.md#exportedchange)[] | ___ ### evaluationSuspended • **evaluationSuspended**: *function* *Defined in [src/Emitter.ts:274](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Emitter.ts#L274)* Occurs when evaluation is suspended. **`example`** ```js const hfInstance = HyperFormula.buildFromSheets({ MySheet1: [ ['1'] ], MySheet2: [ ['10'] ] }); // define a function to be called when the event occurs const handler = ( ) => { console.log('baz') } // subscribe to the 'evaluationSuspended' event, pass the handler hfInstance.on('evaluationSuspended', handler); // suspend evaluation // the console prints 'baz' each time evaluation is suspended hfInstance.suspendEvaluation(); // resume evaluation hfInstance.resumeEvaluation(); // unsubscribe from the 'evaluationSuspended' event hfInstance.off('evaluationSuspended', handler); // suspend evaluation again // this time, the console doesn't print anything hfInstance.suspendEvaluation();; ``` #### Type declaration: ▸ (): *any* ___ ## Named Expression ### namedExpressionAdded • **namedExpressionAdded**: *function* *Defined in [src/Emitter.ts:162](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Emitter.ts#L162)* Occurs when a named expression with specified values and location is added. **`param`** the name of added expression **`param`** the values and location of applied changes **`example`** ```js const hfInstance = HyperFormula.buildFromArray([ ['42'], ]); // define a function to be called when the event occurs const handler = (namedExpressionName, changes) => { console.log('baz') } // subscribe to the 'namedExpressionAdded' event, pass the handler hfInstance.on('namedExpressionAdded', handler); // add a named expression // the console prints 'baz' each time a named expression is added const changes = hfInstance.addNamedExpression('prettyName', '=Sheet1!$A$1+100', 0); // unsubscribe from the 'namedExpressionAdded' event hfInstance.off('namedExpressionAdded', handler); // add another named expression // this time, the console doesn't print anything const changes = hfInstance.addNamedExpression('uglyName', '=Sheet1!$A$1+100', 0); ``` #### Type declaration: ▸ (`namedExpressionName`: string, `changes`: [ExportedChange](https://hyperformula.handsontable.com/docs/api/globals.md#exportedchange)[]): *any* **Parameters:** Name | Type | ------ | ------ | `namedExpressionName` | string | `changes` | [ExportedChange](https://hyperformula.handsontable.com/docs/api/globals.md#exportedchange)[] | ___ ### namedExpressionRemoved • **namedExpressionRemoved**: *function* *Defined in [src/Emitter.ts:202](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Emitter.ts#L202)* Occurs when a named expression with specified values is removed and from an indicated location. **`param`** the name of removed expression **`param`** the values and location of applied changes **`example`** ```js const hfInstance = HyperFormula.buildFromArray([ ['42'], ]); // define a function to be called when the event occurs const handler = (namedExpressionName, changes) => { console.log('baz') } // subscribe to the 'namedExpressionRemoved' event, pass the handler hfInstance.on('namedExpressionRemoved', handler); // add some named expressions hfInstance.addNamedExpression('prettyName', '=Sheet1!$A$1+100', 0); hfInstance.addNamedExpression('uglyName', '=Sheet1!$A$1+100', 0); // remove a named expression // the console prints 'baz' each time a named expression is removed const changes = hfInstance.removeNamedExpression('prettyName', 0); // unsubscribe from the 'namedExpressionRemoved' event hfInstance.off('namedExpressionRemoved', handler); // remove another named expression // this time, the console doesn't print anything const changes = hfInstance.removeNamedExpression('uglyName', 0); ``` #### Type declaration: ▸ (`namedExpressionName`: string, `changes`: [ExportedChange](https://hyperformula.handsontable.com/docs/api/globals.md#exportedchange)[]): *any* **Parameters:** Name | Type | ------ | ------ | `namedExpressionName` | string | `changes` | [ExportedChange](https://hyperformula.handsontable.com/docs/api/globals.md#exportedchange)[] | ___ ## Sheet ### sheetAdded • **sheetAdded**: *function* *Defined in [src/Emitter.ts:52](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Emitter.ts#L52)* Occurs when a sheet is added anywhere inside the workbook. **`param`** the name of added sheet **`example`** ```js const hfInstance = HyperFormula.buildEmpty(); // define a function to be called when the event occurs const handler = (addedSheetDisplayName) => { console.log('baz') } // subscribe to the 'sheetAdded' event, pass the handler hfInstance.on('sheetAdded', handler); // add a sheet to trigger the 'sheetAdded' event, // the console prints 'baz' each time a sheet is added hfInstance.addSheet('FooBar'); // unsubscribe from the 'sheetAdded' event hfInstance.off('sheetAdded', handler); // add a sheet // this time, the console doesn't print anything hfInstance.addSheet('FooBaz'); ``` #### Type declaration: ▸ (`addedSheetDisplayName`: string): *any* **Parameters:** Name | Type | ------ | ------ | `addedSheetDisplayName` | string | ___ ### sheetRemoved • **sheetRemoved**: *function* *Defined in [src/Emitter.ts:89](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Emitter.ts#L89)* Occurs when a sheet is removed from anywhere inside the workbook. **`param`** the name of removed sheet **`param`** the values and location of applied changes **`example`** ```js const hfInstance = HyperFormula.buildFromSheets({ MySheet1: [ ['=SUM(MySheet2!A1:A2)'] ], MySheet2: [ ['10'] ], }); // define a function to be called when the event occurs const handler = (removedSheetDisplayName, changes) => { console.log('baz') } // subscribe to the 'sheetRemoved' event, pass the handler hfInstance.on('sheetRemoved', handler); // remove a sheet to trigger the 'sheetRemoved' event, // the console prints 'baz' each time a sheet is removed hfInstance.removeSheet(0); // unsubscribe from the 'sheetRemoved' event hfInstance.off('sheetRemoved', handler); // remove a sheet // this time, the console doesn't print anything hfInstance.removeSheet(1); ``` #### Type declaration: ▸ (`removedSheetDisplayName`: string, `changes`: [ExportedChange](https://hyperformula.handsontable.com/docs/api/globals.md#exportedchange)[]): *any* **Parameters:** Name | Type | ------ | ------ | `removedSheetDisplayName` | string | `changes` | [ExportedChange](https://hyperformula.handsontable.com/docs/api/globals.md#exportedchange)[] | ___ ### sheetRenamed • **sheetRenamed**: *function* *Defined in [src/Emitter.ts:126](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Emitter.ts#L126)* Occurs when a sheet is renamed anywhere inside the workbook. **`param`** the old name of a sheet before renaming **`param`** the new name of the sheet after renaming **`example`** ```js const hfInstance = HyperFormula.buildFromSheets({ MySheet1: [ ['=SUM(MySheet2!A1:A2)'] ], MySheet2: [ ['10'] ], }); // define a function to be called when the event occurs const handler = (oldName, newName) => { console.log(`Sheet ${oldName} was renamed to ${newName}`) } // subscribe to the 'sheetRenamed' event, pass the handler hfInstance.on('sheetRenamed', handler); // rename a sheet to trigger the 'sheetRenamed' event, // the console prints `Sheet ${oldName} was renamed to ${newName}` each time a sheet is renamed hfInstance.renameSheet(0, 'MySheet0'); // unsubscribe from the 'sheetRenamed' event hfInstance.off('sheetRenamed', handler); // rename a sheet // this time, the console doesn't print anything hfInstance.renameSheet(1, 'MySheet1'); ``` #### Type declaration: ▸ (`oldDisplayName`: string, `newDisplayName`: string): *any* **Parameters:** Name | Type | ------ | ------ | `oldDisplayName` | string | `newDisplayName` | string | ___ ## Values ### valuesUpdated • **valuesUpdated**: *function* *Defined in [src/Emitter.ts:237](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Emitter.ts#L237)* Occurs when values in a specified location are changed and cause recalculation. **`param`** the values and location of applied changes **`example`** ```js const hfInstance = HyperFormula.buildFromArray([ ['1', '2', '=A1'], ]); // define a function to be called when the event occurs const handler = (changes) => { console.log('baz') } // subscribe to the 'valuesUpdated' event, pass the handler hfInstance.on('valuesUpdated', handler); // trigger recalculation, for example, with the 'setCellContents' method // the console prints 'baz' each time a value change triggers recalculation const changes = hfInstance.setCellContents({ col: 3, row: 0, sheet: 0 }, [['=B1']]); // unsubscribe from the 'valuesUpdated' event hfInstance.off('valuesUpdated', handler); // trigger another recalculation // this time, the console doesn't print anything const changes = hfInstance.setCellContents({ col: 3, row: 0, sheet: 0 }, [['=A1']]); ``` #### Type declaration: ▸ (`changes`: [ExportedChange](https://hyperformula.handsontable.com/docs/api/globals.md#exportedchange)[]): *any* **Parameters:** Name | Type | ------ | ------ | `changes` | [ExportedChange](https://hyperformula.handsontable.com/docs/api/globals.md#exportedchange)[] | --- ## MoveCellsResult URL: https://hyperformula.handsontable.com/docs/api/interfaces/movecellsresult # MoveCellsResult ## Properties ### addedGlobalNamedExpressions • **addedGlobalNamedExpressions**: *string[]* *Defined in [src/Operations.ts:154](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Operations.ts#L154)* ___ ### overwrittenCellsData • **overwrittenCellsData**: *[[SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md), [ClipboardCell](https://hyperformula.handsontable.com/docs/api/globals.md#clipboardcell)][]* *Defined in [src/Operations.ts:153](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Operations.ts#L153)* ___ ### version • **version**: *number* *Defined in [src/Operations.ts:152](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Operations.ts#L152)* --- ## NamedExpression URL: https://hyperformula.handsontable.com/docs/api/interfaces/namedexpression # NamedExpression ## Properties ### expression • **expression**? : *undefined | string* *Defined in [src/NamedExpressions.ts:18](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/NamedExpressions.ts#L18)* ___ ### name • **name**: *string* *Defined in [src/NamedExpressions.ts:16](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/NamedExpressions.ts#L16)* ___ ### options • **options**? : *[NamedExpressionOptions](https://hyperformula.handsontable.com/docs/api/globals.md#namedexpressionoptions)* *Defined in [src/NamedExpressions.ts:19](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/NamedExpressions.ts#L19)* ___ ### scope • **scope**? : *undefined | number* *Defined in [src/NamedExpressions.ts:17](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/NamedExpressions.ts#L17)* --- ## SearchOptions URL: https://hyperformula.handsontable.com/docs/api/interfaces/searchoptions # SearchOptions ## Properties ### ifNoMatch • **ifNoMatch**: *"returnLowerBound" | "returnUpperBound" | "returnNotFound"* *Defined in [src/Lookup/SearchStrategy.ts:19](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Lookup/SearchStrategy.ts#L19)* ___ ### ordering • **ordering**: *"asc" | "desc" | "none"* *Defined in [src/Lookup/SearchStrategy.ts:18](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Lookup/SearchStrategy.ts#L18)* ___ ### returnOccurrence • **returnOccurrence**? : *"first" | "last"* *Defined in [src/Lookup/SearchStrategy.ts:20](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Lookup/SearchStrategy.ts#L20)* --- ## SearchStrategy URL: https://hyperformula.handsontable.com/docs/api/interfaces/searchstrategy # SearchStrategy ## Methods ### advancedFind ▸ **advancedFind**(`keyMatcher`: function, `range`: [SimpleRangeValue](https://hyperformula.handsontable.com/docs/api/classes/simplerangevalue.md), `options`: [AdvancedFindOptions](https://hyperformula.handsontable.com/docs/api/interfaces/advancedfindoptions.md)): *number* *Defined in [src/Lookup/SearchStrategy.ts:33](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Lookup/SearchStrategy.ts#L33)* **Parameters:** ▪ **keyMatcher**: *function* ▸ (`arg`: RawInterpreterValue): *boolean* **Parameters:** Name | Type | ------ | ------ | `arg` | RawInterpreterValue | ▪ **range**: *[SimpleRangeValue](https://hyperformula.handsontable.com/docs/api/classes/simplerangevalue.md)* ▪ **options**: *[AdvancedFindOptions](https://hyperformula.handsontable.com/docs/api/interfaces/advancedfindoptions.md)* **Returns:** *number* ___ ### find ▸ **find**(`searchKey`: RawNoErrorScalarValue, `range`: [SimpleRangeValue](https://hyperformula.handsontable.com/docs/api/classes/simplerangevalue.md), `options`: [SearchOptions](https://hyperformula.handsontable.com/docs/api/interfaces/searchoptions.md)): *number* *Defined in [src/Lookup/SearchStrategy.ts:31](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Lookup/SearchStrategy.ts#L31)* **Parameters:** Name | Type | ------ | ------ | `searchKey` | RawNoErrorScalarValue | `range` | [SimpleRangeValue](https://hyperformula.handsontable.com/docs/api/classes/simplerangevalue.md) | `options` | [SearchOptions](https://hyperformula.handsontable.com/docs/api/interfaces/searchoptions.md) | **Returns:** *number* --- ## RowsRemoval URL: https://hyperformula.handsontable.com/docs/api/interfaces/rowsremoval # RowsRemoval ## Properties ### removedCells • **removedCells**: *[ChangedCell](https://hyperformula.handsontable.com/docs/api/interfaces/changedcell.md)[]* *Defined in [src/Operations.ts:141](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Operations.ts#L141)* ___ ### rowCount • **rowCount**: *number* *Defined in [src/Operations.ts:139](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Operations.ts#L139)* ___ ### rowFrom • **rowFrom**: *number* *Defined in [src/Operations.ts:138](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Operations.ts#L138)* ___ ### version • **version**: *number* *Defined in [src/Operations.ts:140](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Operations.ts#L140)* --- ## SerializedNamedExpression URL: https://hyperformula.handsontable.com/docs/api/interfaces/serializednamedexpression # SerializedNamedExpression ## Properties ### expression • **expression**: *[RawCellContent](https://hyperformula.handsontable.com/docs/api/globals.md#rawcellcontent)* *Defined in [src/Serialization.ts:18](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Serialization.ts#L18)* ___ ### name • **name**: *string* *Defined in [src/Serialization.ts:17](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Serialization.ts#L17)* ___ ### options • **options**? : *[NamedExpressionOptions](https://hyperformula.handsontable.com/docs/api/globals.md#namedexpressionoptions)* *Defined in [src/Serialization.ts:20](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Serialization.ts#L20)* ___ ### scope • **scope**? : *undefined | number* *Defined in [src/Serialization.ts:19](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Serialization.ts#L19)* --- ## SimpleCellRange URL: https://hyperformula.handsontable.com/docs/api/interfaces/simplecellrange # SimpleCellRange ## Properties ### end • **end**: *[SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)* *Defined in [src/AbsoluteCellRange.ts:26](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L26)* ___ ### start • **start**: *[SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress.md)* *Defined in [src/AbsoluteCellRange.ts:25](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/AbsoluteCellRange.ts#L25)* --- ## SimpleColumnAddress URL: https://hyperformula.handsontable.com/docs/api/interfaces/simplecolumnaddress # SimpleColumnAddress ## Properties ### col • **col**: *number* *Defined in [src/Cell.ts:184](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Cell.ts#L184)* ___ ### sheet • **sheet**: *number* *Defined in [src/Cell.ts:185](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Cell.ts#L185)* --- ## SheetBoundaries URL: https://hyperformula.handsontable.com/docs/api/interfaces/sheetboundaries # SheetBoundaries Represents size and fill ratio of a sheet ## Properties ### fill • **fill**: *number* *Defined in [src/Sheet.ts:30](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Sheet.ts#L30)* ___ ### height • **height**: *number* *Defined in [src/Sheet.ts:29](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Sheet.ts#L29)* ___ ### width • **width**: *number* *Defined in [src/Sheet.ts:28](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Sheet.ts#L28)* --- ## SimpleCellAddress URL: https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress # SimpleCellAddress ## Properties ### col • **col**: *number* *Defined in [src/Cell.ts:193](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Cell.ts#L193)* ___ ### row • **row**: *number* *Defined in [src/Cell.ts:194](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Cell.ts#L194)* ___ ### sheet • **sheet**: *number* *Defined in [src/Cell.ts:195](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Cell.ts#L195)* --- ## SimpleDate URL: https://hyperformula.handsontable.com/docs/api/interfaces/simpledate # SimpleDate ## Properties ### day • **day**: *number* *Defined in [src/DateTimeHelper.ts:20](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/DateTimeHelper.ts#L20)* ___ ### month • **month**: *number* *Defined in [src/DateTimeHelper.ts:19](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/DateTimeHelper.ts#L19)* ___ ### year • **year**: *number* *Defined in [src/DateTimeHelper.ts:18](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/DateTimeHelper.ts#L18)* --- ## SimpleRowAddress URL: https://hyperformula.handsontable.com/docs/api/interfaces/simplerowaddress # SimpleRowAddress ## Properties ### row • **row**: *number* *Defined in [src/Cell.ts:175](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Cell.ts#L175)* ___ ### sheet • **sheet**: *number* *Defined in [src/Cell.ts:176](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Cell.ts#L176)* --- ## SimpleTime URL: https://hyperformula.handsontable.com/docs/api/interfaces/simpletime # SimpleTime ## Properties ### hours • **hours**: *number* *Defined in [src/DateTimeHelper.ts:24](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/DateTimeHelper.ts#L24)* ___ ### minutes • **minutes**: *number* *Defined in [src/DateTimeHelper.ts:25](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/DateTimeHelper.ts#L25)* ___ ### seconds • **seconds**: *number* *Defined in [src/DateTimeHelper.ts:26](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/DateTimeHelper.ts#L26)* --- ## TypedEmitter URL: https://hyperformula.handsontable.com/docs/api/interfaces/typedemitter # TypedEmitter ## Methods ### off ▸ **off**‹**Event**›(`s`: Event, `listener`: Listeners[Event]): *void* *Defined in [src/Emitter.ts:322](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Emitter.ts#L322)* **Type parameters:** ▪ **Event**: *keyof Listeners* **Parameters:** Name | Type | ------ | ------ | `s` | Event | `listener` | Listeners[Event] | **Returns:** *void* ___ ### on ▸ **on**‹**Event**›(`s`: Event, `listener`: Listeners[Event]): *void* *Defined in [src/Emitter.ts:320](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Emitter.ts#L320)* **Type parameters:** ▪ **Event**: *keyof Listeners* **Parameters:** Name | Type | ------ | ------ | `s` | Event | `listener` | Listeners[Event] | **Returns:** *void* ___ ### once ▸ **once**‹**Event**›(`s`: Event, `listener`: Listeners[Event]): *void* *Defined in [src/Emitter.ts:324](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Emitter.ts#L324)* **Type parameters:** ▪ **Event**: *keyof Listeners* **Parameters:** Name | Type | ------ | ------ | `s` | Event | `listener` | Listeners[Event] | **Returns:** *void* --- ## TemplateVars URL: https://hyperformula.handsontable.com/docs/api/interfaces/templatevars # TemplateVars --- ## UndoEntry URL: https://hyperformula.handsontable.com/docs/api/interfaces/undoentry # UndoEntry ## Methods ### doRedo ▸ **doRedo**(`undoRedo`: [UndoRedo](https://hyperformula.handsontable.com/docs/api/classes/undoredo.md)): *void* *Defined in [src/UndoRedo.ts:24](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L24)* **Parameters:** Name | Type | ------ | ------ | `undoRedo` | [UndoRedo](https://hyperformula.handsontable.com/docs/api/classes/undoredo.md) | **Returns:** *void* ___ ### doUndo ▸ **doUndo**(`undoRedo`: [UndoRedo](https://hyperformula.handsontable.com/docs/api/classes/undoredo.md)): *void* *Defined in [src/UndoRedo.ts:22](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L22)* **Parameters:** Name | Type | ------ | ------ | `undoRedo` | [UndoRedo](https://hyperformula.handsontable.com/docs/api/classes/undoredo.md) | **Returns:** *void* ___ ### getReferencedOldDataVersions ▸ **getReferencedOldDataVersions**(): *number[]* *Defined in [src/UndoRedo.ts:30](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/UndoRedo.ts#L30)* Returns the LazilyTransformingAstService version keys referenced by this entry's oldData storage. Used to clean up oldData when the entry is permanently evicted from the undo/redo stack. **Returns:** *number[]* --- ## SheetCellAddress URL: https://hyperformula.handsontable.com/docs/api/interfaces/sheetcelladdress # SheetCellAddress ## Properties ### col • **col**: *number* *Defined in [src/Cell.ts:231](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Cell.ts#L231)* ___ ### row • **row**: *number* *Defined in [src/Cell.ts:232](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/Cell.ts#L232)* --- ## CellContent URL: https://hyperformula.handsontable.com/docs/api/modules/cellcontent # CellContent ## Type aliases ### Type Ƭ **Type**: *[Number](https://hyperformula.handsontable.com/docs/api/classes/cellcontent.number.md) | [String](https://hyperformula.handsontable.com/docs/api/classes/cellcontent.string.md) | [Boolean](https://hyperformula.handsontable.com/docs/api/classes/cellcontent.boolean.md) | [Empty](https://hyperformula.handsontable.com/docs/api/classes/cellcontent.empty.md) | [Formula](https://hyperformula.handsontable.com/docs/api/classes/cellcontent.formula.md) | [Error](https://hyperformula.handsontable.com/docs/api/classes/cellcontent.error.md)* *Defined in [src/CellContentParser.ts:69](https://github.com/handsontable/hyperformula/blob/0a2fb42/src/CellContentParser.ts#L69)* --- ## Advanced usage URL: https://hyperformula.handsontable.com/docs/guide/advanced-usage # Advanced usage > By default, cells are identified using a `SimpleCellAddress` which > consists of a sheet ID, column ID, and row ID, like > this: `{ sheet: 0, col: 0, row: 0 }` > > Alternatively, you can work with the **A1 notation** known from > spreadsheets like Excel or Google Sheets. The API provides the helper > function `simpleCellAddressFromString` which you can use to > retrieve the `SimpleCellAddress` . The following example shows how to use formulas to find out which of the two Teams (A or B) is the winning one. You will do that by comparing the average scores of players in each team. The initial steps are the same as in the [basic example](https://hyperformula.handsontable.com/docs/guide/basic-usage.md). First, import HyperFormula and choose the configuration options: ```javascript import { HyperFormula } from 'hyperformula'; const options = { licenseKey: 'gpl-v3' }; ``` This time you will use the `buildFromEmpty` static method to initialize the engine: ```javascript // initiate the engine with no data const hfInstance = HyperFormula.buildEmpty(options); ``` Now, let's prepare some data. The first column will be players' IDs and the second column will be their scores. Then, you will define the formulas responsible for calculating the average scores. ```javascript // first column represents players' IDs // second column represents players' scores const playersA = [ ['1', '2'], ['2', '3'], ['3', '5'], ['4', '7'], ['5', '13'], ['6', '17'] ]; const playersB = [ ['7', '19'], ['8', '31'], ['9', '61'], ['10', '89'], ['11', '107'], ['12', '127'] ]; // in cell A1 a formula checks which team is the winning one // in cells A2 and A3 formulas calculate the average score of players const formulas = [ ['=IF(Formulas!A2>Formulas!A3,"TeamA","TeamB")'], ['=AVERAGE(TeamA!B1:B6)'], ['=AVERAGE(TeamB!B1:B6)'] ]; ``` Now prepare sheets and insert the data into them: ```javascript // add 'TeamA' sheet const sheetNameA = hfInstance.addSheet('TeamA'); // get the new sheet ID for further API calls const sheetIdA = hfInstance.getSheetId(sheetNameA); // insert playersA content into targeted 'TeamA' sheet hfInstance.setSheetContent(sheetIdA, playersA); // add 'TeamB' sheet const sheetNameB = hfInstance.addSheet('TeamB'); // get the new sheet ID for further API calls const sheetIdB = hfInstance.getSheetId(sheetNameB); // insert playersB content into targeted 'TeamB' sheet hfInstance.setSheetContent(sheetIdB, playersB); // check the content in the console output console.log(hfInstance.getAllSheetsValues()); ``` After setting everything up, you can add formulas: ```javascript // add a sheet named 'Formulas' const sheetNameC = hfInstance.addSheet('Formulas'); // get the new sheet ID for further API calls const sheetIdC = hfInstance.getSheetId(sheetNameC); // add formulas to that sheet hfInstance.setSheetContent(sheetIdC, formulas); ``` Almost done! Now, you can use the `getSheetValues` method to get all values including the calculated ones. Alternatively, you can use `getCellValue`to get the value from a specific cell. ```javascript // get all sheet values const sheetValues = hfInstance.getSheetValues(sheetIdC); // get the simple cell address of 'A1' from that sheet const simpleCellAddress = hfInstance.simpleCellAddressFromString('A1', sheetIdC); // check the winning team 🎉 const winningTeam = hfInstance.getCellValue(simpleCellAddress); // print the result to the console console.log(winningTeam) ``` --- ## HyperFormula AI SDK for Vercel URL: https://hyperformula.handsontable.com/docs/guide/ai-sdk # HyperFormula AI SDK for Vercel A [Vercel AI SDK](https://sdk.vercel.ai/docs) tool that gives your agents deterministic spreadsheet and formula computation — backed by HyperFormula's Excel-compatible engine. > **Not available yet — coming soon** > > This integration is on our roadmap and **cannot be installed or used today**. The API shown below is a preview and may still change before the first release. > > If you'd like to try it, [join the early access list](https://2fmjvg.share-eu1.hsforms.com/2e6drCkuLTn-1RuiYB91eJA) — we'll ping you the moment the first beta is ready, and your sign-up directly tells us how strongly to prioritize this integration. ## What it does - **Evaluate formulas deterministically** — your agent runs any Excel-compatible formula through HyperFormula instead of asking the LLM to do math. Results are exact, reproducible, and auditable. - **Read and write cells and ranges** — the agent inspects, populates, or modifies sheet data through typed tool calls. - **Trace dependencies** — precedents and dependents are surfaced so the agent can explain how every value was derived. - **423 built-in functions out of the box** — the agent has access to the full Excel-compatible function set (`SUM`, `VLOOKUP`, `IRR`, `INDEX/MATCH`, and the rest), no implementation work required. ## Example Using HyperFormula as a tool inside the Vercel AI SDK: ```js import { generateText } from 'ai'; import { openai } from '@ai-sdk/openai'; import HyperFormula from 'hyperformula'; import { createSpreadsheetTools } from 'hyperformula/ai'; // Build a workbook your agent can reason about. const hf = HyperFormula.buildFromArray([ ['Revenue', 100], ['Cost', 60], ['Profit', '=B1-B2'], ]); // Pass the spreadsheet tools straight into generateText. const result = await generateText({ model: openai('gpt-4o'), tools: createSpreadsheetTools(hf), prompt: 'What drives the profit number, and what happens if revenue doubles?', }); ``` A single import, one extra line in `tools`, and the model can evaluate formulas, read ranges, and edit cells through the SDK — without inventing numbers. ## Use cases - **Explain the spreadsheet** — ask the agent what a workbook does, which cells are inputs, and how each output is derived; get answers grounded in real formula evaluation. - **What-if scenarios and forecasting** — the agent tweaks assumptions and reports how downstream results change, deterministically. - **Validate and clean data** — the agent scans ranges for errors, missing values, or inconsistencies and fixes them in place. - **Generate formulas from natural language** — the agent translates a plain-English calculation into a verified, working Excel formula. - **Financial modeling and reporting** — NPV, IRR, amortization, KPI rollups, and other quantitative workflows where the answer must be exact and auditable. ## Get early access > **Be the first to try it** > > We're actively building this integration. Drop your email and we'll notify you the moment the first beta lands — so you can try it before the public release. > > [Join the early access list →](https://2fmjvg.share-eu1.hsforms.com/2e6drCkuLTn-1RuiYB91eJA) ## Links - [Vercel AI SDK documentation](https://sdk.vercel.ai/docs) - [HyperFormula on GitHub](https://github.com/handsontable/hyperformula) - [HyperFormula on npm](https://www.npmjs.com/package/hyperformula) - [Built-in functions](https://hyperformula.handsontable.com/docs/guide/built-in-functions.md) - [Custom functions](https://hyperformula.handsontable.com/docs/guide/custom-functions.md) --- ## Basic operations URL: https://hyperformula.handsontable.com/docs/guide/basic-operations # Basic operations HyperFormula can perform efficient **CRUD** operations on the workbook. You can apply these operations to various workbook elements, such as: * Cells * Rows / Columns * Sheets **Check the [API](https://hyperformula.handsontable.com/docs/api)** for a full reference of methods available for CRUD operations. HyperFormula automatically updates all references, both relative and absolute, in all sheets affected by the change. Operations affecting only the dependency graph should not decrease performance. However, multiple operations that have an impact on calculation results may affect performance; these are [`clearSheet`](https://hyperformula.handsontable.com/docs/api/classes/hyperformula.md#clearsheet), [`setSheetContent`](https://hyperformula.handsontable.com/docs/api/classes/hyperformula.md#setsheetcontent), [`setCellContents`](https://hyperformula.handsontable.com/docs/api/classes/hyperformula.md#setcellcontents), [`addNamedExpression`](https://hyperformula.handsontable.com/docs/api/classes/hyperformula.md#addnamedexpression), [`changeNamedExpression`](https://hyperformula.handsontable.com/docs/api/classes/hyperformula.md#changenamedexpression), and [`removeNamedExpression`](https://hyperformula.handsontable.com/docs/api/classes/hyperformula.md#removenamedexpression). It is advised to [batch](https://hyperformula.handsontable.com/docs/guide/batch-operations.md) them. ## Sheets ### Adding a sheet A sheet can be added by using the [`addSheet`](https://hyperformula.handsontable.com/docs/api/classes/hyperformula.md#addsheet) method. You can pass a name for it or leave it without a parameter. In the latter case the method will create an autogenerated name for it. That name can then be returned for further use. ```javascript // the autogenerated sheet name can be assigned to a variable const myNewSheet = hfInstance.addSheet(); // create a sheet with a specific name hfInstance.addSheet('SheetName'); ``` You can also count sheets by using the [`countSheets`](https://hyperformula.handsontable.com/docs/api/classes/hyperformula.md#countsheets) method. This method does not require any parameters. ```javascript // count the number of sheets you added const sheetsCount = hfInstance.countSheets(); ``` ### Removing a sheet A sheet can be removed by using the [`removeSheet`](https://hyperformula.handsontable.com/docs/api/classes/hyperformula.md#removesheet) method. To do that you need to pass a mandatory parameter: the ID of a sheet to be removed. This method returns [an array of changed cells](#changes-array). ```javascript // track the changes triggered by removing the sheet 0 const changes = hfInstance.removeSheet(0); ``` ### Renaming a sheet A sheet can be renamed by using the [`renameSheet`](https://hyperformula.handsontable.com/docs/api/classes/hyperformula.md#renamesheet) method. You need to pass the ID of a sheet you want to rename (you can get it with the [`getSheetId`](https://hyperformula.handsontable.com/docs/api/classes/hyperformula.md#getsheetid) method only if you know its name) along with a new name as the first and second parameters, respectively. ```javascript // rename the first sheet hfInstance.renameSheet(0, 'NewSheetName'); // you can retrieve the sheet ID if you know its name const sheetID = hfInstance.getSheetId('SheetName'); // use the retrieved sheet ID in the method hfInstance.renameSheet(sheetID, 'AnotherNewName'); ``` ### Clearing a sheet A sheet's content can be cleared with the [`clearSheet`](https://hyperformula.handsontable.com/docs/api/classes/hyperformula.md#clearsheet) method. You need to provide the ID of a sheet whose content you want to clear. This method returns [an array of changed cells](#changes-array). ```javascript // clear the content of sheet 0 const changes = hfInstance.clearSheet(0); ``` ### Replacing sheet content Instead of removing and adding the content of a sheet you can replace it right away. To do so use [`setSheetContent`](https://hyperformula.handsontable.com/docs/api/classes/hyperformula.md#setsheetcontent), in which you can pass the sheet ID and its new values. This method returns [an array of changed cells](#changes-array). ```javascript // set new values for sheet 0 const changes = hfInstance.setSheetContent(0, [['50'], ['60']]); ``` ## Rows ### Adding rows You can add one or more rows by using the [`addRows`](https://hyperformula.handsontable.com/docs/api/classes/hyperformula.md#addrows) method. The first parameter you need to pass is a sheet ID, and the second parameter represents the position and the size of a block of rows to be added. This method returns [an array of changed cells](#changes-array). ```javascript // track the changes triggered by adding // two rows at position 0 inside the first sheet const changes = hfInstance.addRows(0, [0, 2]); ``` ### Removing rows You can remove one or more rows by using the [`removeRows`](https://hyperformula.handsontable.com/docs/api/classes/hyperformula.md#removerows) method. The first parameter you need to pass is a sheet ID, and the second parameter represents the position and the size of a block of rows to be removed. This method returns [an array of changed cells](#changes-array). ```javascript // track the changes triggered by removing // two rows at position 0 inside the first sheet const changes = hfInstance.removeRows(0, [0, 2]); ``` ### Moving rows You can move one or more rows by using the [`moveRows`](https://hyperformula.handsontable.com/docs/api/classes/hyperformula.md#moverows) method. You need to pass the following parameters: * Sheet ID * Starting row * Number of rows to be moved * [Target row](https://hyperformula.handsontable.com/docs/api/classes/hyperformula.md#moverows) This method returns [an array of changed cells](#changes-array). ```javascript // track the changes triggered by moving // the first row in the first sheet into row 2 const changes = hfInstance.moveRows(0, 0, 1, 2); ``` ### Reordering rows You can change the order of rows by using the [`setRowOrder`](https://hyperformula.handsontable.com/docs/api/classes/hyperformula.md#setroworder) method. You need to pass the following parameters: * Sheet ID * [New row order](https://hyperformula.handsontable.com/docs/api/classes/hyperformula.md#setroworder) The new row order is a permutation of the form `[ newPositionForRow0, newPositionForRow1, newPositionForRow2, ... ]`. The value at index `i` is the new position for the row that is currently at index `i`. See the [Sorting data](https://hyperformula.handsontable.com/docs/guide/sorting-data.md) guide for details. This method returns [an array of changed cells](#changes-array). ```javascript // move row 0 to position 1, row 1 to position 2, and row 2 to position 0 const changes = hfInstance.setRowOrder(0, [1, 2, 0]); ``` ## Columns ### Adding columns You can add one or more columns by using the [`addColumns`](https://hyperformula.handsontable.com/docs/api/classes/hyperformula.md#addcolumns) method. The first parameter you need to pass is a sheet ID, and the second parameter represents the position and the size of a block of columns to be added. This method returns [an array of changed cells](#changes-array). ```javascript // track the changes triggered by adding // two columns at position 0 inside the first sheet const changes = hfInstance.addColumns(0, [0, 2]); ``` ### Removing columns You can remove one or more columns by using the [`removeColumns`](https://hyperformula.handsontable.com/docs/api/classes/hyperformula.md#removecolumns) method. The first parameter you need to pass is a sheet ID, and the second parameter represents the position and the size of a block of columns to be removed. This method returns [an array of changed cells](#changes-array). ```javascript // track the changes triggered by removing // two columns at position 0 inside the first sheet const changes = hfInstance.removeColumns(0, [0, 2]); ``` ### Moving columns You can move one or more columns by using the [`moveColumns`](https://hyperformula.handsontable.com/docs/api/classes/hyperformula.md#movecolumns) method. You need to pass the following parameters: * Sheet ID * Starting column * Number of columns to be moved * [Target column](https://hyperformula.handsontable.com/docs/api/classes/hyperformula.md#movecolumns) This method returns [an array of changed cells](#changes-array). ```javascript // track the changes triggered by moving // the first column in the first sheet into column 2 const changes = hfInstance.moveColumns(0, 0, 1, 2); ``` ### Reordering columns You can change the order of columns by using the [`setColumnOrder`](https://hyperformula.handsontable.com/docs/api/classes/hyperformula.md#setcolumnorder) method. You need to pass the following parameters: * Sheet ID * [New column order](https://hyperformula.handsontable.com/docs/api/classes/hyperformula.md#setcolumnorder) The new column order is a permutation of the form `[ newPositionForColumn0, newPositionForColumn1, newPositionForColumn2, ... ]`. The value at index `i` is the new position for the column that is currently at index `i`. See the [Sorting data](https://hyperformula.handsontable.com/docs/guide/sorting-data.md) guide for details. This method returns [an array of changed cells](#changes-array). ```javascript // move column 0 to position 1, column 1 to position 2, and column 2 to position 0 const changes = hfInstance.setColumnOrder(0, [1, 2, 0]); ``` ## Cells > By default, cells are identified using a [`SimpleCellAddress`](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress) which > consists of a sheet ID, column ID, and row ID, like this: > `{ sheet: 0, col: 0, row: 0 }` > > Alternatively, you can work with the **A1 notation** known from > spreadsheets like Excel or Google Sheets. The API provides the helper > function [`simpleCellAddressFromString`](https://hyperformula.handsontable.com/docs/api/classes/hyperformula.md#simplecelladdressfromstring) which you can use to retrieve > the [`SimpleCellAddress`](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress) . ### Moving cells You can move one or more cells using the [`moveCells`](https://hyperformula.handsontable.com/docs/api/classes/hyperformula.md#movecells) method. You need to pass the following parameters: * Source range ([SimpleCellRange](https://hyperformula.handsontable.com/docs/api/interfaces/simplecellrange)) * Top left corner of the destination range ([SimpleCellAddress](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress)) This method returns [an array of changed cells](#changes-array). ```javascript // choose the source cells const source = { sheet: 0, col: 1, row: 0 }; // choose the target cells const destination = { sheet: 0, col: 3, row: 0 }; // track the changes triggered by moving // one cell from source to target location const changes = hfInstance.moveCells({ start: source, end: source }, destination); ``` ### Updating cells You can set the content of a block of cells by using the [`setCellContents`](https://hyperformula.handsontable.com/docs/api/classes/hyperformula.md#setcellcontents) method. You need to pass the top left corner address of a block as a [`SimpleCellAddress`](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress), along with the content to be set. It can be content for either a single cell or a set of cells in an array. This method returns [an array of changed cells](#changes-array). ```javascript // track the changes triggered by setting // a block of cells with content '=B1' const changes = hfInstance.setCellContents({ col: 3, row: 0, sheet: 0 }, [['=B1']]); ``` ### Getting cell value You can get the value of a cell by using [`getCellValue`](https://hyperformula.handsontable.com/docs/api/classes/hyperformula.md#getcellvalue) . Remember to pass the coordinates as a [`SimpleCellAddress`](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress) . ```javascript // get the value of the B1 cell const B1Value = hfInstance.getCellValue({ sheet: 0, col: 1, row: 0 }); ``` ### Getting cell formula You can retrieve the formula from a cell by using [`getCellFormula`](https://hyperformula.handsontable.com/docs/api/classes/hyperformula.md#getcellformula). Remember to pass the coordinates as a [`SimpleCellAddress`](https://hyperformula.handsontable.com/docs/api/interfaces/simplecelladdress) . ```javascript // get the formula from the A1 cell const A1Formula = hfInstance.getCellFormula({ sheet: 0, col: 0, row: 0 }); ``` ## Handling an error Each time you call a method, HyperFormula will perform the corresponding operation. If there is an issue, it will throw an error. Methods available in the HyperFormula's API might throw different errors, but all of them follow the same pattern. Thus, the errors can be handled in a similar manner. For example, imagine you let users rename their sheets in an application but by mistake they choose a sheet ID that does not exist. It would be nice to display the error to the user, so they are aware of this fact. ```javascript // variable used to carry the message for the user let messageUsedInUI; // attempt to rename a sheet try { hfInstance.renameSheet(5, "Payroll"); // whoops! there is no sheet with an ID of 5 } catch (e) { // notify the user that a sheet with an ID of 5 does not exist if (e instanceof NoSheetWithIdError) { messageUsedInUI = "Sheet with provided ID does not exist"; } // a generic error message, just in case else { messageUsedInUI = "Something went wrong"; } } ``` ## isItPossibleTo* methods There are also methods that you may find useful to call in pair with the above-mentioned operations. These methods are prefixed with `isItPossibleTo*` whose sole purpose is to check if the desired operation is possible. They all return a simple `boolean` value. You will find it handy when you want to give the user a more generic message and you don't want to react to specific errors. This can be particularly useful for interaction with the UI of the application you work on. For example, you can allow the user to add new sheets by typing a new sheet name inside an input field. You can easily check if that action is allowed, and if it is not, throw an error. ```javascript // an instance with some example data const hfInstance = HyperFormula.buildFromArray([ ['1', '2'], ]); // a variable used to carry the message for the user let messageUsedInUI; // use this method to check the possibility to remove columns const isRemovable = hfInstance.isItPossibleToRemoveColumns(0, [1, 1]); // check if there is a possibility to remove columns if (!isRemovable) { messageUsedInUI = 'Sorry, you cannot perform a remove action' } ``` ## Changes array All data modification methods return an array of [`ExportedChange`](https://hyperformula.handsontable.com/docs/api/globals.md#exportedchange). This is a collection of cells whose **values** were affected by an operation, together with their absolute addresses and new values. ```javascript [{ address: { sheet: 0, col: 0, row: 0 }, newValue: { error: [CellError], value: '#REF!' }, }] ``` This gives you information about where the change happened, what the new value of a cell is, and even what type it is - in this case, an error. The array of changes includes only cells that have different **values** after performing the operation. See the example: ```js const hf = HyperFormula.buildFromArray([ [0], [1], ['=SUM(A1:A2)'], ['=COUNTBLANK(A1:A3)'], ]); // insert an empty row between the row 0 and the row 1 const changes = hf.addRows(0, [1, 1]); console.log(hf.getSheetSerialized(0)); // sheet after adding the row: // [ // [0], // [], // [1], // ['=SUM(A1:A3)'], // ['=COUNTBLANK(A1:A4)'], // ] console.log(changes); // changes include only the COUNTBLANK cell: // [{ // address: { sheet: 0, row: 4, col: 0 }, // newValue: 1, // }] ``` ## Demo This demo presents several basic operations integrated with a sample UI. --- ## Basic usage URL: https://hyperformula.handsontable.com/docs/guide/basic-usage # Basic usage > The instance can be created with three static methods: > [`buildFromArray`](https://hyperformula.handsontable.com/docs/api/classes/hyperformula.html#buildfromarray), > `buildFromSheets` or `buildEmpty`. You can check all of their > descriptions in our [API reference](https://hyperformula.handsontable.com/docs/api). If you've already installed the library, it's time to start writing the first simple application. First, if you used NPM or Yarn to install the package, make sure you have properly imported HyperFormula as shown below: ```javascript import { HyperFormula } from 'hyperformula'; ``` If you embed HyperFormula in the ` ``` Or you may load just a minimal build and add the dependencies on your own: ```html ``` A useful option when you already use some of them and there is no need to duplicate the dependencies. You can read more about the dependencies of HyperFormula on a dedicated [Dependencies](https://hyperformula.handsontable.com/docs/guide/dependencies.md) page. ## Clone from GitHub If you choose to clone the project or download it from GitHub you will need to build it prior to usage. Check the [building section](https://hyperformula.handsontable.com/docs/guide/building.md) for a full list of commands and their descriptions. ### Clone with HTTPS ```bash git clone https://github.com/handsontable/hyperformula.git ``` ### Clone with SSH ```bash git clone git@github.com:handsontable/hyperformula.git ``` ## Download from GitHub You can download all resources as a ZIP archive directly from the [GitHub repository](https://github.com/handsontable/hyperformula). Then, you can use one of the above-mentioned methods to install the library. ## Set up your coding agent HyperFormula ships an official Claude skill and machine-readable docs, so your AI coding agent can scaffold, configure, and debug HyperFormula correctly. To install the skill in Claude Code, or to point Cursor, GitHub Copilot, or another agent at the docs, see [Set up your coding agent](https://hyperformula.handsontable.com/docs/guide/setup-coding-agent.md). --- ## Contact URL: https://hyperformula.handsontable.com/docs/guide/contact # Contact HyperFormula is a product of Handsoncode, the company that stands behind [Handsontable](https://handsontable.com/). We are here to answer all your questions regarding pricing, licensing, support, and security. We typically reply within a few hours during our working hours: 8:00 AM - 5:00 PM [CET](https://time.is/pl/CET). ## Contact sales Write to us at [sales@handsontable.com](mailto:sales@handsontable.com) or submit your inquiry through the [contact form](https://handsontable.com/get-a-quote). ## Billing address * Handsoncode sp. z o.o. * Aleja Zwycięstwa 96/98 * 81-451 Gdynia, Poland * VAT EU: PL5862294002 ## Looking for technical support? [Learn more about support options →](https://hyperformula.handsontable.com/#pricing) --- ## Contributing URL: https://hyperformula.handsontable.com/docs/guide/contributing # Contributing You are welcome to contribute to HyperFormula's development. Your help is much appreciated in any of the following topics: * Making pull requests * Adding new functions * Adding new features * Improving the quality of the existing code * Improving performance * Improving documentation and public API * Reporting bugs * Suggesting improvements * Suggesting new features ## Good first issue Adding a new function would be a huge help for the growth of the library and should not be too problematic for a first issue. Extending the library of translations is also a good task to start with. [Here](https://docs.google.com/spreadsheets/d/1UUskn4ZDDjLGSpO6kg73DOvabNoeqLbkJYyVfLyYlYw) you can find a list of function translations. Visit the [building](https://hyperformula.handsontable.com/docs/guide/building.md) section to get more info about the development process and check the list of commands you can run in this project. Check the `/i18n` folder in the project - all translations are kept there. For the functions see the `interpreter/plugin` folder. Both of them are a good starting point. ## How to get started 1. First, sign this [Contributor License Agreement](https://goo.gl/forms/yuutGuN0RjsikVpM2) to allow us to use and publish your changes. 2. Always make your changes on a separate branch. This will speed up the merging process. 3. Always make the target of your pull request the `develop` branch, not `master`. 4. For any change you make, add test specs to the `test` folder. 5. Please lint the code. See the section about using linter. 6. Add a comprehensive description of all the changes. ## Code of conduct By participating in this project, you are expected to uphold our [Code of Conduct](https://hyperformula.handsontable.com/docs/guide/code-of-conduct.md). --- ## Date and time handling URL: https://hyperformula.handsontable.com/docs/guide/date-and-time-handling # Date and time handling The formats for the default date and time parsing functions can be set using configuration options: - [`dateFormats`](https://hyperformula.handsontable.com/docs/api/interfaces/configparams.md#dateformats), - [`timeFormats`](https://hyperformula.handsontable.com/docs/api/interfaces/configparams.md#timeformats), - [`nullYear`](https://hyperformula.handsontable.com/docs/api/interfaces/configparams.md#nullyear). The API reference of [`dateFormats`](https://hyperformula.handsontable.com/docs/api/interfaces/configparams.md#dateformats) and [`timeFormats`](https://hyperformula.handsontable.com/docs/api/interfaces/configparams.md#timeformats) describes the supported date and time formats in detail. ## Example By default, HyperFormula uses the European date and time formats. ```javascript dateFormats: ['DD/MM/YYYY', 'DD/MM/YY'], // set by default timeFormats: ['hh:mm', 'hh:mm:ss.sss'], // set by default ``` To use the US date and time formats, set: ```javascript dateFormats: ['MM/DD/YYYY', 'MM/DD/YY', 'YYYY/MM/DD'], // US date formats timeFormats: ['hh:mm', 'hh:mm:ss.sss'], // set by default ``` ## Custom date and time handling If date and time formats supported by the [`dateFormats`](https://hyperformula.handsontable.com/docs/api/interfaces/configparams.md#dateformats) and [`timeFormats`](https://hyperformula.handsontable.com/docs/api/interfaces/configparams.md#timeformats) parameters are not enough, you can extend them by providing the following options: - [`parseDateTime`](https://hyperformula.handsontable.com/docs/api/interfaces/configparams.md#parsedatetime), which allows to provide a function that accepts a string representing date/time and parses it into an actual date/time format - [`stringifyDateTime`](https://hyperformula.handsontable.com/docs/api/interfaces/configparams.md#stringifydatetime), which allows to provide a function that takes the date/time and prints it as a string - [`stringifyDuration`](https://hyperformula.handsontable.com/docs/api/interfaces/configparams.md#stringifyduration), which allows to provide a function that takes time duration and prints it as a string To extend the number of possible date formats, you will need to configure [`parseDateTime`](https://hyperformula.handsontable.com/docs/api/interfaces/configparams.md#parsedatetime) . This functionality is based on callbacks, and you can customize the formats by integrating a third-party library like [Moment.js](https://momentjs.com/), or by writing your own custom function that returns a [`DateTime`](https://hyperformula.handsontable.com/docs/api/globals.md#datetime) object. The configuration of date formats and stringify options may impact some built-in functions. For instance, the `VALUE` function transforms strings into numbers, which means it uses [`parseDateTime`](https://hyperformula.handsontable.com/docs/api/interfaces/configparams.md#parsedatetime). The `TEXT` function works the other way round - it accepts a number and returns a string, so it uses `stringifyDateTime`. Any change here might give you different results. Criteria-based functions (`SUMIF`, `AVERAGEIF`, etc.) perform comparisons, so they also need to work on strings, dates, etc. ## Moment.js integration In this example, you will add the possibility to parse dates in the `"Do MMM YY"` custom format. To do so, you first need to write a function using [Moment.js API](https://momentjs.com/docs/): ```javascript import moment from "moment"; // write a custom function for parsing dates export const customParseDate = (dateString, dateFormat) => { const momentDate = moment(dateString, dateFormat, true); // check validity of a date with moment.js method if (momentDate.isValid()) { return { year: momentDate.year(), month: momentDate.month() + 1, day: momentDate.date() }; } // if the string was not recognized as // a valid date return nothing return undefined; }; ``` Then, use it inside the [configuration options](https://hyperformula.handsontable.com/docs/guide/configuration-options.md) like so: ```javascript const options = { parseDateTime: customParseDate, // you can add more formats dateFormats: ["Do MMM YY"] }; ``` After that, you should be able to add a dataset with dates in your custom format: ```javascript const data = [["31st Jan 00", "2nd Jun 01", "=B1-A1"]]; ``` And now, HyperFormula recognizes these values as valid dates and can operate on them. For currency formatting in the `TEXT` function (locale-aware grouping, non-`$` symbols, accounting patterns), see the [Currency handling](https://hyperformula.handsontable.com/docs/guide/currency-handling.md) guide. --- ## Custom functions URL: https://hyperformula.handsontable.com/docs/guide/custom-functions # Custom functions Expand the function library of your application by adding custom functions. **Contents:** ## Add a simple custom function As an example, let's create a custom function `GREET` that accepts a person's first name as a string argument and returns a personalized greeting. ### 1. Create a function plugin Import `FunctionPlugin`, and extend it with a new class. For example: ```js import { FunctionPlugin } from 'hyperformula'; // let's call the function plugin `MyCustomPlugin` export class MyCustomPlugin extends FunctionPlugin {} ``` ### 2. Define your function's ID, method, and metadata In your function plugin, in the static `implementedFunctions` property, define an object that declares the functions provided by this plugin. The name of that object becomes the ID by which [translations](#function-name-translations), [aliases](#function-aliases), and other elements reference your function. Make the ID unique among all HyperFormula functions ([built-in](https://hyperformula.handsontable.com/docs/guide/built-in-functions.md#list-of-available-functions) and custom). In your function's object, you can specify: - A `method` property (required), which maps your function to the implementation method (we'll define it later on), - A `parameters` array that describes the arguments accepted by your function and [validation options](#argument-validation-options) for each argument, - Other [custom function options](#function-options). ```js import { FunctionPlugin, FunctionArgumentType } from 'hyperformula'; MyCustomPlugin.implementedFunctions = { // let's define the function's ID as `GREET` GREET: { method: 'greet', parameters: [{ argumentType: FunctionArgumentType.STRING }], }, }; ``` > To define multiple functions in a single function plugin, add them all > to the `implementedFunctions` object. > > ```js > MyCustomPlugin.implementedFunctions = { > FUNCTION_A: { > //... > }, > FUNCTION_B: { > //... > }, > }; > ``` ### 3. Add your function's names In a separate object, define your function's names in every [language](#function-name-translations) that you want to support. > Even if you support just a single language, you still need to define a translation for it. ```js export const MyCustomPluginTranslations = { enGB: { GREET: 'GREET', }, enUS: { GREET: 'GREET', }, // repeat for all languages used in your system }; ``` ### 4. Implement your function's logic In your function plugin, add a method that implements your function's calculations. Your method needs to: - Take two optional arguments: `ast` and `state`. - Return the results of your calculations. Wrap your implementation in the built-in `runFunction()` method, which: - Evaluates the arguments of your custom function. - Validates the number of arguments against the [`parameters` array](#function-options). - Coerces the argument values to types set in the [`parameters` array](#argument-validation-options). - Handles optional arguments and default values according to options set in the [`parameters` array](#argument-validation-options). - Validates the arguments of your custom function against the [argument validation options](#argument-validation-options). - Duplicates the arguments according to the [`repeatLastArgs` option](#function-options). - Handles the [array arithmetic mode](https://hyperformula.handsontable.com/docs/guide/arrays.md#array-arithmetic-mode). - Performs [function vectorization](https://hyperformula.handsontable.com/docs/guide/arrays.md#passing-arrays-to-scalar-functions-vectorization). - Performs [argument broadcasting](https://hyperformula.handsontable.com/docs/guide/arrays.md#broadcasting). ```js export class MyCustomPlugin extends FunctionPlugin { greet(ast, state) { return this.runFunction( ast.args, state, this.metadata('GREET'), (firstName) => { return `👋 Hello, ${firstName}!`; } ); } } ``` ### 5. Register your function plugin Register your function plugin and its translations so that HyperFormula can recognize it. You need to do this **before** you create your HyperFormula instance. Use the [`registerFunctionPlugin()`](https://hyperformula.handsontable.com/docs/api/classes/hyperformula.md#registerfunctionplugin) method: ```js HyperFormula.registerFunctionPlugin(MyCustomPlugin, MyCustomPluginTranslations); ``` ### 6. Use your custom function in a formula Now, you're ready to use your GREET function in a formula. ```js // build a HyperFormula instance where you can use your function directly const hfInstance = HyperFormula.buildFromArray([['Anthony', '=GREET(A1)']]); // read the value of cell B1 const result = hfInstance.getCellValue({ sheet: 0, col: 1, row: 0 }); // cell B1 should evaluate to 'Anthony' console.log(result); ``` ### Full example The complete implementation of this custom function is also included in the [demo](#working-demo). ```js import { FunctionPlugin, FunctionArgumentType } from 'hyperformula'; export class MyCustomPlugin extends FunctionPlugin { greet(ast, state) { return this.runFunction( ast.args, state, this.metadata('GREET'), (firstName) => { return `👋 Hello, ${firstName}!`; } ); } } MyCustomPlugin.implementedFunctions = { GREET: { method: 'greet', parameters: [{ argumentType: FunctionArgumentType.STRING }], }, }; export const MyCustomPluginTranslations = { enGB: { GREET: 'GREET', }, enUS: { GREET: 'GREET', }, }; HyperFormula.registerFunctionPlugin(MyCustomPlugin, MyCustomPluginTranslations); ``` ## Advanced custom function example In a more advanced example, we'll create a custom function `DOUBLE_RANGE` that takes a range of numbers and returns the range of the same size with all the numbers doubled. ### Accept a range argument To accept a range argument, declare it in the `parameters` array: ```js MyCustomPlugin.implementedFunctions = { DOUBLE_RANGE: { method: 'doubleRange', parameters: [{ argumentType: FunctionArgumentType.RANGE }], }, }; ``` The range arguments are passed to the implementation method as instances of the [`SimpleRangeValue` class](https://hyperformula.handsontable.com/docs/api/classes/simplerangevalue.md): ```js export class MyCustomPlugin extends FunctionPlugin { doubleRange(ast, state) { return this.runFunction( ast.args, state, this.metadata('DOUBLE_RANGE'), (range) => { const rangeData = range.data; // ... } ); } } ``` ### Return an array of data A function can return multiple values in the form of an [array](https://hyperformula.handsontable.com/docs/guide/arrays.md). To do that, use [`SimpleRangeValue` class](https://hyperformula.handsontable.com/docs/api/classes/simplerangevalue.md): ```js export class MyCustomPlugin extends FunctionPlugin { doubleRange(ast, state) { return this.runFunction( ast.args, state, this.metadata('DOUBLE_RANGE'), (range) => { const resultArray = //... return SimpleRangeValue.onlyValues(resultArray); }, ); } } ``` A function that returns an array will cause the `VALUE!` error unless you also declare a companion method for the array size. To do that, provide the `sizeOfResultArrayMethod` that calculates the size of the result array based on the function arguments and returns an instance of the [`ArraySize` class](https://hyperformula.handsontable.com/docs/api/classes/arraysize.md). > When you use your custom function in a formula, `sizeOfResultArrayMethod` is triggered every time the formula changes, but not when the dependencies of the formula change. > This can cause unexpected behavior if the size of the result array depends on the values in the referenced cells. ```js export class MyCustomPlugin extends FunctionPlugin { doubleRangeResultArraySize(ast, state) { const arg = ast?.args?.[0]; if (arg?.start == null || arg?.end == null) { return ArraySize.scalar(); } const width = arg.end.col - arg.start.col + 1; const height = arg.end.row - arg.start.row + 1; return new ArraySize(width, height); } } MyCustomPlugin.implementedFunctions = { DOUBLE_RANGE: { method: 'doubleRange', sizeOfResultArrayMethod: 'doubleRangeResultArraySize', parameters: [{ argumentType: FunctionArgumentType.RANGE }], }, }; ``` ### Validate the arguments and return an error To handle invalid inputs, the custom function should return an instance of the [`CellError` class](https://hyperformula.handsontable.com/docs/api/classes/cellerror.md) with the relevant [error type](https://hyperformula.handsontable.com/docs/guide/types-of-errors.md). Errors are localized according to your [language settings](https://hyperformula.handsontable.com/docs/guide/localizing-functions.md). ```js if (rangeData.some((row) => row.some((val) => typeof rawValue !== 'number'))) { return new CellError( 'VALUE', 'Function DOUBLE_RANGE operates only on numbers.' ); } ``` > All HyperFormula [error types](https://hyperformula.handsontable.com/docs/guide/types-of-errors.md) support optional > custom error messages. Put them to good use: let your users know what caused the > error and how to avoid it in the future. ### Test your function To make sure your function works correctly, add unit tests. Use a JavaScript testing library of your choice. ```js it('works for a range of numbers', () => { HyperFormula.registerFunctionPlugin( MyCustomPlugin, MyCustomPluginTranslations ); const engine = HyperFormula.buildFromArray( [[1, '=DOUBLE_RANGE(A1:A3)'], [2], [3]], { licenseKey: 'gpl-v3' } ); expect(engine.getCellValue({ sheet: 0, row: 0, col: 1 })).toEqual(2); expect(engine.getCellValue({ sheet: 0, row: 1, col: 1 })).toEqual(4); expect(engine.getCellValue({ sheet: 0, row: 2, col: 1 })).toEqual(6); }); it('returns a VALUE error if the range argument contains a string', () => { HyperFormula.registerFunctionPlugin( MyCustomPlugin, MyCustomPluginTranslations ); const engine = HyperFormula.buildFromArray( [[1, '=DOUBLE_RANGE(A1:A3)'], ['I should not be here'], [3]], { licenseKey: 'gpl-v3' } ); expect(engine.getCellValueType({ sheet: 0, row: 0, col: 1 })).toEqual( 'ERROR' ); expect(engine.getCellValue({ sheet: 0, row: 0, col: 1 }).value).toEqual( '#VALUE!' ); }); ``` ## Working demo Explore the full working example on [Stackblitz](https://stackblitz.com/github/handsontable/hyperformula-demos/tree/3.4.x/custom-functions?v=). This demo contains the implementation of both the [`GREET`](#add-a-simple-custom-function) and [`DOUBLE_RANGE`](#advanced-custom-function-example) custom functions. ## Function options You can set the following options for your function: | Option | Type | Description | |-------------------------------------|---------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `method` (required) | String | Name of the method that implements the custom function logic. | | `parameters` | Array | Specification of the arguments accepted by the function and their [validation options](#argument-validation-options). | | `sizeOfResultArrayMethod` | String | Name of the method that calculates the size of the result array. Not required for functions that never return an array. | | `returnNumberType` | String | If the function returns a numeric value, this option indicates how to interpret the returned number.
AllCellPrecedents={start}
let Q be an empty queue
Q.enqueue(start)
while Q is not empty do
cell := Q.dequeue()
S := getCellPrecedents(cell)
for all cells c in S do:
if c is not in AllCellPrecedents then:
insert w to AllCellPrecedents
Q.enqueue(c)
AllCellDependents={start}
let Q be an empty queue
Q.enqueue(start)
while Q is not empty do
cell := Q.dequeue()
S := getCellDependents(cell)
for all cells c in S do:
if c is not in AllCellDependents then:
insert w to AllCellDependents
Q.enqueue(c)
| {{ cell }} | }
| {{ cell }} |
Result: {result}
{/if}| {#if hf.doesCellHaveFormula({ sheet: sheetId, row: r, col: c })} {hf.getCellFormula({ sheet: sheetId, row: r, col: c })} {:else} {hf.getCellValue({ sheet: sheetId, row: r, col: c })} {/if} | {/each}
Result: {result}
{/if} ``` ## Next steps - [Configuration options](https://hyperformula.handsontable.com/docs/guide/configuration-options.md) — full list of `buildFromArray` / `buildEmpty` options - [Basic operations](https://hyperformula.handsontable.com/docs/guide/basic-operations.md) — CRUD on cells, rows, columns, sheets - [Advanced usage](https://hyperformula.handsontable.com/docs/guide/advanced-usage.md) — multi-sheet workbooks, named expressions - [Custom functions](https://hyperformula.handsontable.com/docs/guide/custom-functions.md) — register your own formulas ## Demo For a more advanced example, check out the [Svelte demo on Stackblitz](https://stackblitz.com/github/handsontable/hyperformula-demos/tree/3.4.x/svelte-demo?v=). --- ## Integration with React URL: https://hyperformula.handsontable.com/docs/guide/integration-with-react # Integration with React The HyperFormula API is identical in a React app and in plain JavaScript. This guide demonstrates how HyperFormula is integrated with the React component tree and how its lifecycle maps to React hooks. Install with `npm install hyperformula`. For other options, see the [client-side installation](https://hyperformula.handsontable.com/docs/guide/client-side-installation.md) section. > **TypeScript** > > All examples use TypeScript. Remove the type annotations to use plain JavaScript. ## Basic usage Hold the HyperFormula instance in a `useRef` so it survives re-renders. Initialize it inside `useEffect` and release it in the cleanup function. Use `useState` to toggle between raw formulas and computed values. ```tsx import { useEffect, useRef, useState } from 'react'; import { HyperFormula } from 'hyperformula'; import type { CellValue } from 'hyperformula'; export default function SpreadsheetComponent() { const hfRef = useRef| {String(cell ?? '')} | ))}
| {{ cell }} |
| Precedence | Operator | Description |
|---|---|---|
| 1 |
: (colon) , (comma) (space) |
Reference operators: range (colon), union (comma), intersection (space). Currently supported by HyperFormula only at the grammar level of a function. |
| 2 | – | Negation |
| 3 | % | Percent |
| 4 | ^ | Exponentiation |
| 5 | * and / | Multiplication and division |
| 6 | + and – | Addition and subtraction |
| 7 | & (ampersand) | Concatenation of two or more text strings |
| 8 |
< (less than) = (equal to) > (greater than) <= (less than or equal to) >= (greater than or equal to) <> (not equal to) |
Comparison |
| Feature | Maximum limit |
|---|---|
| Number of cells |
Limited by system resources (JavaScript) Can be set in the configuration:
|
| Number of nested levels of functions | 120 |
| Earliest date allowed for the calculation | December 30, 1899 |
| Latest date allowed for the calculation | December 31, 9999 |
| Number of named expressions | Limited by system resources (JavaScript) |
| Characters in a cell | Limited by system resources (JavaScript) |
| Characters in a named expression | Limited by system resources (JavaScript) |
| Characters in a sheet name | Limited by system resources (JavaScript) |
| Characters in a column name | Depends on the configuration of MaxColumns |
| Number of sheets in a workbook | Limited by system resources (JavaScript) |
| Number of custom functions | Limited by system resources (JavaScript) |
| Undo levels | Limited by the configuration - undoLimit (default: 20) |
| Number of elements in a batch operation | Limited by system resources (JavaScript) |