This section is designed for users coming from ZK Spreadsheet (ZSS). Please make sure to back-up your current project before upgrading.
Drop-in Upgrade (Evaluation Only)
This approach can quicky turn your existing ZSS application to Keikai (EE) applicaiton without modifying your source. Note that this is for evaluating purpose only as it does not cover all Keikai features. To officially migrate your existing ZSS application to Keikai, please read the next section: How to migrate from ZSS.
The steps for quick try are:
- download the lastest keikai-zss-legacy-all-[VERSION].zip
- extract the zip.
It produces 2 sub folders:
- put your zss application war under the same folder
- go to the folder and run
If it succeeds, the repacked, new WAR with the same name will be put under the same folder. Your original WAR will be renamed to
WAR_FILE_NAME.backup. Just run the repacked WAR file – it is a Keikai App already!
(Note: This approach renames Keikai jar file in bytecode level at run-time by jarjar which is not recommended in the production environment.)
How to Migrate from ZSS
It is very easy to migrate your existing ZSS project to Keikai, just need to handle the following changes:
JAR Change (zss*.jar –> keikai*.jar)
Replace all ZSS related JAR (OSE or EE) with Keikai related JAR (OSE or EE).
Non-Maven Users (manually include Jar)
- Download Keikai OSE (
keikai-bin-[VERSION].zip) or Keikai EE (
keikaiee-bin-[VERSION].zip) binary zip.
- Remove all zss*.jar
/dist/*.jarin the zip into your Keikai project
Please don’t mix different versions of jar in the same war (e.g. you should not have both
zk-9.0.0.jar), this will cause errors.
API Packages Change (
Only the package names are changed, and all method names are unchanged. For example,
org.zkoss.zss.api.Range.setValue() turns to be
io.keikai.api.Range.setValue(). You just need to replace the old import package name (
org.zkoss.zss) with new ones (
io.keikai). It’s better to use your IDE keyboard shortcut to quickly replace import statments.
License Path Change
This is for paying customers only. Please refer to Applying License Key.
Sheet Tab Context Menu is Hidden by Default
Keikai adds a new attribute
showSheetTabContextMenu. If you want to show the context menu on a sheet tab you need to specify as follows:
<spreadsheet showSheetbar="true" showSheetTabContextMenu="true"/>
Custom Function Prefix Change
The prefix now should be
<?xel-method prefix="keikai" name="CHAIN" ...?> <?taglib uri="/WEB-INF/tld/function.tld" prefix="keikai" ?>
Deprecated Methods are Removed
Those methods marked as deprecated in ZSS 3.9 are removed in Keikai. Usually, you will find an alternative method in the same class or you can check ZSS Javadoc. For example, use
setMaxVisibleRows() instead of
The following configurations also change in Keikai, but you can keep your original one since Keikai still reads the old configuration.
Migrate ZSS App to Keikai App
If you have been using ZSS App, and you wish to migrate it to Keikai App, here are the steps:
- Download keikai-app
Since the API package names are changed, you can’t just run the original ZSS App war with Keikai JARs. You will have to download Keikai App war file instead. Choose either the OSE edition or the EE edition based on the edition you are currently with.
- Move Excel files from zssapp to keikai-app
The default folder to store Excel files is
/WEB-INF/books/. If you have previously specified another path in
zk.xmlwith the property
zssapp.repository.root, then the files will be in the folder you specified. Copy these files from the folder to the corresponding folder in Keikai app.
zk.xmlfrom zssapp to keikai-app
/WEB-INF/zk.xmlfrom the previous zssapp and overwrite keikai-app’s
/WEB-INF/zk.xml. No additional change is required because Keikai app is made ready for backward compatibile and can read old(ZSS) property keys in zk.xml.
Client-side Major change between ZSS and Keikai
- Toolbar DOM structure and its CSS class names (starting with k-toolbar) change
- Scrollbar is simulated by HTML elements (ZSS uses browser native scrollbar)
- Generate most CSS rules at client-side instead of server-side
- Upgrade Highcharts to 7.2.1
- Minor change in auto filter popup style