Protection"
(→Protect a Sheet: API sample code) |
|||
Line 6: | Line 6: | ||
− | ' | + | The controller's source code of above application: |
− | <source lang='java'> | + | <source lang='java' high='18, 19, 21'> |
− | + | public class ProtectionComposer extends SelectorComposer<Component>{ | |
− | + | ||
− | + | @Wire | |
− | + | private Spreadsheet ss; | |
− | + | @Wire | |
− | + | private Label status; | |
− | + | ||
− | + | @Override | |
− | sheet.isProtected(); | + | public void doAfterCompose(Component comp) throws Exception { |
+ | super.doAfterCompose(comp); | ||
+ | updateSheetProtectionStatus(ss.getSelectedSheet()); | ||
+ | } | ||
+ | |||
+ | @Listen("onClick = #toggleProtection") | ||
+ | public void toggleProtection(){ | ||
+ | Sheet selectedSheet = ss.getSelectedSheet(); | ||
+ | if (selectedSheet.isProtected()){ | ||
+ | Ranges.range(selectedSheet).protectSheet(null); | ||
+ | }else{ | ||
+ | Ranges.range(selectedSheet).protectSheet("password"); | ||
+ | } | ||
+ | updateSheetProtectionStatus(selectedSheet); | ||
+ | } | ||
+ | |||
+ | @Listen("onSheetSelect = #ss") | ||
+ | public void selectSheet(SheetSelectEvent event) { | ||
+ | updateSheetProtectionStatus(event.getSheet()); | ||
+ | } | ||
+ | |||
+ | private void updateSheetProtectionStatus(Sheet sheet){ | ||
+ | status.setValue(Boolean.toString(sheet.isProtected())); | ||
+ | } | ||
+ | } | ||
</source> | </source> | ||
+ | * Line 18: Get protection status of the selected sheet. | ||
+ | * Line 19: Disable protection of the selected sheet. | ||
+ | * Line 21: Enable protection of the selected sheet. | ||
= Unlock a Cell= | = Unlock a Cell= |
Revision as of 03:21, 26 September 2013
Protect a Sheet
If you enable "Protect Sheet" for a sheet in Excel (e.g. click of menu "Review" in Excel 2007), Spreadsheet can read the setting and prevent you from editing the protected sheet. Spreadsheet's API also allow you to enable / disable protection and get protection status of a sheet. Let's use a simple example to demonstrate the usage:
The screenshot above is a simple application. There is a label on the right showing current sheet's protection status. The true means the sheet is under protection and cannot be edited. The "Toggle Protection" button can toggle protection status of current selected sheet.
The controller's source code of above application:
public class ProtectionComposer extends SelectorComposer<Component>{
@Wire
private Spreadsheet ss;
@Wire
private Label status;
@Override
public void doAfterCompose(Component comp) throws Exception {
super.doAfterCompose(comp);
updateSheetProtectionStatus(ss.getSelectedSheet());
}
@Listen("onClick = #toggleProtection")
public void toggleProtection(){
Sheet selectedSheet = ss.getSelectedSheet();
if (selectedSheet.isProtected()){
Ranges.range(selectedSheet).protectSheet(null);
}else{
Ranges.range(selectedSheet).protectSheet("password");
}
updateSheetProtectionStatus(selectedSheet);
}
@Listen("onSheetSelect = #ss")
public void selectSheet(SheetSelectEvent event) {
updateSheetProtectionStatus(event.getSheet());
}
private void updateSheetProtectionStatus(Sheet sheet){
status.setValue(Boolean.toString(sheet.isProtected()));
}
}
- Line 18: Get protection status of the selected sheet.
- Line 19: Disable protection of the selected sheet.
- Line 21: Enable protection of the selected sheet.
Unlock a Cell
Spreadsheet supports unlock cells of a protected sheet configured in Excel.
describe how to unlock a cell in Excel.
right click a cell, select "Format Cells...", select "Protection" tab, uncheck "Locked" item.