Защита структуры табличного документа
Защита структуры документа ограничивает взаимодействие с листами табличного документа. Пока защита установлена, вы не можете добавлять, удалять, скрывать, перемещать и переименовывать листы.
Для защиты структуры используется метод Document::setStructureProtection(). Опционально вы можете передать в качестве параметра пароль, который будет необходим для снятия защиты:
document.setStructureProtection("password");
При изменении листов в документе с защищенной структурой, возникает исключение SpreadsheetProtectionError. Также это исключение возникает при установке защиты структуры на уже защищенный документ.
Table sheet = document.getBlocks().getTable(0).get();
sheet.remove(); // SpreadsheetProtectionError
Используйте метод Document::isStructureProtected() для получения состояния защиты структуры документа:
std::printf("%s", document.isStructureProtected() ? "True" : "False"); // True
Метод Document::removeStructureProtection() позволяет снять защиту структуры. В качестве параметра вы можете передать пароль, если он использовался при установке защиты. В случае несоответствия введенного пароля заданному при установке, возникает исключение IncorrectPasswordError.
document.removeStructureProtection("password");