# Release notes
This page lists HyperFormula release notes. The format is based on Keep a Changelog (opens new window).
HyperFormula adheres to Semantic Versioning (opens new window).
# Unreleased
# Changed
- Breaking change: The Czech, Danish, German, Spanish, Finnish, French, Hungarian, Italian, Norwegian Bokmål, Dutch, Polish, Portuguese, Russian, and Turkish language packs now use the official localized names for
VSTACKandHSTACK. If an existing formula uses the EnglishVSTACKorHSTACKname while one of these language packs is active, update that formula to the localized function name exported by the language pack.
# 3.4.0
Release date: August 10, 2026
# Added
- Added the
getAvailableFunctions()andgetFunctionDetails()instance methods for retrieving function metadata. #1692 (opens new window) - Added new functions: VSTACK, HSTACK. #1698 (opens new window)
- Added a new function:
XIRR. #1701 (opens new window) - Added the UNIQUE function. #1708 (opens new window)
- Added the SORT function. #1707 (opens new window)
- Added an Indonesian (Bahasa Indonesia) language pack. #1674 (opens new window)
- Added a
stringifyCurrencyconfig option that lets you plug in a custom currency formatter for theTEXTfunction. #1145 (opens new window)
# Fixed
- Fixed the behavior of
MATCH,VLOOKUP,HLOOKUP, andXLOOKUPfunctions when the search range contained empty cells. #1697 (opens new window) - Fixed the
VLOOKUP,HLOOKUP, andXLOOKUPfunctions to return0instead of an empty value when the matched cell in the result range is empty. #1697 (opens new window) - Fixed the page freezing when entering a long string of digits containing a non-digit character near the end (e.g.
012...789aor012...789 123) into a cell. #1520 (opens new window)
# 3.3.0
Release date: May 20, 2026
# Added
- Added 12 database functions: DCOUNT, DSUM, DAVERAGE, DMAX, DMIN, DGET, DPRODUCT, DCOUNTA, DSTDEV, DSTDEVP, DVAR, DVARP. #1652 (opens new window)
- Added new functions: PERCENTILE, PERCENTILE.INC, PERCENTILE.EXC, QUARTILE, QUARTILE.INC, QUARTILE.EXC. #1650 (opens new window)
- Added
maxPendingLazyTransformationsconfiguration option to control memory usage by limiting accumulated transformations before cleanup. #1629 (opens new window) - Added a new function: TEXTJOIN. #1640 (opens new window)
- Added a new function: SEQUENCE. #1645 (opens new window)
# Fixed
- Fixed a memory leak in
LazilyTransformingAstServicewhere the transformations array grew unboundedly, causing increasing memory usage over time. #1629 (opens new window) - Fixed a memory leak in
UndoRedowhereoldDataentries for evicted undo stack entries were never cleaned up, causing increasing memory usage over time. #1629 (opens new window) - Fixed the IRR function returning
#NUM!error when the initial investment significantly exceeds the sum of returns. #1628 (opens new window) - Fixed the ADDRESS function ignoring
defaultValuewhen arguments are syntactically empty (e.g.,=ADDRESS(2,3,,FALSE())). #1632 (opens new window)
# 3.2.0
Release date: February 19, 2026
# Added
- Added a new function: IRR. #1591 (opens new window)
- Added a new function: N. #1585 (opens new window)
- Added a new function: VALUE. #1592 (opens new window)
# Fixed
- Fixed
Error Map maximum size exceedederror when loading big spreadsheets. #1602 (opens new window)
# 3.1.1
Release date: December 18, 2025
# Fixed
- Fixed an issue where cells were not recalculated after adding, removing and renaming sheets. #1116 (opens new window)
- Fixed an issue where overwriting a non-computed cell caused the
Value of the formula cell is not computederror. #1194 (opens new window)
# 3.1.0
Release date: October 14, 2025
# Changed
- Renamed the
arraySizeMethodparameter in theFunctionMetadatainterface tosizeOfResultArrayMethod. ThearraySizeMethodis deprecated and will be removed in one of the next major releases. #1401 (opens new window) - Renamed the
arrayFunctionparameter in theFunctionMetadatainterface toenableArrayArithmeticForArguments. ThearrayFunctionis deprecated and will be removed in one of the next major releases. #1401 (opens new window)
# Fixed
- Fixed an issue where the
OFFSETfunction was ignoring the sheet reference in the provided address. #1477 (opens new window)
# 3.0.1
Release date: August 11, 2025
# Fixed
- Fixed
Edge does not existerror when a named expression is used twice in the same formula. #1102 (opens new window) - Fixed typos in the built-in functions guide. #1517 (opens new window)
- Fixed an issue where named expressions added on engine initialization were not updated on changes. #1501 (opens new window)
# 3.0.0
Release date: January 14, 2025
# Added
- Added a new function: XLOOKUP. #1458 (opens new window)
# Changed
- Breaking change: Changed ES module build to use
mjsfiles andexportsproperty inpackage.jsonto make importing language files possible in Node environment. #1344 (opens new window) - Breaking change: Changed the default value of the
precisionRoundingconfiguration option to10. #1300 (opens new window) - Make methods
simpleCellAddressToStringandsimpleCellRangeToStringmore logical and easier to use. #1151 (opens new window)
# Removed
- Breaking change: Removed the
binarySearchThresholdconfiguration option. #1439 (opens new window)
# 2.7.1
Release date: July 18, 2024
# Fixed
- Fixed an issue where adding or removing columns with
DenseStrategyfor address mapping resulted in theCannot read properties of undefined (reading 'splice')error. #1406 (opens new window)
# 2.7.0
Release date: Apr 10, 2024
# Added
- Added method
getNamedExpressionsFromFormulato extract named expressions from formulas. #1365 (opens new window) - Added
contextconfig option for passing data to custom functions. #1396 (opens new window)
# 2.6.2
Release date: Feb 15, 2024
# Changed
- Removed
unormdependency. #1370 (opens new window)
# 2.6.1
Release date: Dec 27, 2023
# Fixed
- Fixed an issue where operating on ranges of incompatible sizes resulted in a runtime exception. #1267 (opens new window)
- Fixed an issue where the
simpleCellAddressFromString()method was crashing when called with a non-ASCII character in an unquoted sheet name. #1312 (opens new window) - Fixed an issue where adding a row to a very large spreadsheet resulted in the
Maximum call stack size exceedederror. #1332 (opens new window) - Fixed an issue where using a column-range reference to an empty sheet as a function argument resulted in the
Incorrect array sizeerror. #1147 (opens new window) - Fixed an issue where the SUBSTITUTE function wasn't working correctly with regex special characters. #1289 (opens new window)
- Fixed a typo in the JSDoc comment of the
HyperFormulaclass. #1323 (opens new window)
# 2.6.0
Release date: Sep 19, 2023
# Added
- Exported the
EmptyValuesymbol as a public API. This allows custom functions to handle empty cell values. #1232 (opens new window)
# Changed
- Improved the efficiency of the default date/time parsing methods. #876 (opens new window)
- Improved the efficiency of the operations on the dependency graph. #876 (opens new window)
# Fixed
- Fixed a bug where neighboring exported changes of an array formula were missing. #1291 (opens new window)
- Fixed a typo in the source code of the
MatrixPlugin. #1306 (opens new window)
# 2.5.0
Release date: May 29, 2023
# Added
- Added a new function: ADDRESS. #1221 (opens new window)
- Added a new function: HYPERLINK. #1215 (opens new window)
- Added a new function: IFS. #1157 (opens new window)
# Changed
- Optimized the
updateConfig()method to rebuild HyperFormula only when the new configuration is different from the old one. #1251 (opens new window)
# Fixed
- Fixed the SEARCH function to be case-insensitive regardless of HyperFormula's configuration. #1225 (opens new window)
# 2.4.0
Release date: April 24, 2023
# Added
- Exported the
CellErrorclass as a public API. #1232 (opens new window) - Exported the
SimpleRangeValueclass as a public API. #1178 (opens new window)
# Fixed
- Fixed an
EmptyCellVertexdata integrity issue between theAddressMappingandDependencyGraphobjects. #1188 (opens new window) - Fixed a build issue with M1- and M2-chip MacBooks. #1166 (opens new window)
- Fixed an issue where the order of items returned by
removeColumns()depended on the address mapping policy. #1205 (opens new window)
# 2.3.1
Release date: March 3, 2023
# Fixed
- Fixed an issue where named-expression names were not allowed to start with a cell reference. #1058 (opens new window)
- Fixed an issue where named-expression names were allowed to start with "R1C1"
cell references. For better compatibility with other spreadsheet software, strings such as
R4C5,RC1000,R1CorRCcan't be used in named-expression names anymore. #1058 (opens new window) - Fixed an issue where using reversed ranges with absolute addressing could cause the
Incorrect array sizeerror. #1106 (opens new window) - Fixed an issue where removing a sheet (
removeSheet()) without clearing it (clearSheet()) could cause an error. #1121 (opens new window)
# 2.3.0
Release date: December 22, 2022
# Added
- Exported the
ArraySizeclass as a public API. #843 (opens new window) - Renamed an internal interface from
ArgumentTypestoFunctionArgumentType, and exported it as a public API. #1108 (opens new window) - Exported
ImplementedFunctionsandFunctionMetadataas public APIs. #1108 (opens new window)
# 2.2.0
Release date: November 17, 2022
# Added
- Added an American English (
enUS) language pack. It's a convenience alias: it contains the same translations as the existing British English (enGB) language pack. #1025 (opens new window)
# Fixed
- Fixed functions VLOOKUP and HLOOKUP to handle duplicates in the way specified by the OpenDocument (opens new window) standard. #1072 (opens new window)
- Fixed the MATCH function to handle descending ranges in the way specified by the OpenDocument (opens new window) standard. #1063 (opens new window)
# 2.1.0
Release date: September 8, 2022
# Added
- Added two new functions: MAXIFS and MINIFS. #1049 (opens new window)
# Changed
- Changed the rounding strategy of the default time-parsing function to be independent of
the
timeFormatsconfiguration option. Now, time values are always rounded to the nearest millisecond (0.001 s). #953 (opens new window)
# Fixed
- Fixed a rounding issue that caused the TEXT function to convert dates and times to strings incorrectly. #1043 (opens new window)
- Fixed an issue where functions SUMIF, SUMIFS, COUNTIF, COUNTIFS, and AVERAGEIF incorrectly handled complex numeric values. #951 (opens new window)
# Removed
- Removed all polyfills from the CommonJS build and the ES modules build. In the UMD build, kept only the polyfills required by the supported browsers (opens new window). #1011 (opens new window)
# 2.0.1
Release date: June 14, 2022
# Changed
- Changed the following npm scripts (used internally):
docs,docs:api,docs:dev,docs:build,coverage,typings:check. #977 (opens new window)
# Fixed
- Fixed an issue where it was impossible to add a custom function with no
parameters. #968 (opens new window)
# 2.0.0
Release date: April 14, 2022
# Added
- Added support for reversed ranges. #834 (opens new window)
- Added a new configuration option,
ignoreWhiteSpace, which allows for parsing formulas that contain whitespace characters of any kind. #898 (opens new window)
# Changed
- Breaking change: Removed the
gpu.jsdependency and its use, to speed up the installation time. #812 (opens new window) - Breaking change: Removed the deprecated
gpujsandgpuModeconfiguration options. #812 (opens new window)
# Fixed
- Fixed an issue where the RATE function didn't converge for some inputs. #905 (opens new window)
# 1.3.1
Release date: January 11, 2022
# Fixed
- Fixed an issue where warnings about deprecated configuration options were getting duplicated. #882 (opens new window)
# 1.3.0
Release date: October 20, 2021
# Added
- Added a new static property:
HyperFormula.defaultConfig. #822 (opens new window) - The
getFillRangeData()method can now use one sheet for its source and another sheet for its target. #836 (opens new window)
# Fixed
- Fixed the handling of Unicode characters and non-letter characters in the PROPER function. #811 (opens new window)
- Fixed unnecessary warnings caused by deprecated configuration options. #830 (opens new window)
- Fixed the SUMPRODUCT function. #810 (opens new window)
# 1.2.0
Release date: September 23, 2021
# Changed
- Removed
gpu.jsfrom optional dependencies and marked config optionsgpujsandgpuModeas deprecated.
# 1.1.0
Release date: August 12, 2021
# Added
- Added support for the array arithmetic mode in the
calculateFormula()method. #782 (opens new window) - Added a new
CellTypereturned bygetCellType:CellType.ARRAYFORMULA. It's assigned to the top-left corner of an array, and is recognized by theisCellPartOfArray()anddoesCellHaveFormula()methods. #781 (opens new window)
# Changed
- Deprecated the
binarySearchThresholdconfiguration option, as every search of sorted data always uses binary search. #791 (opens new window)
# Fixed
- Fixed an issue with searching sorted data. #787 (opens new window)
- Fixed the
destroymethod to properly destroy HyperFormula instances. #788 (opens new window)
# 1.0.0
Release date: July 15, 2021
# Added
- Added support for array arithmetic. #628 (opens new window)
- Added performance improvements for array handling. #629 (opens new window)
- Added ARRAYFORMULA function. #630 (opens new window)
- Added FILTER function. #668 (opens new window)
- Added ARRAY_CONSTRAIN function. #661 (opens new window)
- Added casting to scalars from non-range arrays. #663 (opens new window)
- Added support for range interpolation. #665 (opens new window)
- Added parsing of arrays in formulas (together with respective config options for separators). #671 (opens new window)
- Added support for vectorization of scalar functions. #673 (opens new window)
- Added support for time in JS
Date()objects on the input. #648 (opens new window) - Added validation of API argument types for simple types. #654 (opens new window)
- Added named expression handling to engine factories. #680 (opens new window)
- Added
getAllNamedExpressionsSerializedmethod. #680 (opens new window) - Added parsing of arrays in formulas (together with respective config options for separators). #671 (opens new window)
- Added utility function for filling ranges with source from other range. #678 (opens new window)
- Added pretty print for detailedCellError. #712 (opens new window)
- Added
simpleCellRangeFromStringandsimpleCellRangeToStringhelpers. #720 (opens new window) - Added
CellErrorto exports. #736 (opens new window) - Added mapping policies to the exports:
AlwaysDense,AlwaysSparse,DenseSparseChooseBasedOnThreshold. #747 (opens new window) - Added
#SPILL!error type. #708 (opens new window) - Added large tests for CRUD interactions. #755 (opens new window)
- Added a flag to
getFillRangeDatato support different types of offsetting. #767 (opens new window)
# Changed
- Breaking change: Changed API of many sheet-related methods to take sheetId instead of sheetName as an argument. #645 (opens new window)
- Breaking change: Removed support for matrix formulas (
{=FORMULA}) notation. Engine now supports formulas returning array of values (instead of only scalars). #652 (opens new window) - Breaking change: Removed numeric matrix detection along with matrixDetection and matrixDetectionThreshold config options. #669 (opens new window)
- Breaking change: Changed API of the following methods to take
SimpleCellRangetype argument:copy,cut,getCellDependents,getCellPrecedents,getFillRangeData,getRangeFormulas,getRangeSerialized,getRangeValues,isItPossibleToMoveCells,isItPossibleToSetCellContents,moveCells. #687 (opens new window) - Breaking change: Changed the AGPLv3 license to GPLv3.
- Breaking change: Removed the free non-commercial license.
- Breaking change: Changed behaviour of
setCellContentsso that it is possible to override space occupied by spilled array. #708 (opens new window) - Breaking change: Changed behaviour of
addRows/removeRowsso that it is possible to add/remove rows across spilled array without changing array size. #708 (opens new window) - Breaking change: Changed behaviour of
addColumns/removeColumnsso that it is possible to add/remove columns across spilled array without changing array size. #732 (opens new window) - Breaking change: Changed config options #747 (opens new window):
| before | after |
|---|---|
| matrixColumnSeparator | arrayColumnSeparator |
| matrixRowSeparator | arrayRowSeparator |
- Breaking change: Changed CellType.MATRIX to CellType.ARRAY #747 (opens new window)
- Breaking change: Changed API methods #747 (opens new window):
| before | after |
|---|---|
| matrixMapping | arrrayMapping |
| isCellPartOfMatrix | isCellPartOfArray |
- Breaking change: Changed Exceptions #747 (opens new window):
| before | after |
|---|---|
| SourceLocationHasMatrixError | SourceLocationHasArrayError |
| TargetLocationHasMatrixError | TargetLocationHasArrayError |
- Changed SWITCH function, so it takes array as its first argument.
- Changed TRANSPOSE function, so it works with data of any type. #708 (opens new window)
- Changed the way how we include
gpu.jsmaking it even more optional #753 (opens new window)
# Fixed
- Fixed an issue with arrays and cruds. #651 (opens new window)
- Fixed handling of arrays for ROWS/COLUMNS functions. #677 (opens new window)
- Fixed an issue with nested namedexpressions. #679 (opens new window)
- Fixed an issue with matrixDetection + number parsing. #686 (opens new window)
- Fixed an issue with NOW and TODAY functions. #709 (opens new window)
- Fixed an issue with MIN/MAX function caches. #711 (opens new window)
- Fixed an issue with caching and order of evaluation. #735 (opens new window)
# 0.6.2
Release date: May 26, 2021
# Changed
- Modified a private field in one of the classes to ensure broader compatibility with older TypeScript versions. #681 (opens new window)
# 0.6.1
Release date: May 24, 2021
# Changed
- Remove redundant
'assert'dependency from the code. #672 (opens new window)
# Fixed
- Fixed library support for IE11. The
unormpackage is added to the dependencies. #675 (opens new window)
# 0.6.0
Release date: April 27, 2021
# Added
- Added two new fired events, for suspending and resuming execution. #637 (opens new window)
- Added listing in scopes to
listNamedExpressionsmethod. #638 (opens new window)
# Changed
- Breaking change: Moved
GPU.jsfromdependenciestodevDependenciesandoptionalDependencies. #642 (opens new window)
# Fixed
- Fixed issues with scoped named expression. #646 (opens new window) , #641 (opens new window)
- Fixed an issue with losing formating info about DateTime numbers. #626 (opens new window)
# 0.5.0
Release date: April 15, 2021
# Added
- Added support for row and column reordering. #343 (opens new window)
- Added type inferrence for subtypes for number. #313 (opens new window)
- Added parsing of number literals containing '%' or currency symbol (default '$'). #590 (opens new window)
- Added ability to fallback to plain CPU implementation for functions that uses GPU.js #355 (opens new window)
# Changed
- Breaking change: A change to the type of value returned via serialization methods. #617 (opens new window)
- An input value should be preserved through serialization more precisely. #617 (opens new window)
- GPU.js constructor needs to be provided directly to engine configuration. #355 (opens new window)
- A deprecated config option vlookupThreshold has been removed. #620 (opens new window)
# Fixed
- Fixed minor issue. #631 (opens new window)
- Fixed a bug with serialization of some addresses after CRUDs. #587 (opens new window)
- Fixed a bug with MEDIAN function implementation. #601 (opens new window)
- Fixed a bug with copy-paste operation that could cause out of scope references #591 (opens new window)
- Fixed a bug with date parsing. #614 (opens new window)
- Fixed a bug where accent/case sensitivity was ignored for LOOKUPs. #621 (opens new window)
- Fixed a bug with handling of no time format/no date format scenarios. #616 (opens new window)
# 0.4.0
Release date: December 17, 2020
# Added
- Added 50 mathematical functions: ROMAN, ARABIC, FACT, FACTDOUBLE, COMBIN, COMBINA, GCD, LCM, MROUND, MULTINOMIAL, QUOTIENT, RANDBETWEEN, SERIESSUM, SIGN, SQRTPI, SUMX2MY2, SUMX2PY2, SUMXMY2, CEILING.MATH, FLOOR.MATH, FLOOR, CEILING.PRECISE, FLOOR.PRECISE, ISO.CEILING, COMPLEX, IMABS, IMAGINARY, IMARGUMENT, IMCONJUGATE, IMCOS, IMCOSH, IMCOT, IMCSC, IMCSCH, IMDIV, IMEXP, IMLN, IMLOG10, IMLOG2, IMPOWER, IMPRODUCT, IMREAL, IMSEC, IMSECH, IMSIN, IMSINH, IMSQRT, IMSUB, IMSUM, IMTAN. #537 (opens new window) , #582 (opens new window) , #281 (opens new window) , #581 (opens new window)
- Added 106 statistical functions: EXPON.DIST, EXPONDIST, FISHER, FISHERINV, GAMMA, GAMMA.DIST, GAMMADIST, GAMMALN, GAMMALN.PRECISE, GAMMA.INV, GAMMAINV, GAUSS, BETA.DIST, BETADIST, BETA.INV, BETAINV, BINOM.DIST, BINOMDIST, BINOM.INV, BESSELI, BESSELJ, BESSELK, BESSELY, CHISQ.DIST, CHISQ.DIST.RT, CHISQ.INV, CHISQ.INV.RT, CHIDIST, CHIINV, F.DIST, F.DIST.RT, F.INV, F.INV.RT, FDIST, FINV, WEIBULL, WEIBULL.DIST, HYPGEOMDIST, HYPGEOM.DIST, T.DIST, T.DIST.2T, T.DIST.RT, T.INV, T.INV.2T, TDIST, TINV, LOGNORM.DIST, LOGNORMDIST, LOGNORM.INV, LOGINV, NORM.DIST, NORMDIST, NORM.S.DIST, NORMSDIST, NORM.INV, NORMINV, NORM.S.INV, NORMSINV, PHI, NEGBINOM.DIST, NEGBINOMDIST, POISSON, POISSON.DIST, LARGE, SMALL, AVEDEV, CONFIDENCE, CONFIDENCE.NORM, CONFIDENCE.T, DEVSQ, GEOMEAN, HARMEAN, CRITBINOM, COVAR, COVARIANCE.P, COVARIANCE.S, PEARSON, RSQ, STANDARDIZE, Z.TEST, ZTEST, F.TEST, FTEST, STEYX, SLOPE, CHITEST, CHISQ.TEST, T.TEST, TTEST, SKEW.P, SKEW, WEIBULLDIST, VARS, TINV2T, TDISTRT, TDIST2T, STDEVS, FINVRT, FDISTRT, CHIDISTRT, CHIINVRT, COVARIANCEP, COVARIANCES, LOGNORMINV, POISSONDIST, SKEWP. #152 (opens new window) , #154 (opens new window) , #160 (opens new window)
- Added function aliases mechanism. #569 (opens new window)
- Added support for scientific notation. #579 (opens new window)
- Added support for complex numbers. #281 (opens new window)
# Changed
- A breaking change: CEILING function implementation to be consistent with existing implementations. #582 (opens new window)
# Fixed
- Fixed a problem with dependencies not collected for specific functions. #550 (opens new window) , #549 (opens new window)
- Fixed a minor problem with dependencies under nested parenthesis. #549 (opens new window) , #558 (opens new window)
- Fixed a problem with HLOOKUP/VLOOKUP getting stuck in binary search. #559 (opens new window) , #562 (opens new window)
- Fixed a problem with the logic of dependency resolving. #561 (opens new window) , #563 (opens new window)
- Fixed a minor bug with ATAN2 function. #581 (opens new window)
# 0.3.0
Release date: October 22, 2020
# Added
- Added 9 text functions EXACT, LOWER, UPPER, MID, T, SUBSTITUTE, REPLACE, UNICODE, UNICHAR. #159 (opens new window)
- Added 5 datetime functions: INTERVAL, NETWORKDAYS, NETWORKDAYS.INTL, WORKDAY, WORKDAY.INTL. #153 (opens new window)
- Added 3 information functions HLOOKUP, ROW, COLUMN. #520 (opens new window)
- Added 5 financial functions FVSCHEDULE, NPV, MIRR, PDURATION, XNPV. #542 (opens new window)
- Added 12 statistical functions VAR.P, VAR.S, VARA, VARPA, STDEV.P, STDEV.S, STDEVA, STDEVPA, VARP, VAR, STDEVP, STDEV. #536 (opens new window)
- Added 2 mathematical functions SUBTOTAL, PRODUCT. #536 (opens new window)
- Added 15 operator functions HF.ADD, HF.CONCAT, HF.DIVIDE, HF.EQ, HF.GT, HF.GTE, HF.LT, HF.LTE, HF.MINUS, HF.MULTIPLY, HF.NE, HF.POW, HF.UMINUS, HF.UNARY_PERCENT, HF.UPLUS. #543 (opens new window)
# Fixed
- Fixed multiple issues with VLOOKUP function. #526 (opens new window) and #528 (opens new window)
- Fixed MATCH and INDEX functions compatiblity. #520 (opens new window)
- Fixed issue with config update that does not preserve named expressions. #527 (opens new window)
- Fixed minor issue with arithmetic operations error messages. #532 (opens new window)
# 0.2.0
Release date: September 22, 2020
# Added
- Added 9 text functions LEN, TRIM, PROPER, CLEAN, REPT, RIGHT, LEFT, SEARCH, FIND. #221 (opens new window)
- Added helper methods for keeping track of cell/range dependencies:
getCellPrecedentsandgetCellDependents. #441 (opens new window) - Added 22 financial functions FV, PMT, PPMT, IPMT, CUMIPMT, CUMPRINC, DB, DDB, DOLLARDE, DOLLARFR, EFFECT, ISPMT, NOMINAL, NPER, RATE, PV, RRI, SLN, SYD, TBILLEQ, TBILLPRICE, TBILLYIELD. #494 (opens new window)
- Added FORMULATEXT function. #422 (opens new window)
- Added 8 information functions ISERR, ISNA, ISREF, NA, SHEET, SHEETS, ISBINARY, ISFORMULA. #481 (opens new window)
- Added 15 date functions: WEEKDAY, DATEVALUE, HOUR, MINUTE, SECOND, TIME, TIMEVALUE, NOW, TODAY, EDATE, WEEKNUM, ISOWEEKNUM, DATEDIF, DAYS360, YEARFRAC. #483 (opens new window)
- Added 13 trigonometry functions: SEC, CSC, SINH, COSH, TANH, COTH, SECH, CSCH, ACOT, ASINH, ACOSH, ATANH, ACOTH. #485 (opens new window)
- Added 6 engineering functions: OCT2BIN, OCT2DEC, OCT2HEX, HEX2BIN, HEX2OCT, HEX2DEC. #497 (opens new window)
- Added a configuration option to evaluate reference to an empty cells as a zero. #476 (opens new window)
- Added new error type: missing licence. #306 (opens new window)
- Added detailed error messages for error values. #506 (opens new window)
- Added ability to handle more characters in quoted sheet names. #509 (opens new window)
- Added support for escaping apostrophe character in quoted sheet names. #64 (opens new window)
# Changed
- Operation
moveCellscreating cyclic dependencies does not cause losing original formula. #479 (opens new window) - Simplified adding new function modules, reworked (simplified) implementations of existing modules. #480 (opens new window)
# Fixed
- Fixed hardcoding of languages in i18n tests. #471 (opens new window)
- Fixed many compilation warnings based on LGTM analysis. #473 (opens new window)
- Fixed
moveCellsbehaviour when moving part of a range. #479 (opens new window) - Fixed
moveColumns/moveRowsinconsistent behaviour. #479 (opens new window) - Fixed undo of
moveColumns/moveRowsoperations. #479 (opens new window) - Fixed name-collision issue in translations. #486 (opens new window)
- Fixed bug in concatenation +
nullValue. #495 (opens new window) - Fixed bug when undoing irreversible operation. #502 (opens new window)
- Fixed minor issue with CHAR function logic. #510 (opens new window)
- Fixed
simpleCellAddressToStringbehaviour when converting quoted sheet names. #514 (opens new window) - Fixed issues with numeric aggregation functions. #515 (opens new window)
# 0.1.3
Release date: July 21, 2020
# Fixed
- Fixed a bug in coercion of empty string to boolean value. #453 (opens new window)
# 0.1.2
Release date: July 13, 2020
# Fixed
- Fixed a bug in topological ordering module. #442 (opens new window)
# 0.1.1
Release date: July 1, 2020
# Fixed
- Fixed a typo in a config option from
useRegularExpresssionstouseRegularExpressions. #437 (opens new window)
# 0.1.0
Alpha release date: June 25, 2020 🎉
- Core functionality of the engine
- Support for data types: String, Error, Number, Date, Time, DateTime, Duration, Distinct Logical
- Support for logical operators: =, <>, >, <, >=, <=
- Support for arithmetic operators: +, -, *, /, %
- Support for text operator: &
- CRUD operations:
- modifying the value of a single cell
- adding/deleting row/column
- reading the value or formula from the selected cell
- moving a cell or a block of cells
- deleting a subset of rows or columns
- recalculating and refreshing of a worksheet
- batching CRUD operations
- support for wildcards and regex inside criterion functions like SUMIF, COUNTIF
- named expressions support
- support for cut, copy, paste
- undo/redo support
- The following functions: ABS(), ACOS(), AND(), ASIN(), ATAN(), ATAN2(), AVERAGE(), AVERAGEA(), AVERAGEIF(), BASE(), BIN2DEC(), BIN2HEX()BIN2OCT(), BITAND(), BITLSHIFT(), BITOR(), BITRSHIFT(), BITXOR(), CEILING(), CHAR(), CHOOSE(), CODE(), COLUMNS(), CONCATENATE(), CORREL(), COS(), COT(), COUNT(), COUNTA(), COUNTBLANK(), COUNTIF(), COUNTIFS(), COUNTUNIQUE(), DATE(), DAY(), DAYS(), DEC2BIN(), DEC2HEX(), DEC2OCT(), DECIMAL(), DEGREES(), DELTA(), E(), EOMONTH(), ERF(), ERFC(), EVEN(), EXP(), FALSE(), IF(), IFERROR(), IFNA(), INDEX(), INT(), ISBLANK(), ISERROR(), ISEVEN(), ISLOGICAL(), ISNONTEXT(), ISNUMBER(), ISODD(), ISTEXT(), LN(), LOG(), LOG10(), MATCH(), MAX(), MAXA(), MAXPOOL(), MEDIAN(), MEDIANPOOL(), MIN(), MINA(), MMULT(), MOD(), MONTH(), NOT(), ODD(), OFFSET(), OR(), PI(), POWER(), RADIANS() , RAND(), ROUND(), ROUNDDOWN(), ROUNDUP(), ROWS(), SIN(), SPLIT(), SQRT(), SUM(), SUMIF(), SUMIFS(), SUMPRODUCT(), SUMSQ(), SWITCH(), TAN(), TEXT(), TRANSPOSE(), TRUE(), TRUNC(), VLOOKUP(), XOR(), YEAR()
- Support for volatile functions
- Cultures supports - can be configured according to the application need
- Custom functions support
- Set OpenDocument v1.2 (opens new window) as a standard to follow
- Error handling:
- Division by zero: #DIV/0!
- Unknown function name: #NAME?
- Wrong type of argument in a function or wrong type of operator: #VALUE!
- Invalid numeric values: #NUM!
- No value available: #N/A
- Cyclic dependency: #CYCLE!
- Wrong address reference: #REF
- Built-in function translation support for 16 languages: English, Czech, Danish, Dutch, Finnish, French, German, Hungarian, Italian, Norwegian, Polish, Portuguese, Russian, Spanish, Swedish, Turkish.