GithubHelp home page GithubHelp logo

doytsujin / javafx-spreadsheet Goto Github PK

View Code? Open in Web Editor NEW

This project forked from konvio/javafx-spreadsheet-2016

0.0 1.0 0.0 6.13 MB

JavaFX Spreadsheet

Home Page: https://konvio.github.io/javafx-spreadsheet/

HTML 0.66% Java 99.34%

javafx-spreadsheet's Introduction

Spreadsheet

Overview

A spreadsheet is an interactive table for storing, analyzing and processing data. A cell can contain numbers, operators, braces and references to other cells. A spreadsheet dynamically evaluates value in each cell.

Main window

main_window The main window contains editable grid, text field to display entered formula in focused cell and button to toggle Formulas mode.

Supported operations

  • Addition '+'

  • Subtraction '-'

  • Multiplication '*'

  • Division '/'

  • Power '^'

  • Bitwise AND '&' and OR '|'

Reference format

A reference is a latin letter, followed by number from 1 to 99.

Long arithmetic

Long arithmetic is used to avoid integer overflow. long_arithmetic

Operators precedence

Operators precedence are respected. operator_precedence

Formulas Mode

When Formulas Mode is toggled, cells display originally typed formula instead of evaluated value. formula_mode

Text parsing

A Lexer is implemented in order to parse text. The Lexer uses regular expressions and named capturing groups to extract information from entered text.

Algorithms

  • Tarjan's algorithm to detect cycled references
  • Topological sorting to determine in what order evaluate cells
  • Shunting-yard algorithm to evaluate expression and respect precedence and braces
© 2016, Vitaliy Kononenko, K-24

javafx-spreadsheet's People

Contributors

konvio avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.