Jane z
Jane z
Читать 2 минуты

Блокировка определенных ячеек в Excel с помощью Java

В Microsoft Excel вы можете заблокировать определенные ячейки, чтобы предотвратить изменение данных или формул в них другими пользователями. В этой статье вы узнаете, как решить эту задачу программно, используя Free Spire.XLS for Java.

Установка
Метод 1. Загрузите Free Spire.XLS for Java и разархивируйте его, затем добавьте файл Spire.Xls.jar в свой проект в качестве зависимости.

Метод 2. Вы также можете добавить зависимость jar в проект maven, добавив следующие конфигурации в pom.xml.

<repositories>
<repository>
<id>com.e-iceblue</id>
<name>e-iceblue</name>
<url>http://repo.e-iceblue.com/nexus/content/groups/public/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>e-iceblue</groupId>
<artifactId>spire.xls.free</artifactId>
<version>5.1.0</version>
</dependency>
</dependencies>

Шаги и пример кода

Обычно заблокированная опция включена для всех ячеек на листе. Поэтому все ячейки должны быть разблокированы перед блокировкой ячейки или диапазона ячеек. Также обратите внимание, что блокировка ячеек не вступает в силу, пока рабочий лист не будет защищен.

  1. Создайте экземпляр класса Workbook.
  2. Загрузите файл Excel с помощью метода Workbook.loadFromFile().
  3. Получите нужный рабочий лист, используя метод Workbook.getWorksheets().get(sheetIndex).
  4. Получите доступ к используемому диапазону на листе, а затем разблокируйте все ячейки в диапазоне с помощью метода XlsRange.getStyle().setLocked().
  5. Получите доступ к определенным ячейкам, а затем заблокируйте их с помощью метода XlsRange.getStyle().setLocked().
  6. Защитите лист с помощью метода XlsWorksheetBase.protect().
  7. Сохраните полученный файл с помощью метода Workbook.saveToFile().
import com.spire.xls.*;

import java.util.EnumSet;

public class LockCells {
public static void main(String []args){
//Создайте экземпляр класса Workbook
Workbook workbook = new Workbook();
//Загрузить файл Excel workbook.loadFromFile("test.xlsx");

//Получить первый рабочий лист Worksheet sheet = workbook.getWorksheets().get(0);

//Разблокировать все ячейки в используемом диапазоне рабочего листа
CellRange usedRange = sheet.getRange();
usedRange.getStyle().setLocked(false);

//заблокировать определенную ячейку CellRange cells = sheet.getRange().get("D2:D9");
cells.getStyle().setLocked(true); //Защитите рабочий лист паролем
sheet.protect("123456", EnumSet.of(SheetProtectionType.All)); //Сохраните файл результата
workbook.saveToFile("LockCells.xlsx", ExcelVersion.Version2016); } }
Image for post
2 просмотра
Добавить
Еще
Jane z
Подписаться