POI - 将工作表设置为非常隐藏不起作用

Ben*_*rre 5 java apache-poi

我正在使用 POI 库对 XLS 文件执行一些 Java 代码。我试图将一些工作表设置为非常隐藏,因此用户根本无法访问它们。

非常隐蔽的工作表的定义

http://www.kiranjholla.com/myblog/2010/03/the-very-hidden-sheet-in-excel.html

代码

    // Creates and hides a sheet
    HSSFWorkbook workbook = new HSSFWorkbook(inputStream);
    HSSFSheet hiddenSheet = workbook.createSheet(sheetName);
    workbook.setSheetHidden(workbook.getSheetIndex(sheetName), HSSFWorkbook.SHEET_STATE_VERY_HIDDEN);
Run Code Online (Sandbox Code Playgroud)

问题

不幸的是,当我打开生成的 Excel 文件时,我试图隐藏的工作表显示为隐藏,但用户仍然可以使用格式 -> 工作表 -> 显示选项访问它们。

谢谢你的帮助。

小智 3

如果您不希望用户访问您的工作表,则必须在将其设置为非常隐藏之前对其进行密码保护:

    workbook.getSheetAt(0).protectSheet("abc");
    workbook.setSheetHidden(0, HSSFWorkbook.SHEET_STATE_VERY_HIDDEN);
Run Code Online (Sandbox Code Playgroud)

希望它可以帮助

  • 已弃用 - 使用 workbook.setSheetVisibility(0, SheetVisibility.VERY_HIDDEN); (4认同)