Toolbar
Purpose
ZK Spreadsheet supports various toolbar buttons for user to perform actions.
Show toolbar
Use Spreadsheet.setShowToolbar to show toolbar.
Action Handler
The Spreadsheet use a default ActionHandler to perform toolbar button's action. Developer could use customized ActionHandler by API Spreadsheet.setActionHandler or by library property org.zkoss.zss.ui.ActionHandler.class, refer to sample zk.xml
Each toolbar's button represent a action, the ActionHandler process action when user click it.
For example, the paste toolbarbutton and menuitem represent Action.PASTE, deveoper could override
default behavior by override ActionHandler.doPaste
New Book
The default ActionHandler does nothing when user click the button, developer could override ActionHandler.doNewBook
@Override
public void doNewBook() {
_spreadsheet.setSrc("/WEB-INF/excel/config/blank.xlsx");
}
Refer to sample code CustomizedActionHandler.java
Save Book
The default ActionHandler does nothing when user click the button, developer could override ActionHandler.doSaveBook
@Override
public void doSaveBook() {
Spreadsheet spreadsheet = getSpreadsheet();
if (spreadsheet.getBook() != null) {
final String filePath = Executions.getCurrent().getDesktop().getWebApp().getRealPath(spreadsheet.getSrc());
Exporter exporter = Exporters.getExporter("excel");
FileOutputStream outputStream = null;
try {
outputStream = new FileOutputStream(new File(filePath));
exporter.export(spreadsheet.getBook(), outputStream);
try {
Messagebox.show("Saved");
} catch (InterruptedException e) {
}
} catch (FileNotFoundException e) {
try {
Messagebox.show("Save excel failed");
} catch (InterruptedException e1) {
}
} finally {
if (outputStream != null) {
try {
outputStream.close();
} catch (IOException e) {
}
}
}
}
}
Refer to sample code CustomizedActionHandler.java
Export PDF
The default ActionHandler does nothing when user click the button, developer could override ActionHandler.doExportPDF
@Override
public void doExportPDF(Rect selection) {
Spreadsheet spreadsheet = getSpreadsheet();
if (spreadsheet.getBook() != null && validSelection(selection)) {
ExportPDFDialog dialog = new ExportPDFDialog(selection);
//omit
}
}
Refer to Export to PDF and sample code CustomizedActionHandler.java
Paste Special
The default ActionHandler does nothing when user click the button, developer could override ActionHandler.doPasteSpecial
@Override
public void doPasteSpecial(Rect selection) {
if (getClipboard() != null && _spreadsheet.getBook() != null && validSelection(selection)) {
PasteSpecialDialog dialog = new PasteSpecialDialog(selection);
//omit
}
}
Refer to sample code pasteSpecialDialog.zul and CustomizedActionHandler.java
Custom Sort
The default ActionHandler does nothing when user click the button, developer could override ActionHandler.doCustomSort
@Override
public void doCustomSort(Rect selection) {
CustomSortDialog dialog = new CustomSortDialog(selection);
//omit
}
Refer to sample code customSortDialog.zul and CustomizedActionHandler.java
ZUML
Here is a sample example ZUL file
<zk>
<window vflex="1" width="100%" apply="org.zkoss.zssessentials.config.ToolbarComposer">
<button id="toggleToolbar" label="Toggle toolbar"/>
<spreadsheet showToolbar="true"
id="ss" vflex="true" width="100%"
src="/WEB-INF/excel/config/ZSS-demo_sample.xlsx" maxcolumns="40" maxrows="200"
></spreadsheet>
</window>
</zk>