Skip to content

mP1/walkingkooka-spreadsheet

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Build Status Coverage Status License Language grade: Java Total alerts J2CL compatible

Application

This repo contains the powerful engine that performs all the features and actions expected of a functional spreadsheet.

The application is logically separated into two parts.

  • The client contains the web browser application. Actions performed by the user become REST API calls to the server.
  • The server contains all the supporting REST APIs using JSON for request and response payloads that eventually interact with engine.

Global settings (SpreadsheetMetadata)

Each and every spreadsheet is represented by a single SpreadsheetMetadata object instance. A wide variety of items are stored for each spreadsheet including but not limited to:

Internal components

There are many internal components that contribute to the core functionality of a spreadsheet. Eventually each of these will be a plugin where users can contribute an alternative or supplementary choice.

These Converters along with a few others belonging to other repos are used to convert values from one type to another. These support expressions where values are converters as necessary from one value type to another, eg

All sorting is performed by using a selected SpreadsheetComparator, which is identical to a java.util.Comparator. These may be enabled to supporting sorting one or more column/row/cell-range.

  • Date
  • DateTime
  • Day of Month
  • Day of Week
  • Hour of AMPM
  • Hour of Day
  • Month of Year
  • Nano of Second
  • Number
  • Second of Minute
  • Text
  • Text case-insensitive
  • Time
  • Year

Examples of combining multiple SpreadsheetComparators for a column range might include.

  • day-of-month then month-of-year then year
  • seconds-of-minute then minute-of-day then hour-of-day

When sorting a cell-range/column/rows it is possible to sort each column/row with different SpreadsheetComparator(s).

The plugin architecture allows authoring/installing custom comparators.

Functions within a formula expressions are defined by individual ExpressionFunction.

Currently there are about 100+ functions available and these are listed HERE.

A SpreadsheetFormatter is used to format the cell value into text that is displayed within the grid of cells.

There are several built-in SpreadsheetFormatter(s) one for each Spreadsheet type, each supporting the standard patterns to allow user customisation of that value type along with a single color.

Other internal components

TODO Mention here TODO Dynamic plugin support

About

Building a web based spreadsheet application server & rich web app

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages