Защитите определенные ячейки на листе Excel
В этом уроке мы рассмотрим исходный код C#, который использует библиотеку Aspose.Cells для защиты определенных ячеек в электронной таблице Excel. Мы рассмотрим каждый шаг кода и объясним, как он работает. Внимательно следуйте инструкциям, чтобы получить желаемые результаты.
Шаг 1: Предварительные условия
Прежде чем начать, убедитесь, что у вас установлена библиотека Aspose.Cells для .NET. Вы можете получить его на официальном сайте Aspose. Также убедитесь, что у вас установлена последняя версия Visual Studio или любой другой среды разработки C#.
Шаг 2. Импортируйте необходимые пространства имен.
Чтобы использовать библиотеку Aspose.Cells, нам необходимо импортировать необходимые пространства имен в наш код. Добавьте следующие строки в начало исходного файла C#:
using Aspose.Cells;
Шаг 3. Создание книги Excel
На этом этапе мы создадим новую книгу Excel. Используйте следующий код для создания книги Excel:
// Путь к каталогу документов.
string dataDir = "YOUR_DIRECTORY_OF_DOCUMENTS";
// Создайте новую книгу.
Workbook wb = new Workbook();
Обязательно замените"YOUR_DOCUMENTS_DIR"
с соответствующим путем к каталогу ваших документов.
Шаг 4. Создание электронной таблицы
Теперь, когда мы создали книгу Excel, давайте создадим рабочий лист и получим первый лист. Используйте следующий код:
// Создайте объект электронной таблицы и получите первый лист.
Worksheet sheet = wb.Worksheets[0];
Шаг 5: Определение стиля
На этом этапе мы определим стиль, который будет применяться к конкретным ячейкам. Используйте следующий код:
// Определение объекта стиля.
Styling styling;
Шаг 6. Повторите цикл, чтобы разблокировать все столбцы.
Теперь мы пройдемся по всем столбцам на листе и разблокируем их. Используйте следующий код:
// Просмотрите все столбцы на листе и разблокируйте их.
for (int i = 0; i <= 255; i++)
{
style = sheet.Cells.Columns[(byte)i].Style;
style. IsLocked = false;
sheet.Cells.Columns[(byte)i].ApplyStyle(style);
}
Шаг 7: Блокировка определенных ячеек
На этом этапе мы заблокируем определенные ячейки. Используйте следующий код:
//Блокировка всех трех ячеек... т.е. A1, B1, C1.
style = sheet.Cells["A1"].GetStyle();
style. IsLocked = true;
sheet.Cells["A1"].SetStyle(style);
style = sheet.Cells["B1"].GetStyle();
style. IsLocked = true;
sheet.Cells["B1"].SetStyle(style);
style = sheet.Cells["C1"].GetStyle();
style. IsLocked = true;
sheet.Cells["C1"].SetStyle(style);
Шаг 8. Защита листа
Наконец, мы защитим рабочий лист, чтобы предотвратить изменение определенных ячеек. Используйте следующий код:
// Защитите рабочий лист.
sheet.Protect(ProtectionType.All);
Шаг 9: Сохранение файла Excel
Теперь мы сохраним измененный файл Excel. Используйте следующий код:
// Сохраните файл Excel.
wb.Save(dataDir + "output.out.xls", SaveFormat.Excel97To2003);
Обязательно укажите правильный путь для сохранения измененного файла Excel.
Пример исходного кода для защиты определенных ячеек на листе Excel с использованием Aspose.Cells для .NET
//Путь к каталогу документов.
string dataDir = "YOUR DOCUMENT DIRECTORY";
// Создайте каталог, если он еще не существует.
bool IsExists = System.IO.Directory.Exists(dataDir);
if (!IsExists)
System.IO.Directory.CreateDirectory(dataDir);
// Создайте новую книгу.
Workbook wb = new Workbook();
// Создайте объект рабочего листа и получите первый лист.
Worksheet sheet = wb.Worksheets[0];
// Определите объект стиля.
Style style;
// Определите объект styleflag
StyleFlag styleflag;
// Просмотрите все столбцы на листе и разблокируйте их.
for (int i = 0; i <= 255; i++)
{
style = sheet.Cells.Columns[(byte)i].Style;
style.IsLocked = false;
styleflag = new StyleFlag();
styleflag.Locked = true;
sheet.Cells.Columns[(byte)i].ApplyStyle(style, styleflag);
}
// Заблокируйте три ячейки... т.е. A1, B1, C1.
style = sheet.Cells["A1"].GetStyle();
style.IsLocked = true;
sheet.Cells["A1"].SetStyle(style);
style = sheet.Cells["B1"].GetStyle();
style.IsLocked = true;
sheet.Cells["B1"].SetStyle(style);
style = sheet.Cells["C1"].GetStyle();
style.IsLocked = true;
sheet.Cells["C1"].SetStyle(style);
// Наконец, защитите лист сейчас.
sheet.Protect(ProtectionType.All);
// Сохраните файл Excel.
wb.Save(dataDir + "output.out.xls", SaveFormat.Excel97To2003);
Заключение
Поздравляем! Теперь у вас есть исходный код C#, который позволяет защитить определенные ячейки на листе Excel с помощью библиотеки Aspose.Cells для .NET. Не стесняйтесь настраивать код в соответствии с вашими конкретными потребностями.
Часто задаваемые вопросы (часто задаваемые вопросы)
Работает ли этот код с последними версиями Excel?
Да, этот код работает с последними версиями Excel, включая файлы в формате Excel 2010 и более поздних версий.
Могу ли я защитить другие ячейки, кроме A1, B1 и C1?
Да, вы можете изменить код, чтобы заблокировать другие конкретные ячейки, изменив ссылки на ячейки в соответствующих строках кода.
Как я могу снова разблокировать заблокированные ячейки?
Вы можете использоватьSetStyle
метод сIsLocked
установлен вfalse
чтобы разблокировать ячейки.
Могу ли я добавить в книгу дополнительные листы?
Да, вы можете добавить в книгу другие листы, используяWorksheets.Add()
метод и повторите шаги защиты ячеек для каждого листа.
Как изменить формат сохранения файла Excel?
Вы можете изменить формат сохранения с помощьюSaveFormat
метод с нужным форматом, напримерSaveFormat.Xlsx
для Excel 2007 и более поздних версий.