我正在使用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);

问题

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

谢谢你的帮助。

最佳答案

如果您不希望用户访问工作表,则必须先对其进行密码保护,然后再将其设置为隐藏状态:

    workbook.getSheetAt(0).protectSheet("abc");
    workbook.setSheetHidden(0, HSSFWorkbook.SHEET_STATE_VERY_HIDDEN);

希望对您有所帮助

关于java - POI-将工作表设置为非常隐藏无法正常工作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40998361/

10-15 11:52