Java 是否可以在apache poi中锁定excel工作表而不锁定组大纲功能?

Java 是否可以在apache poi中锁定excel工作表而不锁定组大纲功能?,java,apache-poi,Java,Apache Poi,我使用ApachePOI创建了以下示例 使用以下代码 import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.xssf.usermodel.XSSFWorkbook; im

我使用ApachePOI创建了以下示例

使用以下代码

import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;

public class Main {
    public static final String file = "C:\\Users\\Deepak\\IdeaProjects\\Test\\src\\main\\resources\\test.xlsx";

    public static void main(String[] args) throws IOException {
        Workbook workbook = new XSSFWorkbook();
        Sheet sheet = workbook.createSheet("sheet1");
        for(int row = 0;row < 10;row++) {
            Row rowI = sheet.createRow(row);
            Cell cell = rowI.createCell(0);
            cell.setCellValue("cell"+row+'0');
        }
        sheet.groupRow(1, 5);
        sheet.setRowGroupCollapsed(1, true);
        sheet.protectSheet("dummy");
        workbook.write(new FileOutputStream(new File(file)));
    }
}
import org.apache.poi.ss.usermodel.Cell;
导入org.apache.poi.ss.usermodel.Row;
导入org.apache.poi.ss.usermodel.Sheet;
导入org.apache.poi.ss.usermodel.工作簿;
导入org.apache.poi.xssf.usermodel.xssf工作簿;
导入java.io.File;
导入java.io.FileOutputStream;
导入java.io.IOException;
公共班机{
公共静态最终字符串文件=“C:\\Users\\Deepak\\IdeaProjects\\Test\\src\\main\\resources\\Test.xlsx”;
公共静态void main(字符串[]args)引发IOException{
工作簿=新的XSSF工作簿();
工作表=工作簿。创建工作表(“工作表1”);
对于(int行=0;行<10;行++){
Row rowI=sheet.createRow(行);
Cell Cell=rowI.createCell(0);
cell.setCellValue(“cell”+行+'0');
}
表1.groupRow(1,5);
sheet.setRowGroupCollapsed(1,true);
板材。保护板材(“假人”);
write(新文件输出流(新文件(文件));
}
}
图纸已锁定,但折叠(+)功能也已锁定。我不希望折叠按钮被锁定。有没有办法解决这个问题

我在谷歌上搜索了这个,但没有找到任何关于ApachePOI的信息。我找到了VBA的解决方案,并尝试在ApachePOI中找到类似的方法(EnableOutlineing),但没有找到任何方法

我正在使用ApachePOI3.9


任何帮助/指导都将不胜感激

不,这是不可能的。在图纸受保护时,没有启用大纲显示的设置。至少没有一个存储在文件中

有。但只有在设置了纸张保护
UserInterfaceOnly:=True
时,才能设置此选项。这意味着只有在
Excel
GUI
中打开工作簿时,保护才处于活动状态

看。还有

结论:只有当工作簿包含
VBA
并且能够在
workbook\u Open()
时运行宏并运行
VBA
保护代码时,才可能执行此操作