hyperformula

HyperFormula is an open-source headless spreadsheet for business web apps. It comes with over 400 formulas, CRUD operations, undo-redo, clipboard support, and sorting. Built in TypeScript, supported by the Handsontable Team.

GPL-3.0 License

Downloads
286.2K
Stars
1.7K
Committers
27

Bot releases are visible (Hide)

hyperformula - Latest Release

Published by sequba 6 months ago

Added

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

Published by sequba 8 months ago

Changed

  • Removed unorm dependency. #1370
hyperformula - 2.6.1

Published by sequba 10 months ago

Fixed

  • 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
hyperformula -

Published by sequba about 1 year ago

Added

  • Exported the EmptyValue symbol as a public API. This allows custom functions to handle empty cell
    values. #1232

Changed

  • Improved the efficiency of the default date/time parsing
    methods. #876
  • Improved the efficiency of the operations on the dependency
    graph. #876

Fixed

  • Fixed a bug where neighboring exported changes of an array formula were
    missing. #1291
hyperformula -

Published by sequba over 1 year ago

Added

  • Added a new function: ADDRESS. #1221
  • Added a new function: HYPERLINK. #1215
  • Added a new function: IFS. #1157

Changed

  • Optimized the updateConfig() method to rebuild HyperFormula only when the new configuration is different from the old one. #1251

Fixed

  • Fixed the SEARCH function to be case-insensitive regardless of HyperFormula's configuration. #1225
hyperformula -

Published by sequba over 1 year ago

Added

Fixed

  • 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
hyperformula -

Published by sequba over 1 year ago

Fixed

  • Fixed an issue where expression names were not allowed to start with a cell
    reference. #1058
  • Fixed an issue where expression names were allowed to start with R1C1-notation
    references. For better compatibility with other spreadsheet software, strings
    such as R4C5, RC1000, R1C or RC can't be used in 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
hyperformula -

Published by sequba almost 2 years ago

Added

  • 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
hyperformula -

Published by sequba almost 2 years ago

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

Fixed

  • 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
hyperformula -

Published by sequba about 2 years ago

Added

  • Added two new functions: MAXIFS and MINIFS. #1049

Changed

  • 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

  • Fixed a rounding issue that caused the TEXT function to incorrectly convert dates and times to strings. #1043
  • Fixed an issue where functions SUMIF, SUMIFS, COUNTIF, COUNTIFS, and AVERAGEIF incorrectly handled complex numeric values. #951

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. #1011
hyperformula -

Published by sequba over 2 years ago

Changed

  • Changed the following npm scripts (used internally): docs, docs:api, docs:dev, docs:build, coverage, typings:check. #977

Fixed

  • Fixed an issue where it was impossible to add a custom function with no parameters. #968
hyperformula -

Published by jansiegel over 2 years ago

For more information on this release, see:

Added

  • 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

Changed

  • 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

  • Fixed an issue where the RATE function didn't converge for some inputs. #905
hyperformula -

Published by jansiegel almost 3 years ago

Fixed

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

Published by jansiegel almost 3 years ago

Added

  • Added a new static property: defaultConfig. (#822)
  • The getFillRangeData() method can now use one sheet for its source and another sheet for its target. (#836)

Fixed

  • 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)
hyperformula -

Published by jansiegel about 3 years ago

Changed

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

Published by jansiegel about 3 years ago

Changed

  • Deprecated the binarySearchThreshold configuration option, as every search of sorted data always uses binary search. (#791)

Added

  • 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)

Fixed

  • Fixed an issue with searching sorted data. (#787)
  • Fixed the destroy method to properly destroy HyperFormula instances. (#788)
hyperformula -

Published by jansiegel over 3 years ago

Changed

  • 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

Added

  • 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

Fixed

  • 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
hyperformula -

Published by jansiegel over 3 years ago

Changed

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

Published by jansiegel over 3 years ago

Changed

  • Remove redundant 'assert' dependency from the code. (#672)

Fixed

  • Fixed library support for IE11. The unorm package is added to the dependencies. (#675)
hyperformula -

Published by jansiegel over 3 years ago

Changed

  • Breaking change: Moved GPU.js from dependencies to devDependencies and optionalDependencies. (#642)

Added

  • Added two new fired events, for suspending and resuming execution. (#637)
  • Added listing in scopes to listNamedExpressions method. (#638)

Fixed

  • Fixed issues with scoped named expression. (#646, #641)
  • Fixed an issue with losing formating info about DateTime numbers. (#626)