形状のロックまたはロック解除

指定されたワークシート内のすべての形状を保護

特定のワークシートのすべての図形を保護するには、Worksheet.Protect(type) メソッドを使用します。次のサンプルコードに示すように、保護されたワークシート内の指定された図形をロック解除するには、shape.IsLocked を使用します。

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

保護されたワークシート内の指定された形状のロック解除

保護されたワークシート内の指定された図形をロック解除するには、次のサンプルコードに示すように shape.IsLocked を使用します。

注:shape.IsLocked はワークシートが保護されている場合にのみ意味を持ちます。

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