/hyperformula

A complete, open-source Excel-like calculation engine written in TypeScript. Includes 380+ built-in functions. Maintained by the team at Handsontable.

Primary LanguageTypeScriptOtherNOASSERTION

HyperFormula

HyperFormula is an open source, spreadsheet-like calculation engine ⚡

GitHub Workflow Status FOSSA Status codecov Language grade: JavaScript Known Vulnerabilities GitHub contributors

Description

HyperFormula allows you to perform spreadsheet-like calculations in your web applications. It is written in TypeScript and supports all major JavaScript frameworks. You can use it in a browser or as a service with Node.js as your back-end technology.

The engine comes with a built-in, localized library of functions grouped into different categories, and covers most user-triggered actions such as CRUD operations, undo/redo, and clipboard operations. It also supports the use of cross-sheet references, named expressions, different data types, and custom functions.

Documentation

Getting started

Install the library from npm:

npm install hyperformula

Once properly installed, you can use it like this:

import { HyperFormula } from 'hyperformula';

// define the options
const options = {
  licenseKey: 'gpl-v3',
};

// define the data
const data = [['10', '20', '30', '=SUM(A1:C1)']];

// build an instance with defined options and data 
const hfInstance = HyperFormula.buildFromArray(data, options);

// call getCellValue to get the calculation results
const mySum = hfInstance.getCellValue({ col: 3, row: 0, sheet: 0 });

// print the result in the browser's console
console.log(mySum);

View this code online

What can it be used for?

HyperFormula doesn't assume any existing user interface, which makes it a great general-purpose library that can be used in various business applications. Here are some examples:

  • Smart documents
  • Educational apps
  • Computation notebooks
  • Data grid components
  • Business logic builders
  • Forms and form builders
  • Spreadsheets
  • Online calculators
  • Low connectivity apps

Contributing

Help us build the fastest and most flexible calculation engine for business web apps. Please read the Contributing Guide before making a pull request.

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

License

HyperFormula is available under the GPLv3 license.

If you need a commercial license or support and maintenance services, contact our Sales Team.

Acknowledgments

You should know that this project wouldn’t exist without co-financing from European Union funds under the European Regional Development Funds as a part of the Smart Growth Operational Programme. Project implemented as a part of the Polish National Centre for Research and Development: “Fast Track”.

  • Name of the programme: Smart Growth Operational Programme 2014-2020
  • Project name: “Development of the high-performance calculation engine for processing tabular data of the significant size on mobile devices and workstations using parallel computing and GPU.”
  • Project number: POIR.01.01.01-00-0223/18-00
  • Beneficiary: Handsoncode sp. z o.o.
  • Total budget: PLN 1 117 275.87 (USD ~295 000)
  • Amount of grant: PLN 771 807.73 (USD ~204 000)
  • Duration: 2018-2019

eu-funds

Authors

Created by Handsontable, NavAlgo, and Contributors.

© 2021 Handsoncode