简体   繁体   English

如何使用Apache poi库保护XSSFWorkbook中的工作表?

[英]How to protect worksheets in XSSFWorkbook using Apache poi library?

How to protect worksheets in XSSFWorkbook using Apache poi library? 如何使用Apache poi库保护XSSFWorkbook中的工作表? I saw many solutions on SO and other sites but they are old or not working. 我在SO和其他站点上看到了许多解决方案,但是它们已经过时或无法正常工作。

   <dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml</artifactId>
    <version>3.15</version>
  </dependency>

Below is the sample code: 下面是示例代码:

FileInputStream excelFile = new FileInputStream(new File(FILE_NAME));
        XSSFWorkbook workbook = new  XSSFWorkbook(FILE_NAME);
        XSSFSheet s = (XSSFSheet) workbook.getSheetAt(0);

        s.enableLocking();
        s.lockDeleteColumns(true);
        s.protectSheet("password");

        workbook.lockStructure();
        workbook.close();

After trying for hours I found the issue and it was very stupid mistake. 尝试了几个小时后,我发现了问题,这是非常愚蠢的错误。 workbook does not update itself, instead we have to create new workbook which will have the protected sheet. 工作簿不会自我更新,而是必须创建具有受保护工作表的新工作簿。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM