Расширенные настройки защиты с Excel XP

Введение

Эти настройки защиты ограничивают или разрешают пользователям:

  • Удалить строки или столбцы.
  • Изменить содержимое, объекты или сценарии.
  • Форматировать ячейки, строки или столбцы.
  • Вставить строки, столбцы или гиперссылки.
  • Выбирать заблокированные или разблокированные ячейки.
  • Использовать сводные таблицы и многое другое.

Aspose.Cells поддерживает все продвинутые настройки защиты, предлагаемые Excel XP или более поздними версиями.

Настройки расширенной защиты с использованием Excel XP и более поздних версий

Чтобы просмотреть доступные настройки защиты в Excel XP:

  1. Из меню Инструменты выберите Защита, а затем Защитить лист. Будет отображено диалоговое окно.

Для просмотра доступных настроек защиты в Excel 2016

  1. В меню Файл выберите Защита книги, а затем Защитить текущий лист.
  2. Выберите Защитить лист в меню Проверка.

Последование вышеупомянутых шагов отображает диалоговое окно, где вы можете разрешить или ограничить функции листов или применить пароль к листу.

Настройки расширенной защиты с использованием Aspose.Cells

Aspose.Cells поддерживает все расширенные настройки защиты.

Aspose.Cells предоставляет класс Workbook, представляющий файл Microsoft Excel. Класс Workbook содержит коллекцию Worksheets, обеспечивающую доступ к каждому листу в файле Excel. Лист представлен классом Worksheet.

Класс Worksheet предоставляет свойство Protection, которое используется для применения этих расширенных настроек защиты. Свойство Protection, на самом деле, является объектом класса Protection, который инкапсулирует несколько булевых свойств для отключения или включения ограничений.

Ниже приведен небольшой пример приложения. Он открывает файл Excel и использует большинство поддерживаемых Excel XP и более поздних версий настроек защиты.

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET
// The path to the documents directory.
string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
// Creating a file stream containing the Excel file to be opened
FileStream fstream = new FileStream(dataDir + "book1.xls", FileMode.Open);
// Instantiating a Workbook object
// Opening the Excel file through the file stream
Workbook excel = new Workbook(fstream);
// Accessing the first worksheet in the Excel file
Worksheet worksheet = excel.Worksheets[0];
// Restricting users to delete columns of the worksheet
worksheet.Protection.AllowDeletingColumn = false;
// Restricting users to delete row of the worksheet
worksheet.Protection.AllowDeletingRow = false;
// Restricting users to edit contents of the worksheet
worksheet.Protection.AllowEditingContent = false;
// Restricting users to edit objects of the worksheet
worksheet.Protection.AllowEditingObject = false;
// Restricting users to edit scenarios of the worksheet
worksheet.Protection.AllowEditingScenario = false;
// Restricting users to filter
worksheet.Protection.AllowFiltering = false;
// Allowing users to format cells of the worksheet
worksheet.Protection.AllowFormattingCell = true;
// Allowing users to format rows of the worksheet
worksheet.Protection.AllowFormattingRow = true;
// Allowing users to insert columns in the worksheet
worksheet.Protection.AllowFormattingColumn = true;
// Allowing users to insert hyperlinks in the worksheet
worksheet.Protection.AllowInsertingHyperlink = true;
// Allowing users to insert rows in the worksheet
worksheet.Protection.AllowInsertingRow = true;
// Allowing users to select locked cells of the worksheet
worksheet.Protection.AllowSelectingLockedCell = true;
// Allowing users to select unlocked cells of the worksheet
worksheet.Protection.AllowSelectingUnlockedCell = true;
// Allowing users to sort
worksheet.Protection.AllowSorting = true;
// Allowing users to use pivot tables in the worksheet
worksheet.Protection.AllowUsingPivotTable = true;
// Saving the modified Excel file
excel.Save(dataDir + "output.xls", SaveFormat.Excel97To2003);
// Closing the file stream to free all resources
fstream.Close();

Проблема блокировки ячеек

Если вы хотите ограничить пользователей от редактирования ячеек, ячейки должны быть заблокированы перед применением настроек защиты. В противном случае, ячейки можно редактировать, даже если лист защищен. В Microsoft Excel XP ячейки можно заблокировать через следующий диалог:

Диалог для блокировки ячеек в Excel XP
todo:image_alt_text

Хранение ячеек также можно осуществить с использованием API Aspose.Cells. Каждая ячейка может получить Style формат, который содержит логическое свойство, IsLocked. Установите свойство IsLocked в true или false для блокировки или разблокировки ячейки.

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET
// The path to the documents directory.
string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
Workbook workbook = new Workbook(dataDir + "Book1.xlsx");
// Accessing the first worksheet in the Excel file
Worksheet worksheet = workbook.Worksheets[0];
worksheet.Cells["A1"].GetStyle().IsLocked = true;
// Finally, Protect the sheet now.
worksheet.Protect(ProtectionType.All);
workbook.Save(dataDir + "output.xlsx");