Java 如何防止用户使用ApachePOI库在excel中选择锁定单元格?

Java 如何防止用户使用ApachePOI库在excel中选择锁定单元格?,java,excel,apache-poi,Java,Excel,Apache Poi,我正在使用ApachePOI库来保护excel工作表,我正在解锁一些单元格并锁定其余单元格,此外,我还隐藏了一些列。但当用户使用CTRL+A选择所有列时,他/她也可以复制所有数据,包括隐藏列 我在excel中发现了一种阻止用户选择受保护单元格的方法,下面是相同单元格的快照 从“选择锁定单元格”中删除勾号将阻止用户选择受保护的单元格,但我无法在代码中找到这样做的方法 如何在使用ApachePOI的代码中实现这一点 我正在使用下面的代码来读取工作簿对象 Workbook workbook = Wo

我正在使用ApachePOI库来保护excel工作表,我正在解锁一些单元格并锁定其余单元格,此外,我还隐藏了一些列。但当用户使用CTRL+A选择所有列时,他/她也可以复制所有数据,包括隐藏列

我在excel中发现了一种阻止用户选择受保护单元格的方法,下面是相同单元格的快照

从“选择锁定单元格”中删除勾号将阻止用户选择受保护的单元格,但我无法在代码中找到这样做的方法

如何在使用ApachePOI的代码中实现这一点

我正在使用下面的代码来读取工作簿对象

Workbook workbook = WorkbookFactory.create(new File(FILE_PATH));

我可以隐藏列、保护工作表和解锁列,现在我想阻止用户选择锁定的单元格。

XSSF工作簿和XSSFSheet不使用工作簿对象,而是允许使用我想要的许多控件

XSSFWorkbook workbook = (XSSFWorkbook )WorkbookFactory.create(new File(FILE_PATH));
XSSFSheet sheet = workbook.getSheet(SHEET_NAME);
sheet.enableLocking();
sheet.protectSheet(SHEET_PROTECT_PASSWORD);
sheet.lockSelectLockedCells(true);