Java Excel文件加密保護(hù)數(shù)據(jù)安全
前言
Excel文件保護(hù)是常用的一種功能,文件保護(hù)主要有三種:
- 添加密碼,如果沒(méi)有密碼不允許打開(kāi)文件。
- 添加密碼,如果沒(méi)有密碼,不能修改文件,但可以打開(kāi),只讀以及另存文件。
- 只讀推薦,通常推薦打開(kāi)Excel文件的用戶(hù)使用只讀模式打開(kāi),這種方式僅是一種提示,并非強(qiáng)行保護(hù)文件。
給Excel添加保護(hù)
情況1:
下面的代碼將展示如何打開(kāi)名為 "test.xlsx" 的 Excel 文件,并將其另存為 "password.xlsx"。在保存時(shí),使用 XlsxSaveOptions 對(duì)象將密碼設(shè)置為 "123456",以確保數(shù)據(jù)的安全性。
Workbook wb = new Workbook();
wb.open("test.xlsx");
XlsxSaveOptions options = new XlsxSaveOptions();
options.setPassword("123456");
wb.save("password.xlsx", options);情況2:
與情況1一樣,打開(kāi)test.xlsx文件,并添加只讀型密碼,同時(shí)修改密碼設(shè)置人的信息。
Workbook wb = new Workbook();
wb.open("resources/test.xlsx");
wb.getWriteProtection().setWritePassword("123456");
wb.getWriteProtection().setWriteReservedBy("J123");
wb.save("output/readOnlyByPassword.xlsx");打開(kāi)“readOnlyByPassword.xlsx”時(shí),可以看到下圖:

情況3:
添加一個(gè)推薦只讀的設(shè)置給readonly.xlsx文件。
Workbook wb = new Workbook();
wb.open("test.xlsx");
wb.getWriteProtection().setReadOnlyRecommended(true);
wb.save("output/readonly.xlsx");
給Excel解除保護(hù)
情況1:
移除Excel文件的密碼,代碼如下。
Workbook wb = new Workbook();
wb.open("output/password.xlsx", "123456");
wb.unprotect("123456");
wb.save("output/passwordUn.xlsx");情況2:
移除Readonly寫(xiě)保護(hù)。
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推薦設(shè)置
Workbook wb = new Workbook();
wb.open("resources/ErrorData.xlsx");
wb.getWriteProtection().setReadOnlyRecommended(false);
wb.save("output/readonlyUn.xlsx");總結(jié)
Java提供了一種方便而可靠的方法,可以為Excel文件添加保護(hù)以確保數(shù)據(jù)的安全性和完整性。通過(guò)這些工具,可以輕松地創(chuàng)建、編輯和保護(hù)Excel文件,并將其保存到本地磁盤(pán)或其他存儲(chǔ)設(shè)備中,
以上就是Java Excel文件加密保護(hù)數(shù)據(jù)安全的詳細(xì)內(nèi)容,更多關(guān)于Java Excel文件數(shù)據(jù)加密的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Java/Android 實(shí)現(xiàn)簡(jiǎn)單的HTTP服務(wù)器
這篇文章主要介紹了Java/Android 如何實(shí)現(xiàn)簡(jiǎn)單的HTTP服務(wù)器,幫助大家更好的進(jìn)行功能測(cè)試,感興趣的朋友可以了解下2020-10-10
SpringBoot異步線程父子線程數(shù)據(jù)傳遞的5種方式
這篇文章主要介紹了SpringBoot異步線程父子線程數(shù)據(jù)傳遞的5種方式,文中通過(guò)代碼示例給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下2024-08-08
Java Math類(lèi)的三個(gè)方法ceil,floor,round用法
這篇文章主要介紹了Java Math類(lèi)的三個(gè)方法ceil,floor,round用法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-07-07
Java調(diào)用本地庫(kù)的JNA快速入門(mén)教程
JNA(Java Native Access)是Java庫(kù),簡(jiǎn)化調(diào)用操作系統(tǒng)API,本文通過(guò)一個(gè)示例項(xiàng)目展示了如何使用JNA與C/C++編寫(xiě)的DLL交互,包括定義原生接口、數(shù)據(jù)類(lèi)型映射、指針和引用的處理、結(jié)構(gòu)體的使用以及異常處理等,感興趣的朋友一起看看吧2025-09-09
springboot結(jié)合JWT實(shí)現(xiàn)單點(diǎn)登錄的示例
本文主要介紹了springboot結(jié)合JWT實(shí)現(xiàn)單點(diǎn)登錄的示例,包括生成Token、驗(yàn)證Token及使用Redis存儲(chǔ)Token,具有一定的參考價(jià)值,感興趣的可以了解一下2025-01-01
Springmvc文件上傳實(shí)現(xiàn)流程解析
這篇文章主要介紹了Springmvc文件上傳實(shí)現(xiàn)流程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-09-09

