- 
    Type:
Improvement
 - 
    Resolution: Fixed
 - 
    Priority:
Normal
 - 
    Affects Version/s: None
 - 
    Component/s: None
 - 
    Security Level: Jimmy
 - 
    None
 
- 
        None
 
Current Result
The current implementation of Spreadsheet.java contains too many code about 7K lines, which is hard to maintain and modify.
Expected Result
- Simplify and refactor Spreadsheet.java
 - extract those code for rendering to client to a separate package e.g. Spreadsheet::getCellAttr
 - https://github.com/zkoss/keikaicml/blob/master/keikai/src/io/keikai/api/Books.java#L13 BOOK_TYPE_KEY is declared in 3 different places: Books, AbstractImporter, AbstractExcelImporter. It's better to reduce to 1.
 - suggest to collect all server-to-client commands constants into one class e.g. smartUpdate("activeRange", activeRange); renderer.render("toolbarButtons", _buttons), so that we can easily reviews/checks these commands.
 
- blocks
 - 
                    
KEIKAI-589 freeze columns shifts a merged cell
-         
 - Closed
 
 -         
 
- relates to
 - 
                    
KEIKAI-189 missing data validation drop-down icon
-         
 - Closed
 
 -         
 - 
                    
KEIKAI-183 selecting a sheet doesn't work for the first time
-         
 - Closed
 
 -         
 - 
                    
KEIKAI-187 new book button causes toolbar disappeared
-         
 - Closed
 
 -