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