Lock or unlock shapes

Protect all shapes in a specified worksheet

To protect all shapes in a specified worksheet, use the Worksheet.protect(int type) method, as shown in the following sample code.

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);

Unlock specified shapes in a protected worksheet

To unlock a specified shape in a protected worksheet, use shape.IsLocked and shape.setLocked, as shown in the following sample code.

Note: shape.IsLocked and shape.setLocked are meaningful only when the worksheet is protected.

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);