java - Apache POI - 如何使用选项保护工作表?

标签 java excel-2007 apache-poi

我正在使用 Apache POI 生成 Excel 文件 (2007)。我想要的是保护工作表,但启用了一些选项。我所说的选项是指当您尝试保护 Excel 应用程序中的工作表时的复选框列表(在标签“允许此工作表的所有用户:”下)。具体来说,我想启用“选择锁定/解锁单元格”、“格式化列”、“排序”和“允许自动筛选”。非常感谢! :D

最佳答案

在 Apache POI 3.9 中你可以使用 通过启用锁定功能来保护 XSSF 工作表。即使你可以留下几个解锁的 excel 对象,如下例我遗漏了解锁的 excel 对象(即文本框),其余的都被锁定了。

 private static void lockAll(Sheet s, XSSFWorkbook workbookx){
    String password= "abcd";
    byte[] pwdBytes = null;
    try {
        pwdBytes  = Hex.decodeHex(password.toCharArray());
    } catch (DecoderException e) {
        e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
    }
    XSSFSheet sheet = ((XSSFSheet)s);
    removePivot(s,workbookx);
    sheet.lockDeleteColumns();
    sheet.lockDeleteRows();
    sheet.lockFormatCells();
    sheet.lockFormatColumns();
    sheet.lockFormatRows();
    sheet.lockInsertColumns();
    sheet.lockInsertRows();
    sheet.getCTWorksheet().getSheetProtection().setPassword(pwdBytes);
    for(byte pwdChar :pwdBytes){
        System.out.println(">>> Sheet protected with '" + pwdChar + "'");
    }
    sheet.enableLocking();

    workbookx.lockStructure();

}

关于java - Apache POI - 如何使用选项保护工作表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14701322/

相关文章:

使用 maven 的 Java Cloudinary

java - 在 AWS Lambda Java 项目中从 API 网关获取映射模板作为 JSON

java - 调整动画 GIF 的大小,同时使用 java 保持它的动画

java - 在 Bean 中仅实例化一次值

c# - Excel 2007 OLEDB 连接 : error when file contains hyperlink

excel-2007 - 在 Excel 2007 工作表单元格中显示自定义文档属性值

java - 没有写在excel表中

java - 使用 Apache POI 的空白列和行的空指针

excel - Excel中与分隔符公式连接的问题

java - 读取带有公式的单元格给出与 Excel 文件不同的结果 - Java Apache POI