Skip to main content

Защита диапазона текстового документа

Вы можете защитить от изменений диапазон текстового документа. Данные в таком диапазоне нельзя модифицировать до снятия защиты.

Используйте метод Range.lockContent() для установки защиты:


# Защита первого абзаца документа:
textRange = document.getRange().getBegin().getCurrentRange(myOfficeSDK.TextUnit_Paragraph)
textRange.lockContent()

При попытке редактирования защищенного фрагмента возникает исключение DocumentModificationError:


pos = textRange.getContentEnd().getPreviousPosition(10)
pos.insertText("My Text") # DocumentModificationError

Чтобы определить, защищен ли диапазон документа, используйте метод Range.isContentLocked(). Он возвращает True, если текущий диапазон защищен целиком или содержит защищенные фрагменты:


print(textRange.isContentLocked()) # True
print(document.getRange().isContentLocked()) # True

Для снятия защиты, вызовите метод Range.unlockContent() защищенного фрагмента или диапазона текста, который его содержит:


textRange.unlockContent()
# или
document.getRange().unlockContent()

Также вы можете снять защиту только с части диапазона:


# Снятие защиты с последнего предложения защищенного абзаца:
textRange.getContentEnd().getPreviousRange(myOfficeSDK.TextUnit_Sentence).unlockContent()