Bloquear o desbloquear formas

Proteger todas las formas en una hoja de cálculo especificada

Para proteger todas las formas en una hoja de cálculo especificada, use el método Worksheet.Protect(type), como se muestra en el siguiente código de ejemplo.

import jpype
import asposecells
jpype.startJVM()
from asposecells.api import Workbook,SaveFormat,ProtectionType
text = "This is a test";
workbook = Workbook();
worksheet = workbook.getWorksheets().get(0);
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(r"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, use shape.IsLocked, como se muestra en el siguiente código de ejemplo.

Nota: shape.IsLocked solo tiene sentido cuando la hoja de cálculo está protegida.

import jpype
import asposecells
jpype.startJVM()
from asposecells.api import Workbook, SaveFormat,ProtectionType
workbook = Workbook(r"Locked.xlsx")
#Get protected worksheet
worksheet = workbook.getWorksheets().get(0)
#Get the specified shape to be unlocked
shape = worksheet.getShapes().get(r"TextBox 1")
#Unlock the specified shape
if (not worksheet.getProtection().getAllowEditingObject() and shape.isLocked()):
shape.setLocked(False);
workbook.save(r"UnLocked.xlsx", SaveFormat.XLSX);