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 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) 方法驗證密碼。
- 因此,如果返回值為真,則密碼有效,否則無效。
以下代碼示例顯示如何使用 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 的更多信息,請訪問 文檔。