Bloquear o desbloquear formas
A veces, es necesario proteger todas las formas en ciertas hojas de cálculo para evitar que sean destruidas por situaciones no deseadas. En este caso, es necesario bloquear todas las formas en la hoja de cálculo especificada.
A veces, es necesario poder modificar ciertas formas en ciertas hojas de cálculo protegidas, en cuyo caso, es necesario desbloquear estas formas.
Este artículo introducirá en detalle cómo bloquear y desbloquear formas especificadas.
Proteger todas las formas en una hoja de cálculo especificada
Para proteger todas las formas en una hoja de cálculo especificada, utilice el método Worksheet.protect(int tipo), como se muestra en el siguiente código de ejemplo.
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); |
Desbloquear formas especificadas en una hoja de cálculo protegida
Para desbloquear una forma especificada en una hoja de cálculo protegida, utilice shape.IsLocked y shape.setLocked, como se muestra en el siguiente código de ejemplo.
Nota: shape.IsLocked y shape.setLocked solo tienen sentido cuando la hoja de cálculo está protegida.
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); |