A fat browser spreadsheet using the wonderful dominoKit library.
The spreadsheet is a combination of a rich web application which executes in the browser and a variety of services provided by a server. All the server code transpiles to javascript so it should be possible to move the server into web workers.
Run jetty server HERE
git clone walkingkooka-spreadsheet-server-platform
java walkingkooka.spreadsheet.server.platform.JettyHttpServerSpreadsheetHttpServer2
This will provide a variety of services that are consumed by the rich web (this repo).
About 150 functions are currently implemented with automated tests, and available within any expression. For more info including a list of available functions goto HERE
Run GWT code server.
mvn build-helper:add-source gwt:codeserver -X -f pom.xml
Open in a browser, this will load the rich web-app, ready to be used.
http://localhost:12345/walkingkooka.spreadsheet.dominokit.App/index.html
This provides an overview of currently available features and future goals for this spreadsheet. Note it should not be considered complete but can be considered attempt at sharing knowledge of what has been done and what is outstanding. Individual issues that breakdown outstanding tasks will be added.
- Formulas editing DONE
- Formula evaluation when ENTER hit.
- Interactive function code completion when entering expression TODO
- Expression error messages are shown, without any point to the actual position of the mistake TODO
- Keyboard
- Cursor key navigation DONE
- ENTER gives focus to Formula for editing
- Mouse
- Click cell, column, row to select DONE
- Mouse SHIFT click to extend cell/column/row range.
- Support dragging mouse to select/extend a range TODO
- Cell formatting:
- Alignment: Left, Center, Right, Justify DONE
- Vertical alignment: Top, Middle, Bottom DONE
- Text Color DONE
- Background color DONE
- Bold DONE
- Italics DONE
- Strikethru DONE
- Underline DONE
- Format patterns: select & edit Date, DateTime, Number, Text, Time DONE
- Parse patterns: select & edit Date, DateTime, Number, Text, Time DONE
- Text case: Normal, Capitalize, Lowercase, Uppercase DONE
- Border
- direction: Top, Left, Right, Bottom, All DONE
- color DONE
- style DONE
- width 0, 1, 2, 3, 4 DONE
- User edited width TODO
- Wrapping: clip, Overflow, Wrap DONE
- Column, Row, Cell actions:
- Insert columns before DONE
- Insert columns after DONE
- Clear DONE
- Delete DONE
- Sort
- cells any rectangular cell range of at least 2 cells DONE
- columns DONE
- rows DONE
- Build sort request dialog DONE
- Sort by by Date, Date-time Day of month, Day of week, Hour of am, Hour of day, Minute of Hour, Month of Year, Nano of Second, Number, Second of Minute, Text, Text case-insensitive, Time, Year DONE
- Up and down DONE
- Clipboard cell, formula, format-pattern, parse-pattern, formatted-value
- Many context menu items are also available as buttons in the toolbar.
- Add a Font drop down TODO
- Add a Font size drop down TODO
- Print spreadsheet to PDF TODO
- Find icon, feature to find and highlight cells using an expression. DONE Needs polish.
Global settings that may be added or updated appear in a panel that appears on the right edge of the web-app
- View audit info such as creator, last updated by, timestamps DONE
- Locale editing, affects default format and parse patterns and various symbols decimal point character etc. TODO
- Support for changing various locale sourced characters such as decimal point, currency sign etc DONE
- Editing of default format & parse patterns, eg the default the Number format pattern when a cell is missing one DONE
- The UI can be described as spartan as it uses the default DominoKit theme. No work has been done to improve.