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