Excel的book保护是很常用的,主要是不想让别人修改Excel的时候用。这样能够避免恶意随便修改数据,提高数据的可信度。
那么JAVA来实现设置book保护怎么做呢?
查找了几种常见的JAVA操作Excel的一些包,大体结果如下:
1. POI
POI的HSSFWorkbook类有writeProtectWorkbook(password, username)。这边可以设置密码和是谁保护的,但这个顾名思义就是写保护,实现的效果和Excel的book保护有出入。
当然,sheet保护的话用HSSFSheet类的protectSheet(password)方法就可以了。
2. JXL
Workbook类的setProtected(boolean)方法感觉是用来做book保护的,但看了说明是设置sheet保护的。因此也是实现不了book保护的效果。
3. OpenXLS
最后好不容易找到了这个包。WorkBook的setProtected(true)方法设置后就实现了book保护。代码如下:
// read file
WorkBook workbook = new WorkBookHandle(new FileInputStream(new File("d:/openxlsTest.xls")));
// protect
workbook.setProtected(true);
// write file
workbook.writeBytes(new FileOutputStream(new File("d:/openxlsProtect.xls")));
book保护后的效果,sheet不能增加,删除等