Запереть или разблокировать формы
Иногда вам нужно защитить все формы в определенных листах, чтобы предотвратить их уничтожение нежелательными ситуациями. В этом случае вам нужно запереть все формы на указанном листе.
Иногда вам нужно иметь возможность изменять определенные формы на определенных защищенных листах, в этом случае вам нужно разблокировать эти формы.
Эта статья подробно расскажет, как запереть и разблокировать определенные формы.
Защитить все формы на указанном листе
Чтобы защитить все формы на указанном листе, используйте метод Worksheet.protect(int type), как показано в следующем образце кода.
String text = "This is a test"; | |
Workbook workbook = new Workbook(); | |
Worksheet worksheet = workbook.getWorksheets().get(0); | |
Shape shape = worksheet.getShapes().addTextBox(1, 0, 1, 0, 30, 100); | |
shape.setText(text); | |
shape = worksheet.getShapes().addRectangle(5, 0, 1, 0, 30, 100); | |
shape.setText(text); | |
shape = worksheet.getShapes().addButton(9, 0, 1, 0, 30, 100); | |
shape.setText(text); | |
shape = worksheet.getShapes().addOval(13, 0, 1, 0, 50, 100); | |
shape.setText(text); | |
//Protect all shapes in a specified worksheet | |
shape.getWorksheet().protect(ProtectionType.OBJECTS);//Protects the entire worksheet. | |
//or shape.Worksheet.Protect(ProtectionType.All);//Protects all shapes in the specified worksheet. | |
//or worksheet.Protect(ProtectionType.Objects);//Protects the entire worksheet. | |
//or worksheet.Protect(ProtectionType.All);//Protects all shapes in the specified worksheet. | |
workbook.save("Locked.xlsx", SaveFormat.XLSX); |
Разблокировать указанные формы на защищенном листе
Чтобы разблокировать указанную форму на защищенном листе, используйте shape.IsLocked и shape.setLocked, как показано в следующем образце кода.
Примечание: shape.IsLocked и shape.setLocked имеют смысл только в том случае, если лист защищен.
Workbook workbook = new Workbook("Locked.xlsx"); | |
//Get protected worksheet | |
Worksheet worksheet = workbook.getWorksheets().get(0); | |
//Get the specified shape to be unlocked | |
Shape shape = worksheet.getShapes().get("TextBox 1"); | |
//Unlock the specified shape | |
if (!worksheet.getProtection().getAllowEditingObject() && shape.isLocked()) | |
{ | |
shape.setLocked(false); | |
} | |
workbook.save("UnLocked.xlsx", SaveFormat.XLSX); |