MS Excel 为您提供了广泛的功能来无缝地保存和分析数据。您可以使用 VBA 模块执行计算、生成图表以及定义自定义逻辑。了解电子表格中数据的重要性,MS Excel 允许您使用加密保护工作簿。此外,您可以对 Excel 文件进行密码保护,以避免未经授权的访问。据此,本文介绍了如何使用 Java 对 Excel 文件进行加密/解密和密码保护。
用于加密和解密 Excel 文件的 Java API
Aspose.Cells for Java 是一个强大的电子表格操作 API,可让您无缝地创建和操作 Excel 文件。此外,它允许您在几行代码内加密和解密工作簿。此外,您可以使用密码保护 Excel 文件。 Aspose.Cells for Java 可以下载为 JAR 或使用以下 Maven 配置安装。
<repository>
<id>AsposeJavaAPI</id>
<name>Aspose Java API</name>
<url>https://repository.aspose.com/repo/</url>
</repository>
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-cells</artifactId>
<version>20.12</version>
</dependency>
使用 Java 加密 Excel 文件
Aspose.Cells for Java 为 Excel 2003 文件提供以下加密类型。
- 异或
- 兼容的 (Office 97/2000 compatible)
- 增强型密码提供程序 V1
- 强大的密码提供商
但是,2007/2010 工作簿使用 SHA 和 AES 加密技术进行加密,方式与 MS Excel 相同。以下是使用 Aspose.Cells for Java 加密 Excel 文件的步骤。
- 使用 Workbook 类加载 Excel 文件。
- 使用 Workbook.getSettings().setPassword(string) 方法设置密码。
- 使用 Workbook.setEncryptionOptions(EncryptionType, int) 方法加密 Excel 文件。
- 使用 Workbook.save(string) 方法保存加密的工作簿。
为了演示,以下代码示例显示了如何使用 Java 加密 Excel 文件。
// 通过 excel 文件路径实例化工作簿对象
Workbook workbook = new Workbook("workbook.xlsx");
// 密码保护文件
workbook.getSettings().setPassword("1234");
// 通过指定加密类型进行加密
workbook.setEncryptionOptions(EncryptionType.XOR, 40);
// 指定强加密类型(RC4,Microsoft Strong Cryptographic Provider)
workbook.setEncryptionOptions(EncryptionType.STRONG_CRYPTOGRAPHIC_PROVIDER, 128);
// 保存加密的 Excel 文件
workbook.save("encrypted-workbook.xlsx");
使用 Java 解密 Excel 文件
为了解密加密的 Excel 文件,您只需要提供其密码,其余的将由 Aspose.Cells for Java 处理。以下是使用 Java 解密 Excel 文件的步骤。
- 创建 LoadOptions 类的实例。
- 使用 LoadOptions.setPassword(string) 方法指定密码。
- 创建 Workbook 类的实例并将文件的路径和 LoadOptions 对象传递给其构造函数。
- 使用 Workbook.getSettings().setPassword(string) 方法将密码设置为 null。
- 完成后,使用 Workbook.save(string) 方法保存解密的工作簿。
以下代码示例显示如何使用 Java 解密受密码保护的 Excel 文件。
// 初始化加载选项
LoadOptions loadOptions = new LoadOptions(LoadFormat.XLSX);
// 设置原始密码
loadOptions.setPassword("1234");
// 使用 Excel 文件的路径实例化工作簿对象
Workbook workbook = new Workbook("encrypted-workbook.xlsx", loadOptions);
// 将密码设置为空
workbook.getSettings().setPassword(null);
// 保存解密的 Excel 文件
workbook.save("decrypted-workbook.xlsx");
验证加密 Excel 文件的密码
除了加密/解密,Aspose.Cells for Java 还允许您验证受保护 Excel 文件的密码。以下是执行密码验证的步骤。
- 使用 FileInputStream 类加载加密的 Excel 文件。
- 使用 FileFormatUtil.verifyPassword(FileInputStream, string) 方法验证密码。
- 因此,如果返回值为 true,则密码有效,否则密码无效。
以下代码示例显示了如何使用 Java 验证加密 Excel 文件的密码。
// 创建一个流对象
FileInputStream fstream = new FileInputStream("encrypted-workbook.xlsx");
// 验证密码
boolean isPasswordValid = FileFormatUtil.verifyPassword(fstream, "1234");
// 打印结果
System.out.println("Password is Valid: " + isPasswordValid);
获取免费 API 许可证
如果您想在没有评估限制的情况下试用 API,您可以获得免费的临时许可证。
结论
在本文中,您学习了如何使用 Java 加密或解密 Excel 文件。此外,您还了解了如何验证加密 Excel 文件的密码。如果您想了解更多有关 Java 电子表格操作 API 的信息,请访问 文档。