Verrouiller ou déverrouiller les formes
Parfois, vous devez protéger toutes les formes dans certaines feuilles de calcul pour les empêcher d’être détruites par des situations non désirées. Dans ce cas, vous devez verrouiller toutes les formes dans la feuille de calcul spécifiée.
Parfois, vous devez être en mesure de modifier certaines formes dans certaines feuilles de calcul protégées, auquel cas, vous devez déverrouiller ces formes.
Cet article présentera en détail comment verrouiller et déverrouiller des formes spécifiées.
Protéger toutes les formes dans une feuille de calcul spécifiée
Pour protéger toutes les formes dans une feuille de calcul spécifiée, utilisez la méthode Worksheet.Protect(type), comme indiqué dans le code d’exemple suivant.
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); |
Déverrouiller les formes spécifiées dans une feuille de calcul protégée
Pour déverrouiller une forme spécifique dans une feuille de calcul protégée, utilisez shape.IsLocked, comme indiqué dans le code d’exemple suivant.
Remarque : shape.IsLocked n’a de sens que lorsque la feuille de calcul est protégée.
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); |