Skip to content

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.

License

Notifications You must be signed in to change notification settings

handsontable/hyperformula

Folders and files

NameName
Last commit message
Last commit date
Jan 8, 2025
Dec 3, 2024
Jan 15, 2025
Jan 16, 2019
Nov 26, 2024
Jan 8, 2025
Jan 3, 2025
Mar 11, 2021
Nov 6, 2024
May 18, 2023
Sep 7, 2023
Aug 18, 2022
Mar 21, 2022
Apr 3, 2024
Apr 3, 2024
Jan 7, 2025
Jun 25, 2020
May 18, 2022
Jul 17, 2024
May 18, 2022
Jan 15, 2025
Nov 26, 2024
Jun 24, 2020
Jan 7, 2025
Apr 29, 2020
Mar 21, 2022
Apr 29, 2020
May 14, 2020
Jan 7, 2025
Jan 7, 2025
May 11, 2020
Oct 12, 2020
Nov 26, 2024

Repository files navigation


HyperFormula - A headless spreadsheet, a parser and evaluator of Excel formulas

An open-source headless spreadsheet for business web apps

npm total downloads npm monthly downloads GitHub contributors Known Vulnerabilities
FOSSA Status GitHub Workflow Status codecov


HyperFormula is a headless spreadsheet built in TypeScript, serving as both a parser and evaluator of spreadsheet formulas. It can be integrated into your browser or utilized as a service with Node.js as your back-end technology.

What HyperFormula can be used for?

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

  • Custom spreadsheet-like app
  • Business logic builder
  • Forms and form builder
  • Educational app
  • Online calculator

Features

Documentation

Integrations

Installation and usage

Install the library from npm like so:

npm install hyperformula

Once installed, you can use it to develop applications tailored to your specific business needs. Here, we've used it to craft a form that calculates mortgage payments using the PMT formula.

import { HyperFormula } from 'hyperformula';

// Create a HyperFormula instance
const hf = HyperFormula.buildEmpty({ licenseKey: 'gpl-v3' });

// Add an empty sheet
const sheetName = hf.addSheet('Mortgage Calculator');
const sheetId = hf.getSheetId(sheetName);

// Enter the mortgage parameters
hf.addNamedExpression('AnnualInterestRate', '8%');
hf.addNamedExpression('NumberOfMonths', 360);
hf.addNamedExpression('LoanAmount', 800000);

// Use the PMT function to calculate the monthly payment
hf.setCellContents({ sheet: sheetId, row: 0, col: 0 }, [['Monthly Payment', '=PMT(AnnualInterestRate/12, NumberOfMonths, -LoanAmount)']]);

// Display the result
console.log(`${hf.getCellValue({ sheet: sheetId, row: 0, col: 0 })}: ${hf.getCellValue({ sheet: sheetId, row: 0, col: 1 })}`);

Run this code in StackBlitz

Contributing

Contributions are welcome, but before you make them, please read the Contributing Guide and accept the Contributor License Agreement.

License

HyperFormula is available under two different licenses: GPLv3 and proprietary. The proprietary license can be purchased by contacting our team at Handsontable.

Copyright (c) Handsoncode