Go Further with Advanced JavaScript Spreadsheet Calculations and Formulas


One of the most significant benefits of using spreadsheets in your JavaScript applications is the extensive support of the calculation engine features. SpreadJS provides the most comprehensive formula support for your most demanding calculation needs to help create analysis, budgeting, dashboard, data collection and management, scientific, and financial applications. SpreadJS offers a complete function library that includes Database, Date and Time, Engineering, Financial, Information, Logical, Lookup, Math and Trigonometry, Statistical, Text and Volatile functions, dynamic arrays and custom user defined functions that are optimized for big data, complex calculations, and advanced Excel models.

JavaScript Spreadsheet Calculation Features

Iterative Calculations

Iterative calculations, also known as circular references, can help with finding solutions to certain calculations by running them over and over using the previous result. With this new user-requested feature, you can do things like find the future value of an investment at a certain month or provide an automatic time stamp in your files. You can now perform what-if analysis with the CalcEngine.goalSeek function, which uses iterative calculations in SpreadJS.

500+ Built-In Functions

Build advanced formulas using Spread's powerful calculation engine. SpreadJS supports over 500 functions. You can use A1 Notation, R1C1 Notation, or Relative/Absolute referencing.

Excel-Like Indirect Function

The INDIRECT function returns the reference specified by a text string. INDIRECT supports A1-style reference, R1C1-style reference, named reference, or a reference to a cell as a text string.

Dynamic and Spilled Arrays

The dynamic array support is used to replace the array formula. Formulas with the potential to return multiple results refer to a dynamic array formula. Formulas currently returning many results are referred to as spilled array formulas.

Language Packages

SpreadJS provides localized calculation engine language packages that allow the user to enter formulas in their local languages. For example, 'SUM' will change to 'SOMME' in French.

Wildcard Functions

SpreadJS supports the use of wildcards in functions “*” substitutes any number of characters, “?” represents/substitutes one character, and “~” identifies a literal question mark or asterisk character in the text string itself.

Custom Functions

In addition to the 500+ built-in functions, the SpreadJS Calc Engine also allows you to create your own custom functions for specific business use cases. They can be defined and called as you would any of the built-in functions.

Formula Auditing

SpreadJS provides extensive support for formula auditing, allowing users to display relationships between formulas and cells by tracing the precedent and dependent cells in the worksheet.

Array Formulas

Array formulas, often referred to as CSE (Ctrl+Shift+Enter) formulas, accept array arguments and return array values.

Aggregate Function

The AGGREGATE function supports 19 aggregate calculation and function options, including AVERAGE, COUNT, COUNTA, MAX, MIN, PRODUCT, SUM, VAR.S, VAR.P, MEDIAN, MODE.SNGL, LARGE, SMALL, PERCENTILE.INC., and more.


Use the built-in Excel-like filter dialog to allow your users to automatically filter their data or take advantage of creating custom filters to show and hide the relevant data as per your applications needs.


The RANDARRAY function returns an array of random numbers. Users can specify the number of rows and columns to fill, minimum and maximum values, and whether to return whole numbers or decimal values.


The SEQUENCE function generates a list of sequential numbers in an array, such as 1, 2, 3, 4.

SORT Function

The SORT function returns a sorted array of the elements in an array. The returned array is the same shape as the provided array argument.

SORTBY Function

The SORTBY function sorts the contents of a range or array based on the values in a corresponding range or array.

UNIQUE Function

The UNIQUE function returns a list of unique values in a list or range. For example

=UNIQUE(array, by_col?, occurs_once?).

RegEx Functions

RegEx functions, short for regular expression functions, are powerful tools that enable users to search for and manipulate text based on a specified pattern. The SpreadJS's RegEx functions REGEXEXTRACT, REGEXMATCH, and REGEXREPLACE helps easily automate tasks, validate user input, and perform complex text manipulation operations.

@ Implicit Intersection Operator

The intersection operator returns the value from an array that intersects with the cell using the operator.

Execute Asynchronous Functions

Use the AsyncFunction to evaluate long-running asynchronous functions such as Web API calls to retrieve or update external data. You can also perform complex financial model calculations.

Create Formula Text Boxes

Give your users the ability to view and edit the formulas in your workbooks with a formula text box. Users can create formulas and select ranges to be referenced with the range selector button.

Formula Editor Panel

Effortlessly manage long, complex formulas with SpreadJS's Formula Editor Panel plugin. The Formula Panel provides a flexible, formatted, outline view to collapse and expand formulas. Edit, debug, and optimize lengthy formulas seamlessly with flexible outline views, syntax highlighting, tooltip function information, and more.