Блокировка ячеек для защиты с помощью Python.NET
Contents
[
Hide
]
Возможные сценарии использования
Блокировка ячеек с целью защиты — распространённая практика в программах для работы с таблицами, таких как Microsoft Excel или Google Sheets, по нескольким важным причинам:
- Предотвращение случайных изменений: блокировка ячеек может помешать пользователям случайно изменить важные данные или формулы.
- Поддержание целостности данных: обеспечение сохранения критически важных данных в актуальном состоянии.
- Управляемый доступ: управление разрешениями на редактирование в совместной работе.
- Защита формул: сохранение важных расчетов от изменений.
- Соблюдение бизнес-правил: соответствие требованиям защиты данных.
- Руководство пользователями: предоставление ясных областей для редактирования в сложных таблицах.
Как заблокировать ячейки для защиты в Excel
Вот как можно заблокировать ячейки в Microsoft Excel:
- Выберите ячейки для блокировки: выберите ячейки или пропустите, чтобы заблокировать весь лист.
- Откройте диалоговое окно «Формат ячеек»: Правый клик > «Формат ячеек» или Ctrl+1.
- Заблокируйте ячейки: перейдите на вкладку «Защита» > установите флажок «Заблокировано» > нажмите «ОК».
- Защитите лист: вкладка “Обзор” > “Защитить лист” > Установите пароль/разрешения > Нажмите “OK”.
Как заблокировать ячейки для их защиты с помощью Python
Aspose.Cells для Python via .NET позволяет программно защищать ячейки. Следуйте этим шагам:
- Загрузите пример файла
- Разблокируйте все ячейки (по умолчанию защита не применяется, пока не активирована защита)
- Заблокировать определённые ячейки
- Защитите лист для применения блокировки
import aspose.cells as ac
# Load sample workbook
workbook = ac.Workbook("sample.xlsx")
worksheet = workbook.worksheets[0]
# Unlock all cells first
style = ac.Style()
style.is_locked = False
style_flag = ac.StyleFlag()
style_flag.locked = True
worksheet.cells.apply_style(style, style_flag)
# Lock specific cells
worksheet.cells["A1"].get_style().is_locked = True
worksheet.cells["B2"].get_style().is_locked = True
# Enable worksheet protection
worksheet.protect(ac.ProtectionType.ALL)
# Save protected workbook
workbook.save("output.xlsx")
Результат вывода
Эта реализация блокирует указанные ячейки (A1 и B2), в то время как остальные остаются редактируемыми. Защита листа обеспечивает выполнение этих настроек.

from aspose.cells import Workbook, ProtectionType, StyleFlag
# Load the Excel file
workbook = Workbook("sample.xlsx")
# Access the first worksheet
sheet = workbook.worksheets[0]
# Unlock all cells first
unlock_style = workbook.create_style()
unlock_style.is_locked = False
style_flag = StyleFlag()
style_flag.locked = True
sheet.cells.apply_style(unlock_style, style_flag)
# Lock specific cells (A1 and B2)
lock_style = workbook.create_style()
lock_style.is_locked = True
sheet.cells.get("A1").set_style(lock_style)
sheet.cells.get("B2").set_style(lock_style)
# Protect the worksheet to enforce locking
sheet.protect(ProtectionType.ALL)
# Save the modified workbook
workbook.save("output_locked.xlsx")