Java助力加固Excel檔案,保障資料安全

葡萄城技术团队發表於2024-07-01

前言

Excel檔案保護是常用的一種功能,檔案保護主要有三種:

  1. 新增密碼,如果沒有密碼不允許開啟檔案。
  2. 新增密碼,如果沒有密碼,不能修改檔案,但可以開啟,只讀以及另存檔案。
  3. 只讀推薦,通常推薦開啟Excel檔案的使用者使用只讀模式開啟,這種方式僅是一種提示,並非強行保護檔案。

給Excel新增保護

情況1:

下面的程式碼將展示如何開啟名為 "test.xlsx" 的 Excel 檔案,並將其另存為 "password.xlsx"。在儲存時,使用 XlsxSaveOptions 物件將密碼設定為 "123456",以確保資料的安全性。

Workbook wb = new Workbook();
 wb.open("test.xlsx");
 XlsxSaveOptions options = new XlsxSaveOptions();
 options.setPassword("123456");
 wb.save("password.xlsx", options);

情況2:

與情況1一樣,開啟test.xlsx檔案,並新增只讀型密碼,同時修改密碼設定人的資訊。

Workbook wb = new Workbook();
 wb.open("resources/test.xlsx");
 wb.getWriteProtection().setWritePassword("123456");
 wb.getWriteProtection().setWriteReservedBy("J123");
 wb.save("output/readOnlyByPassword.xlsx");

開啟“readOnlyByPassword.xlsx”時,可以看到下圖:

情況3:

新增一個推薦只讀的設定給readonly.xlsx檔案。

Workbook wb = new Workbook();
 wb.open("test.xlsx");
 wb.getWriteProtection().setReadOnlyRecommended(true);
 wb.save("output/readonly.xlsx");

給Excel解除保護

情況1:

移除Excel檔案的密碼,程式碼如下。

Workbook wb = new Workbook();
 wb.open("output/password.xlsx", "123456");
 wb.unprotect("123456");
 wb.save("output/passwordUn.xlsx");

情況2:

移除Readonly防寫。

Workbook wb = new Workbook();
   XlsxOpenOptions option = new XlsxOpenOptions();
   option.setPassword("123456");
   wb.open("output/readOnlyByPassword.xlsx", option);
   wb.getWriteProtection().setWritePassword(null);
   wb.save("output/readOnlyByPasswordUn.xlsx");

情況3:

移除Readonly推薦設定

Workbook wb = new Workbook();
 wb.open("resources/ErrorData.xlsx");
 wb.getWriteProtection().setReadOnlyRecommended(false);
 wb.save("output/readonlyUn.xlsx");

總結

Java提供了一種方便而可靠的方法,可以為Excel檔案新增保護以確保資料的安全性和完整性。透過這些工具,可以輕鬆地建立、編輯和保護Excel檔案,並將其儲存到本地磁碟或其他儲存裝置中,除此之外,如果您對我們的產品GcExcel感興趣的話可以訪問官網瞭解更多詳細資訊。

擴充套件連結:

從表單驅動到模型驅動,解讀低程式碼開發平臺的發展趨勢

低程式碼開發平臺是什麼?

基於分支的版本管理,幫助低程式碼從專案交付走向定製化產品開發

相關文章