是否有可能解锁受保护的工作表中的特定单元格(使用Aspose)

我正在使用Aspose-Cells和java在我的系统中导出excel模板。

在这个特定的情况下,我生成一个电子表格,我有两张表,我想保护。 其中之一,我需要让用户只编辑4个单元格。 其余的都应该保护。 最简单的实现应该是:

  1. 保护表格
  2. 解锁我想让用户编辑的每个单元格。

问题是,我正在search,以检查是否有可能做到这一点(保护整个表和解锁只有几个单元格),似乎是不可能的。 请..告诉我,我错了,有一种方法可以做到这一点,否则我将不得不locking工作表中的所有现有的单元格,并只解锁其中的4个。为了使用另一个库(PHPExcel)的经验,似乎是非常昂贵的性能(我不得不申请1000行和40多列,所以这是非常昂贵的)。

可以使用Aspose.Cells for Java轻松完成。 您可以

  1. 首先locking工作表中的所有列(所有单元格)
  2. 解锁特定单元格或单元格的范围

请参阅下面的示例。

 String dataDir = "D:\\data\\"; // Create or load workbook Workbook book = new Workbook(); // Get the first worksheet Worksheet sheet = book.getWorksheets().get(0); Style style; StyleFlag flag = new StyleFlag(); // First lock all columns for (int iCol=0 ; iCol<255 ; iCol++) { // Get style of the column style = sheet.getCells().getColumns().get(iCol).getStyle(); // Apply locking to the style style.setLocked(true); flag.setLocked(true); sheet.getCells().getColumns().get(iCol).applyStyle(style, flag); } // Get the range of cells, which we want to unlock Range rangeUnlocked = sheet.getCells().createRange("A1:D4"); // Add a new style int styleIndex = book.getStyles().add(); Style styleUnlocked = book.getStyles().get(styleIndex); // Unlock cells styleUnlocked.setLocked(false); rangeUnlocked.setStyle(styleUnlocked); // Protect the sheet sheet.protect(ProtectionType.ALL); //Save the Excel file book.save(dataDir + "protectedrange.xlsx"); 

我在Aspose作为开发者传播者工作。