New Features of ZK Spreadsheet 3.5.0

From Documentation
DocumentationSmall Talks2014JulyNew Features of ZK Spreadsheet 3.5.0
New Features of ZK Spreadsheet 3.5.0

Hawk Chen & Henri Chen
July 07, 2014
ZK Spreadsheet 3.5.0

New Features / Enhancements

Model Performance Enhancement

In this new version, we introduce a brand new model implementation. This enhancement doesn't change the way you use the Spreadsheet's public API mostly, but reduces Spreadsheet's memory consumption.

According to our tests which were done with a model operation of 500 rows and each row containing 10 numbers and 3 formulas, memory consumption was reduced to 1/3 of 3.0 under Java 1.6 and 1/6 under Java 1.7. These figures reflect big improvements with lower memory consumption saving you more money not only in an enterprise environment.

Customizable Theme And New Skyline Theme

In this new version we have established a new theme mechanism that you can design your own theme with CSS and change it dynamically. Please see this article for details on how to do it. Also we have designed a new Skyline theme as the default theme for version 3.5. Of course, you can stick to previous classic theme if you like to with the provided classic.jar[1].

Localization of Number/Formula Input

Available in ZK Spreadsheet EE only

In some country/region, people use ','(comma) instead of '.'(dot) as the decimal point for decimal numbers. This will enforce users to use ';'(semicolon) as the argument separator of formula functions. In previous version, users could not input numbers and formulas in their localized way and in this version we have lift this limitation*.

*Note that we have not been able to support localized formula function names yet in version 3.5.0.

Smart Number General Formatting

Available in ZK Spreadsheet EE only

In this version, we will show decimal number in proper precision per the width of the container cell. That is, we will round decimal number to a precision such that all digits are shown in the cell. That way, user would not misunderstand the number if the width of the cell is too narrow and some digits are cropped and hidden.

Row/Column Style

In previous versions, when you apply a style on the entire row, Spreadsheet will create one style object for each visible cell of that row. Row / column style now create only one style object for the entire row (or column) which saves lots of memory.

Support Chart and Picture Operations for XLS Format

Available in ZK Spreadsheet EE only

In previous versions, users are not able to move or delete charts and pictures because ZK Spreadsheet's old model for XLS files doesn't support it. However, with the new model now that it has no difference in design between XLS and XLSX, it now supports chart and picture operations for XLS files. Notice that this version still does not support exporting charts and pictures to XLS format but you can export them to a XLSX format file.

Upgrade Notes

Removed APIs

  1. Book.getPoiBook(): you can't get any poi model object from this version, but you can get internal book model by getInternalBook().
  2. Sheet.getPoiSheet(): get the internal sheet by getInternalSheet()
  3. ChartData getPoiChartData(): get the internal chart data by getInternalChartData()

Changed APIs

  1. SheetOperationUtil.addChart() : It will add a chart directly based on the selected data in the range. No need to pass a chart data object.
  2. CellSelectionType is moved from org.zkoss.zss.ui.event to org.zkoss.zss.ui

Deprecated APIs

  1. Range.SyncLevel and Range.setSyncLevel().
  2. Book.getSync() : we use a new ReadWriteSync, you can get the lock by getLock()
  3. CellStyle.getBackgroundColor(): use getFillColor()
  4. EditableCellStyle.setBackgroundColor() : use setFillColor()
  5. Exporter.export(Sheet sheet, OutputStream fos) and export(Sheet sheet,AreaRef selection,OutputStream fos): Use those subclasses of org.zkoss.zss.range.SExporterFactory. For example, to export an Excel XLSX format file, you can use new ExcelExportFactory(Type.XLSX).createExporter().export(SBook book, File file)
  6. Range.protectSheet(String password): Use the new Range.protectSheet(String password, boolean allowSelectingLockedCells, boolean allowSelectingUnlockedCells, boolean allowFormattingCells, boolean allowFormattingColumns, boolean allowFormattingRows, boolean allowInsertColumns, boolean allowInsertRows, boolean allowInsertingHyperlinks, boolean allowDeletingColumns, boolean allowDeletingRows, boolean allowSorting, boolean allowFiltering, boolean allowUsingPivotTables, boolean drawingObjects, boolean scenarios) instead.


Copyright © Potix Corporation. This article is licensed under GNU Free Documentation License.