当前位置: 首页 > 面试题库 >

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

云文栋
2023-03-14
问题内容

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


问题答案:

在Apache POI 3.9中,可以通过启用锁定功能来使用XSSF
Sheet保护。甚至您可以留下一些未锁定的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();

}


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

  • 请记住,这与保护单个工作表的密码不同,在单个工作表中,用户仍然能够打开文件并查看数据,但具有只读访问权限。 我在SXSSFWorkbook文档中没有找到任何东西:https://poi.apache.org/apidocs/org/apache/poi/xssf/streaming/SXSSFWorkbook.html 看起来XSSFWorkbook有一个名为setWorkbookPassword

  • 我目前正在考虑将Xamarin作为开发平板电脑应用程序的一个选项(目前的目标是iOS和Android,但将来考虑将其移植到Win8平板电脑) 要存储的数据非常敏感,所以安全性是我最关心的问题。 到目前为止,我在想两个选择: a) SQLite SQLCipher:假设Win8平板电脑将具有SQLite支持,并且SQLCipher也将在Win8上工作。 b) 隔离存储DPAPI:假设此DPAPI方法

  • 我有一个与Excel工作表保护有关的问题... 上下文是,我需要有不同的工作表可供不同的用户组编辑,但所有组必须至少看到所有工作表,例如,usergroup1可以编辑工作表2和工作表3以及工作表1的一部分,usergroup2只能编辑工作表1。 我可以相应地设置FormatProtection()和WorksheetProtection()来启用此功能,但我似乎没有能力通过API针对工作表保护设置

  • 假设你有一个10,000个文档的集合,我用选项限制(50)进行一个查找查询。mongoDb将如何选择返回哪50个文档。 它会不会自动对它们进行排序(可能是按它们的创建日期排序)? 查询是否每次调用都会返回相同的文档?限制选项在mongoDB中是如何工作的? mongoDB是否在文档返回后或查询时限制文档。这意味着mongoDB会查询所有文档,将结果限制为50个文档,还是只查询50个文档?

  • 问题内容: 我正在尝试使用Apache POI设置工作表选项卡的背景色。我似乎无法弄清楚如何在标签本身上设置样式。 谢谢您的帮助! 问题答案: 看来这是不可能的。嘘 这是为什么的最佳解释: http://osdir.com/ml/user- poi.apache.org/2009-03/msg00034.html