Skip to content

This page lists HyperFormula release notes. The format is based on Keep a Changelog.

HyperFormula adheres to Semantic Versioning.

Release date: October 9, 2026

  • Added support for the new license key format. A proprietary key can now grant a subset of the library: a function your key does not include evaluates to a #LIC! error, and the matching parts of the API throw a LicenseCapabilityMissingError. getAvailableFunctions() and getFunctionDetails() describe only the functions your key includes. #1728
  • Changed the VERSION function to return only the HyperFormula version (e.g. HyperFormula v3.4.0), without the license key status. #1728
  • Changed the API methods gated by the license key to throw a LicenseCapabilityMissingError when the key is missing or invalid, when a classic key has expired, or when a trial key is past its grace period. The gated methods are the ones that edit cells, rows, columns, and sheets, copy(), cut(), paste(), undo(), redo(), batch(), suspendEvaluation(), and the methods that add, change, or remove named expressions. Building an engine with named expressions throws the same error, and the matching isItPossibleTo*() methods, isThereSomethingToUndo(), and isThereSomethingToRedo() return false. #1728
  • Changed the MAXPOOL and MEDIANPOOL functions to accept a stride greater than the window size in a cell, where they returned the #VALUE! error before. The windows then skip the rows and columns between them, as calculateFormula() already did. #1718
  • Fixed the validation of classic (25-character) license keys depending on the time zone: east of UTC, a key that expired the day before the build was released was still accepted, and west of UTC, the console message printed an expiry date one day too early. #1728
  • Fixed the AVERAGEIF function returning a division-by-zero error when the calculated average was 0. #1733
  • Fixed the localized names of VSTACK and HSTACK in 14 language packs to match Microsoft Excel. #1748
  • Fixed the MAXPOOL and MEDIANPOOL functions throwing an uncaught TypeError or RangeError. They now return the #VALUE! error when the window is larger than the range or the range dimensions, reduced by the window size, are not whole multiples of the stride, and the #NUM! error when the window size or the stride is not a positive integer. #1718
  • Fixed the VAR, STDEV, DEVSQ, COVARIANCE.P, COVARIANCE.S, SLOPE, STEYX, DVAR and DSTDEV functions, their variants, and the matching SUBTOTAL modes losing precision on data with a large mean and a small spread. #1784
  • Fixed a bug where SLOPE and STEYX returned #NUM! or an arbitrary number instead of #DIV/0! when all the x values are equal. #1784
  • Fixed a bug where STEYX returned #NUM! or 0 instead of the standard error for points that lie almost on a line. #1784
  • Fixed a bug where VAR, STDEV, DVAR, DSTDEV, COVARIANCE.P, COVARIANCE.S, SLOPE, STEYX, their variants, and the matching SUBTOTAL modes returned an error or 0 for very large or very small values although the result was within the range of numbers, and DEVSQ returned 0 for very small values. #1784
  • Fixed the MOD function returning a remainder with the sign of the dividend instead of the sign of the divisor, which made the results differ from Excel and Google Sheets for arguments with opposite signs (e.g. =MOD(-3, 12) now returns 9 instead of -3). #1747
  • Fixed a bug where moving or pasting a formula with an undefined name to another sheet incorrectly added an empty global named expression. #1728

Release date: August 10, 2026

  • Added the getAvailableFunctions() and getFunctionDetails() instance methods for retrieving function metadata. #1692
  • Added new functions: VSTACK, HSTACK. #1698
  • Added a new function: XIRR. #1701
  • Added the UNIQUE function. #1708
  • Added the SORT function. #1707
  • Added an Indonesian (Bahasa Indonesia) language pack. #1674
  • Added a stringifyCurrency config option that lets you plug in a custom currency formatter for the TEXT function. #1145
  • Fixed the behavior of MATCH, VLOOKUP, HLOOKUP, and XLOOKUP functions when the search range contained empty cells. #1697
  • Fixed the VLOOKUP, HLOOKUP, and XLOOKUP functions to return 0 instead of an empty value when the matched cell in the result range is empty. #1697
  • Fixed the page freezing when entering a long string of digits containing a non-digit character near the end (e.g. 012...789a or 012...789 123) into a cell. #1520

Release date: May 20, 2026

  • Added 12 database functions: DCOUNT, DSUM, DAVERAGE, DMAX, DMIN, DGET, DPRODUCT, DCOUNTA, DSTDEV, DSTDEVP, DVAR, DVARP. #1652
  • Added new functions: PERCENTILE, PERCENTILE.INC, PERCENTILE.EXC, QUARTILE, QUARTILE.INC, QUARTILE.EXC. #1650
  • Added maxPendingLazyTransformations configuration option to control memory usage by limiting accumulated transformations before cleanup. #1629
  • Added a new function: TEXTJOIN. #1640
  • Added a new function: SEQUENCE. #1645
  • Fixed a memory leak in LazilyTransformingAstService where the transformations array grew unboundedly, causing increasing memory usage over time. #1629
  • Fixed a memory leak in UndoRedo where oldData entries for evicted undo stack entries were never cleaned up, causing increasing memory usage over time. #1629
  • Fixed the IRR function returning #NUM! error when the initial investment significantly exceeds the sum of returns. #1628
  • Fixed the ADDRESS function ignoring defaultValue when arguments are syntactically empty (e.g., =ADDRESS(2,3,,FALSE())). #1632

Release date: February 19, 2026

  • Added a new function: IRR. #1591
  • Added a new function: N. #1585
  • Added a new function: VALUE. #1592
  • Fixed Error Map maximum size exceeded error when loading big spreadsheets. #1602

Release date: December 18, 2025

  • Fixed an issue where cells were not recalculated after adding, removing and renaming sheets. #1116
  • Fixed an issue where overwriting a non-computed cell caused the Value of the formula cell is not computed error. #1194

Release date: October 14, 2025

  • Renamed the arraySizeMethod parameter in the FunctionMetadata interface to sizeOfResultArrayMethod. The arraySizeMethod is deprecated and will be removed in one of the next major releases. #1401
  • Renamed the arrayFunction parameter in the FunctionMetadata interface to enableArrayArithmeticForArguments. The arrayFunction is deprecated and will be removed in one of the next major releases. #1401
  • Fixed an issue where the OFFSET function was ignoring the sheet reference in the provided address. #1477

Release date: August 11, 2025

  • Fixed Edge does not exist error when a named expression is used twice in the same formula. #1102
  • Fixed typos in the built-in functions guide. #1517
  • Fixed an issue where named expressions added on engine initialization were not updated on changes. #1501

Release date: January 14, 2025

  • Added a new function: XLOOKUP. #1458
  • Breaking change: Changed ES module build to use mjs files and exports property in package.json to make importing language files possible in Node environment. #1344
  • Breaking change: Changed the default value of the precisionRounding configuration option to 10. #1300
  • Make methods simpleCellAddressToString and simpleCellRangeToString more logical and easier to use. #1151
  • Breaking change: Removed the binarySearchThreshold configuration option. #1439

Release date: July 18, 2024

  • Fixed an issue where adding or removing columns with DenseStrategy for address mapping resulted in the Cannot read properties of undefined (reading 'splice') error. #1406

Release date: Apr 10, 2024

  • Added method getNamedExpressionsFromFormula to extract named expressions from formulas. #1365
  • Added context config option for passing data to custom functions. #1396

Release date: Feb 15, 2024

  • Removed unorm dependency. #1370

Release date: Dec 27, 2023

  • Fixed an issue where operating on ranges of incompatible sizes resulted in a runtime exception. #1267
  • Fixed an issue where the simpleCellAddressFromString() method was crashing when called with a non-ASCII character in an unquoted sheet name. #1312
  • Fixed an issue where adding a row to a very large spreadsheet resulted in the Maximum call stack size exceeded error. #1332
  • Fixed an issue where using a column-range reference to an empty sheet as a function argument resulted in the Incorrect array size error. #1147
  • Fixed an issue where the SUBSTITUTE function wasn’t working correctly with regex special characters. #1289
  • Fixed a typo in the JSDoc comment of the HyperFormula class. #1323

Release date: Sep 19, 2023

  • Exported the EmptyValue symbol as a public API. This allows custom functions to handle empty cell values. #1232
  • Improved the efficiency of the default date/time parsing methods. #876
  • Improved the efficiency of the operations on the dependency graph. #876
  • Fixed a bug where neighboring exported changes of an array formula were missing. #1291
  • Fixed a typo in the source code of the MatrixPlugin. #1306

Release date: May 29, 2023

  • Added a new function: ADDRESS. #1221
  • Added a new function: HYPERLINK. #1215
  • Added a new function: IFS. #1157
  • Optimized the updateConfig() method to rebuild HyperFormula only when the new configuration is different from the old one. #1251
  • Fixed the SEARCH function to be case-insensitive regardless of HyperFormula’s configuration. #1225

Release date: April 24, 2023

  • Fixed an EmptyCellVertex data integrity issue between the AddressMapping and DependencyGraph objects. #1188
  • Fixed a build issue with M1- and M2-chip MacBooks. #1166
  • Fixed an issue where the order of items returned by removeColumns() depended on the address mapping policy. #1205

Release date: March 3, 2023

  • Fixed an issue where named-expression names were not allowed to start with a cell reference. #1058
  • 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, R1C or RC can’t be used in named-expression names anymore. #1058
  • Fixed an issue where using reversed ranges with absolute addressing could cause the Incorrect array size error. #1106
  • Fixed an issue where removing a sheet (removeSheet()) without clearing it (clearSheet()) could cause an error. #1121

Release date: December 22, 2022

  • Exported the ArraySize class as a public API. #843
  • Renamed an internal interface from ArgumentTypes to FunctionArgumentType, and exported it as a public API. #1108
  • Exported ImplementedFunctions and FunctionMetadata as public APIs. #1108

Release date: November 17, 2022

  • 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
  • Fixed functions VLOOKUP and HLOOKUP to handle duplicates in the way specified by the OpenDocument standard. #1072
  • Fixed the MATCH function to handle descending ranges in the way specified by the OpenDocument standard. #1063

Release date: September 8, 2022

  • Added two new functions: MAXIFS and MINIFS. #1049
  • Changed the rounding strategy of the default time-parsing function to be independent of the timeFormats configuration option. Now, time values are always rounded to the nearest millisecond (0.001 s). #953
  • Fixed a rounding issue that caused the TEXT function to convert dates and times to strings incorrectly. #1043
  • Fixed an issue where functions SUMIF, SUMIFS, COUNTIF, COUNTIFS, and AVERAGEIF incorrectly handled complex numeric values. #951
  • 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. #1011

Release date: June 14, 2022

  • Changed the following npm scripts (used internally): docs, docs:api, docs:dev, docs:build, coverage, typings:check. #977
  • Fixed an issue where it was impossible to add a custom function with no parameters. #968

Release date: April 14, 2022

  • Added support for reversed ranges. #834
  • Added a new configuration option, ignoreWhiteSpace, which allows for parsing formulas that contain whitespace characters of any kind. #898
  • Breaking change: Removed the gpu.js dependency and its use, to speed up the installation time. #812
  • Breaking change: Removed the deprecated gpujs and gpuMode configuration options. #812
  • Fixed an issue where the RATE function didn’t converge for some inputs. #905

Release date: January 11, 2022

  • Fixed an issue where warnings about deprecated configuration options were getting duplicated. #882

Release date: October 20, 2021

  • Fixed the handling of Unicode characters and non-letter characters in the PROPER function. #811
  • Fixed unnecessary warnings caused by deprecated configuration options. #830
  • Fixed the SUMPRODUCT function. #810

Release date: September 23, 2021

  • Removed gpu.js from optional dependencies and marked config options gpujs and gpuMode as deprecated.

Release date: August 12, 2021

  • Added support for the array arithmetic mode in the calculateFormula() method. #782
  • Added a new CellType returned by getCellType: CellType.ARRAYFORMULA. It’s assigned to the top-left corner of an array, and is recognized by the isCellPartOfArray() and doesCellHaveFormula() methods. #781
  • Deprecated the binarySearchThreshold configuration option, as every search of sorted data always uses binary search. #791
  • Fixed an issue with searching sorted data. #787
  • Fixed the destroy method to properly destroy HyperFormula instances. #788

Release date: July 15, 2021

  • Added support for array arithmetic. #628
  • Added performance improvements for array handling. #629
  • Added ARRAYFORMULA function. #630
  • Added FILTER function. #668
  • Added ARRAY_CONSTRAIN function. #661
  • Added casting to scalars from non-range arrays. #663
  • Added support for range interpolation. #665
  • Added parsing of arrays in formulas (together with respective config options for separators). #671
  • Added support for vectorization of scalar functions. #673
  • Added support for time in JS Date() objects on the input. #648
  • Added validation of API argument types for simple types. #654
  • Added named expression handling to engine factories. #680
  • Added getAllNamedExpressionsSerialized method. #680
  • Added parsing of arrays in formulas (together with respective config options for separators). #671
  • Added utility function for filling ranges with source from other range. #678
  • Added pretty print for detailedCellError. #712
  • Added simpleCellRangeFromString and simpleCellRangeToString helpers. #720
  • Added CellError to exports. #736
  • Added mapping policies to the exports: AlwaysDense, AlwaysSparse, DenseSparseChooseBasedOnThreshold. #747
  • Added #SPILL! error type. #708
  • Added large tests for CRUD interactions. #755
  • Added a flag to getFillRangeData to support different types of offsetting. #767
  • Breaking change: Changed API of many sheet-related methods to take sheetId instead of sheetName as an argument. #645
  • Breaking change: Removed support for matrix formulas ({=FORMULA}) notation. Engine now supports formulas returning array of values (instead of only scalars). #652
  • Breaking change: Removed numeric matrix detection along with matrixDetection and matrixDetectionThreshold config options. #669
  • Breaking change: Changed API of the following methods to take SimpleCellRange type argument: copy, cut, getCellDependents, getCellPrecedents, getFillRangeData, getRangeFormulas, getRangeSerialized, getRangeValues, isItPossibleToMoveCells, isItPossibleToSetCellContents, moveCells. #687
  • Breaking change: Changed the AGPLv3 license to GPLv3.
  • Breaking change: Removed the free non-commercial license.
  • Breaking change: Changed behaviour of setCellContents so that it is possible to override space occupied by spilled array. #708
  • Breaking change: Changed behaviour of addRows/removeRows so that it is possible to add/remove rows across spilled array without changing array size. #708
  • Breaking change: Changed behaviour of addColumns/removeColumns so that it is possible to add/remove columns across spilled array without changing array size. #732
  • Breaking change: Changed config options #747:
before after
matrixColumnSeparator arrayColumnSeparator
matrixRowSeparator arrayRowSeparator
  • Breaking change: Changed CellType.MATRIX to CellType.ARRAY #747
  • Breaking change: Changed API methods #747:
before after
matrixMapping arrrayMapping
isCellPartOfMatrix isCellPartOfArray
  • Breaking change: Changed Exceptions #747:
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
  • Changed the way how we include gpu.js making it even more optional #753
  • Fixed an issue with arrays and cruds. #651
  • Fixed handling of arrays for ROWS/COLUMNS functions. #677
  • Fixed an issue with nested namedexpressions. #679
  • Fixed an issue with matrixDetection + number parsing. #686
  • Fixed an issue with NOW and TODAY functions. #709
  • Fixed an issue with MIN/MAX function caches. #711
  • Fixed an issue with caching and order of evaluation. #735

Release date: May 26, 2021

  • Modified a private field in one of the classes to ensure broader compatibility with older TypeScript versions. #681

Release date: May 24, 2021

  • Remove redundant 'assert' dependency from the code. #672
  • Fixed library support for IE11. The unorm package is added to the dependencies. #675

Release date: April 27, 2021

  • Added two new fired events, for suspending and resuming execution. #637
  • Added listing in scopes to listNamedExpressions method. #638
  • Breaking change: Moved GPU.js from dependencies to devDependencies and optionalDependencies. #642
  • Fixed issues with scoped named expression. #646 , #641
  • Fixed an issue with losing formating info about DateTime numbers. #626

Release date: April 15, 2021

  • Added support for row and column reordering. #343
  • Added type inferrence for subtypes for number. #313
  • Added parsing of number literals containing ‘%’ or currency symbol (default ‘$’). #590
  • Added ability to fallback to plain CPU implementation for functions that uses GPU.js #355
  • Breaking change: A change to the type of value returned via serialization methods. #617
  • An input value should be preserved through serialization more precisely. #617
  • GPU.js constructor needs to be provided directly to engine configuration. #355
  • A deprecated config option vlookupThreshold has been removed. #620
  • Fixed minor issue. #631
  • Fixed a bug with serialization of some addresses after CRUDs. #587
  • Fixed a bug with MEDIAN function implementation. #601
  • Fixed a bug with copy-paste operation that could cause out of scope references #591
  • Fixed a bug with date parsing. #614
  • Fixed a bug where accent/case sensitivity was ignored for LOOKUPs. #621
  • Fixed a bug with handling of no time format/no date format scenarios. #616

Release date: December 17, 2020

  • 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 , #582 , #281 , #581
  • 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 , #154 , #160
  • Added function aliases mechanism. #569
  • Added support for scientific notation. #579
  • Added support for complex numbers. #281
  • A breaking change: CEILING function implementation to be consistent with existing implementations. #582
  • Fixed a problem with dependencies not collected for specific functions. #550 , #549
  • Fixed a minor problem with dependencies under nested parenthesis. #549 , #558
  • Fixed a problem with HLOOKUP/VLOOKUP getting stuck in binary search. #559 , #562
  • Fixed a problem with the logic of dependency resolving. #561 , #563
  • Fixed a minor bug with ATAN2 function. #581

Release date: October 22, 2020

  • Added 9 text functions EXACT, LOWER, UPPER, MID, T, SUBSTITUTE, REPLACE, UNICODE, UNICHAR. #159
  • Added 5 datetime functions: INTERVAL, NETWORKDAYS, NETWORKDAYS.INTL, WORKDAY, WORKDAY.INTL. #153
  • Added 3 information functions HLOOKUP, ROW, COLUMN. #520
  • Added 5 financial functions FVSCHEDULE, NPV, MIRR, PDURATION, XNPV. #542
  • Added 12 statistical functions VAR.P, VAR.S, VARA, VARPA, STDEV.P, STDEV.S, STDEVA, STDEVPA, VARP, VAR, STDEVP, STDEV. #536
  • Added 2 mathematical functions SUBTOTAL, PRODUCT. #536
  • 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
  • Fixed multiple issues with VLOOKUP function. #526 and #528
  • Fixed MATCH and INDEX functions compatiblity. #520
  • Fixed issue with config update that does not preserve named expressions. #527
  • Fixed minor issue with arithmetic operations error messages. #532

Release date: September 22, 2020

  • Added 9 text functions LEN, TRIM, PROPER, CLEAN, REPT, RIGHT, LEFT, SEARCH, FIND. #221
  • Added helper methods for keeping track of cell/range dependencies: getCellPrecedents and getCellDependents. #441
  • 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
  • Added FORMULATEXT function. #422
  • Added 8 information functions ISERR, ISNA, ISREF, NA, SHEET, SHEETS, ISBINARY, ISFORMULA. #481
  • Added 15 date functions: WEEKDAY, DATEVALUE, HOUR, MINUTE, SECOND, TIME, TIMEVALUE, NOW, TODAY, EDATE, WEEKNUM, ISOWEEKNUM, DATEDIF, DAYS360, YEARFRAC. #483
  • Added 13 trigonometry functions: SEC, CSC, SINH, COSH, TANH, COTH, SECH, CSCH, ACOT, ASINH, ACOSH, ATANH, ACOTH. #485
  • Added 6 engineering functions: OCT2BIN, OCT2DEC, OCT2HEX, HEX2BIN, HEX2OCT, HEX2DEC. #497
  • Added a configuration option to evaluate reference to an empty cells as a zero. #476
  • Added new error type: missing licence. #306
  • Added detailed error messages for error values. #506
  • Added ability to handle more characters in quoted sheet names. #509
  • Added support for escaping apostrophe character in quoted sheet names. #64
  • Operation moveCells creating cyclic dependencies does not cause losing original formula. #479
  • Simplified adding new function modules, reworked (simplified) implementations of existing modules. #480
  • Fixed hardcoding of languages in i18n tests. #471
  • Fixed many compilation warnings based on LGTM analysis. #473
  • Fixed moveCells behaviour when moving part of a range. #479
  • Fixed moveColumns/moveRows inconsistent behaviour. #479
  • Fixed undo of moveColumns/moveRows operations. #479
  • Fixed name-collision issue in translations. #486
  • Fixed bug in concatenation + nullValue. #495
  • Fixed bug when undoing irreversible operation. #502
  • Fixed minor issue with CHAR function logic. #510
  • Fixed simpleCellAddressToString behaviour when converting quoted sheet names. #514
  • Fixed issues with numeric aggregation functions. #515

Release date: July 21, 2020

  • Fixed a bug in coercion of empty string to boolean value. #453

Release date: July 13, 2020

  • Fixed a bug in topological ordering module. #442

Release date: July 1, 2020

  • Fixed a typo in a config option from useRegularExpresssions to useRegularExpressions. #437

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 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.