Protect Worksheet or Workbook Elements"
From Documentation
Line 13: | Line 13: | ||
Protected sheet with locked cell. In this status, the cell can '''not''' be modified.<br/> | Protected sheet with locked cell. In this status, the cell can '''not''' be modified.<br/> | ||
[[File:ZKSsEss_Spreadsheet_Protected_LockedCell.png]]<br/> | [[File:ZKSsEss_Spreadsheet_Protected_LockedCell.png]]<br/> | ||
− | Protected sheet with unlocked cell. In this status, cell can be | + | Protected sheet with unlocked cell. In this status, the cell can be modified<br/> |
[[File:ZKSsEss_Spreadsheet_Protected_UnLockedCell.png]]<br/> | [[File:ZKSsEss_Spreadsheet_Protected_UnLockedCell.png]]<br/> | ||
Revision as of 09:20, 30 August 2011
Purpose
Preventing end users from modifying important data, ZK Spreadsheet allow developers to apply protection to worksheet or cells.
Protection
On default, the sheet is not protected and the cell is locked. In this status, the cell can be modified.
Protected sheet
Protected sheet with locked cell. In this status, the cell can not be modified.
Protected sheet with unlocked cell. In this status, the cell can be modified
ZUML
<zk>
<div height="100%" width="100%" apply="org.zkoss.zssessentials.config.ProtectionComposer">
<div>
<Button id="toggleSheetProtection" label="Toggle sheet protection" mold="trendy"></Button>
<Button id="toggleLockCells" label="Toggle lock cells" mold="trendy"></Button>
</div>
<spreadsheet id="spreadsheet" src="/WEB-INF/excel/config/autoFilter.xlsx"
maxrows="200"
maxcolumns="40"
width="100%"
height="450px"></spreadsheet>
</div>
</zk>
Composer
Protect Worksheet
Use Range.protectSheet(String) to set worksheet protection.
public void onClick$toggleSheetProtection(Event event) {
final Worksheet sheet = spreadsheet.getSelectedSheet();
boolean sheetProtection = !sheet.getProtect();
Ranges.range(sheet).protectSheet(sheetProtection ? "password" : null);
}
Lock cells
Use CellStyle.setLocked(Boolean) to lock cell. Use Range.setStyle(CellStyle) to update cell style.
public void onClick$toggleLockCells(Event event) {
final Worksheet sheet = spreadsheet.getSelectedSheet();
boolean lock = !Utils.getOrCreateCell(sheet, topRow, leftCol).getCellStyle().getLocked();
for (int r = topRow; r <= bottomRow; r++) {
for (int c = leftCol; c <= rightCol; c++) {
Cell cell = Utils.getOrCreateCell(sheet, r, c);
CellStyle cellStyle = cell.getCellStyle();
if (cellStyle.getLocked() != lock) {
CellStyle newCellStyle = cloneStyle(cellStyle, sheet.getBook());
newCellStyle.setLocked(lock);
Ranges.range(sheet, r, c).setStyle(newCellStyle);
}
}
}
}
View complete source of ZUML protection.zul
View complete source of composer ProtectionComposer.java
Version History
Version | Date | Content |
---|---|---|
2.1.0 | May, 2011 | Protect sheet and lock cell |
All source code listed in this book is at Github.