JSON Data Schema
Provides the schema describes SpreadJS JSON data format, makes the SpreadJS JSON data clear and useful for human and machine-readable documentation, and also provides complete structural validation, and is useful for generating SpreadJS JSON data with code, automated testing and validation of the JSON data.
API TypeScript Definition
Provides a SpreadJS API TypeScript definition file to help developers have better coding experience in TypeScript projects, with strongly-typed access and better intelligence.
In order to provide more friendly touch support on touchable devices, we improved performance so the control operates smoothly and has enhanced touch behaviors, such as:
- Scroll two directions at the same time
- Better boundary feedback effect
- Better animation effect when scrolling is stopped
- Sync floating object's location when scrolling by touch
Now, you can have two-way binding on the sheet table to bind a collection type data field in CellBindingSource data source. This is useful when creating a data entry form which has a detailed collection of data fields, such as invoice, order, and expense management applications. For example, you can easily build a template by combining cell level binding and table binding for an Invoice entry form in the SpreadJS Designer. Load the template into SpreadJS, bind to the data source, and then data in the invoice include item list is automatically loaded in SpreadJS based on the template setting. If you need to change the layout and appearance of the entry form, you only need to change the template.
8 New Sparklines
Adds 8 new sparklines, those provide a nice visualization for your data, and a simple chart to present the value in spreadsheet cells. The new sparklines include:
- Hbar and Vbar
- Box Plot
26 New Formula Functions to Match Excel
Now SpreadJS has 357 functions. New functions are: CEILING.PRECISE, COVARIANCE.S, FLOOR.PRECISE, PERCENTILE.EXC, QUARTILE.EXC, RANK.AVG, MODE.MULT, ISO.CEILING, BETA.DIST, GAMMALN.PRECISE, ERF.PRECISE, ERFC.PRECISE, PERCENTRANK.EXC, HYPGEOM.DIST, LOGNORM.DIST, NEGBINOM.DIST, NORM.S.DIST, T.DIST, F.DIST, CHISQ.DIST, F.INV, T.INV, CHISQ.INV, CONFIDENCE.T, NETWORKDAYS.INTL, and WORKDAY.INTL
Provides a culture info class which can be used to define culture related symbols such as currency symbol, number decimal separator, month name, date time pattern, and so on. You may define your own culture symbols or get them from other culture libraries such as globalize.js.
Improves formula editing support by including the display table name, table column name, and custom name in the autocomplete dropdown list. Also supports structural references when you select a table range using the mouse.
Function Wildcard Support
Allows using “?” (any single character) and “*” (any number of characters) as wildcards for criteria in some formula functions such as: AVERAGEIF, AVERAGEIFS, COUNTIF, COUNTIFS, SUMIF, SUMIFS, MATCH, SEARCH, VLOOKUP, HLOOKUP, DAVERAGE, DGET, DMAX, DMIN, DPRODUCT, DSTDEV, DSTDEVP, DSUM, DVAR, DVARP.
Additional features added in this release, include:
- Custom Format, customizable data formatter, implement your own format logic for cell value.
- Tag property, provides a Tag property for cell, row, column and sheet object, so that you can store any value with these objects.
- Drag Fill Enhancement, provides API for setting default drag fill type, and also an option for whether to show the drag fill smart tag.
- Scrolling Enhancement, provides two new scrolling modes, one is Excel-like scrolling: drag scroll thumb box can only scroll among dirty rows/columns. Another is DataGrid-like scrolling: scroll until the last row/column is completely shown in view port area.
- Dirty Data, when end-user makes changes on bound data, for example edits a value, inserts a new row, or deletes a row, you may get a collection of “dirty data”. This allows you to avoid post all data back to server.
- Editable ComboBoxCellType, now supports editing and selecting an item from the dropdown list by typing a value using the keyboard.
Now you can use Ctrl+Shift+Enter key to enter an array formula for a range of cells. An array formula is a formula that can perform multiple calculations on one or more of the items in an array. For example, you can use array formula to:
- Count the number of characters in a range of cells.
- Sum numbers that meet certain conditions, such as the lowest values in a range or numbers that fall between an upper and lower boundary.
- Sum every nth value in a range of values.
The formula text box control gives you Excel-like formula editing and can be placed anywhere on the page. The end-user can easily select a range reference with the mouse while entering a formula in the formula text box. Each reference has a different color, and we also support this ability in the cell editor. This allows the end-user to edit formulas quickly and easily.
Improve foundation to make SpreadJS more independent and provide better performance:
- Remove JQuery-UI dependency, you don’t have to add JQuery-UI reference if your application doesn’t use JQuey-UI.
- Remove dependency of wijmo theme, we still support theme roller, and you can still use the wijmo theme as well.
- Reduce JSON size, remove default value from serialization JSON data, reduce file size and optimize network transport.
- ExcelIO Self-Host, support Open Web Interface for .NET (OWIN) to self-host ExcelIO into your own process, outside of IIS.
You can add a comment to a cell or range of cells. The comment may contain text such as a note, a question, or documentation describing the origin of the cell's value. Each cell with a comment attached displays a cell comment indicator (a small red triangle) in the upper right corner of the cell.
Each sheet can have many floating panels that can contain any HTML elements. You can use it to add any control into your spreadsheet.
Three New Sparklines
Three new Sparklines are available: Pie, Area, and Scatter. You can easily add a sparkline by using formulas like this: =PIESPARKLINE(A1:F1, “red”, “green”, “blue”).
When you copy a range of cells, a dashed rectangle is displayed on the cells to help you to view the copied area.
There are additional features added in this release, such as:
- CellType keyboard support, provides ability that celltype can process reserved key event in display mode.
- Touch enhancement, enhanced touch support for some UI elements, so that the end-user can easily operate control.
- Sheet Reorder, end-user can reorder sheet using mouse drag.
- Designer enhancement, designer support for new features, and now you can save document as a .js file, and use the file into your web page directly.
- An Excel-like spreadsheet editor sample was added into the package, there are Ribbon, ContextMenu, Dialogs, and Formula TextBox in the sample, you may use it as reference for your application, save time without the need to build the application from scratch.
- Provide API to set active sheet using sheet name: setActiveSheet(name)
- Provide API to get sheet index using sheet name: getSheetIndex(name)
- Provide SheetNameChanging/SheetNameChanged events.
- Provide API to evaluate a formula string, without the need to put it into a cell.
- Improve API to allow ignore dirty calculate cell when calculation service is suspended.
- Improve API to recalculate all after resuming calculation service.
- Provide context parameter (sheet and row/column index) in celltype API.
- IME Mode support for IE and Firefox.\
Touch Support provides Excel 2013 like UI touch behavior and appearance. This helps the end-user easily operate the spread control by using touch in a web application which runs in a touch-able device. The behavior includes:
- Resize the selected columns or rows by dragging the resize handler. And also can auto fit selected columns or rows by double tapping on the handler.
- Panning on viewport to scroll, and also can drag scrollbar by touch.
- Drag selection handler to change the range of the selection.
- Tap on the selection or the active cell to pop up a touch strip menu, which has built-in commands, and also allows adding custom commands.
- Use Pinch/Stretch gestures to zoom out/in the cells.
We improved performance of UI operations like scrolling, selection, and editing, especially much faster than before in Internet Explorer. And the most important is initializing and data binding speed improved a lot, no matter how large the data source is, SpreadJS spends same time for initializing and data loading.
Make it much easier and more intuitive to work with table data when you are using formulas that reference a table. They are especially useful because table data ranges often change, and the cell references for structured references adjust automatically. This minimizes the need to rewrite formulas as rows and columns are added and deleted in a table, or when external data is refreshed.
The ExcelIO service supports PDF export.
Now you can use underline, strikethrough, and overline to decorate text in cells. We also support word wrap when cell is not wide enough to displaying the entire text.
There are additional features added in this release, such as:
- Format Enhancement, add formats for JP culture.
- Tab Stop, add ability that a cell can be skipped when the active cell is moved by pressing the tab key.
- Sheet Visibility, add ability to hide and show a sheet.
- AutoCalcAfterLoad option, an option to determine whether to recalculate formulas after import from an Excel file.
- Hyperlink Enhancement, click on a hyperlink celltype and open the target in the same page.
- The EndEdit event is obsolete. The EditEnded and EditEnding events have been added.
- A meta parameter has been added for addKeyMap and removeKeyMap functions to help customize the key map in Mac OS.