gpt4 book ai didi

java - 是否可以解锁 protected 工作表中的特定单元格(使用 Aspose)

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:28:32 25 4
gpt4 key购买 nike

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

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

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

问题是我正在搜索以检查是否可以执行此操作(保护整个工作表并仅解锁几个单元格),但似乎不可能。请.. 告诉我我错了,有一种方法可以做到这一点,否则我将不得不锁定工作表中所有现有的单元格并只解锁其中的 4 个。对于我使用另一个库 (PHPExcel) 的经验,它在性能方面似乎非常昂贵(我必须将它应用于 1000 行和超过 40 列,所以它真的很昂贵)。

最佳答案

这可以通过 Aspose.Cells for Java 轻松完成。你可以

  1. 首先锁定工作表中的所有列(所有单元格)
  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 担任开发人员布道师。

关于java - 是否可以解锁 protected 工作表中的特定单元格(使用 Aspose),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17996913/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com