Java实现Excel文件加密解密的示例代码(excel怎么把加密文件解密)

网友投稿 335 2022-07-27


目录概述示例大纲工具java代码示例示例1加密工作簿示例2解密工作簿示例3加密工作表示例4加密工作表指定数据范围示例5设置工作表公式隐藏示例6解密Excel工作表

概述

设置excel文件保护时,通常可选择对整个工作簿进行加密保护,打开文件时需要输入密码;或者对指定工作表进行加密,即设置表格内容只读,无法对工作表进行编辑。另外,也可以对工作表特定区域设置保护,即设置指定区域可编辑或者隐藏数据公式,保护数据信息来源。无需设置文档保护时,可撤销密码保护,即解密文档。下面,将通过java程序演示以上加密、解密方法的实现。

示例大纲

1. Excel工作簿

1.1 加密工作簿

1.2 解密工作簿

2. Excel工作表

2.1 加密工作表

2.2 加密工作表指定数据范围

2.3 设置工作表公式不可见

2.4解密Excel工作表

工具

工具:Free Spire.XLS for Java (免费版)

注1: 可通过官网下载jar包,并解压将lib文件夹中的jar文件导入java程序;或者通过maven仓库下载安装导入。

注2:这里设置工作表保护时,可支持多种不同类型的保护(如下图),本文示例以选择其中一种为例。

Java代码示例

示例1加密工作簿

import com.spire.xls.*;

public class ProtectWb {

public static void main(String[] args) {

//加载测试文档

Workbook wb = new Workbook();

wb.loadFromFile("sample.xlsx");

//使用密码加密工作簿

wb.protect("123456");

//保存文档

wb.saveToFile("ProtectWorkbook.xlsx", ExcelVersion.Version2010);

wb.dispose();

}

}

工作簿加密结果:

示例2解密工作簿

import com.spire.xls.*;

public class UnprotectWb {

public static void main(String[] args) {

//加载文档

Workbook wb = new Workbook();

wb.setOpenPassword("123456");//源文档密码

wb.lhttp://oadFromFile("ProtectWorkbook.xlsx");

//解除密码保护

wb.unProtect();

//保存文档

wb.saveToFile("UnprotectWb.xlsx");

wb.dispose();

}

}

运行程序,生成的工作簿文件将不再http://有密码保护。

示例3加密工作表

import com.spire.xls.*;

import java.util.EnumSet;

public class ProtectSheet {

public static void main(String[] args) {

//加载测试文档

Workbook wb = new Workbook();

wb.loadFromFile("sample.xlsx");

//获取第一个工作表

Worksheet sheet = wb.getWorksheets().get(0);

//使用密码加密保护

sheet.protect("654321", EnumSet.of(SheetProtectionType.All));

//保存文档

wb.saveToFile("ProtectWorksheet.xlsx", ExcelVersion.Version2010);

wb.dispose();

}

}

工作表加密结果:

示例4加密工作表指定数据范围

import com.spire.xls.*;

import java.util.EnumSet;

public class ProtectRange {

public static void main(String[] args) {

//加载测试文档

Workbook wb = new Workbook();

wb.loadFromFile("sample.xlsx");

//获取第一个工作表

Worksheet sheet = wb.getWorksheets().get(0);

//密码加密工作表

sheet.protect("123654", EnumSet.of(SheetProtectionType.All));

//指定可编辑的区域

sheet.addAllowEditRange("AllowEdit",sheet.getCellRange(3,1,11,8));

//保存文档

wb.saveToFile("ProtectRange.xlsx", ExcelVersion.Version2010);

wb.dispose();

}

}

指定区域加密结果:

示例5设置工作表公式隐藏

import com.spire.xls.*;

import java.util.EnumSet;

public class ProtectAndHideFormula {

public static void main(String[] args) {

//加载文档

Workbook wb = new Workbook();

wb.loadFromFile("sample.xlsx");

//获取工作表

Worksheet sheet = wb.getWorksheets().get(0);

//设置加密

sheet.protect("123", EnumSet.of(SheetProtectionType.All));

//隐藏公式

sheet.getAllocatedRange().isFormulaHidden(true);

//保存文档

wb.saveToFile("HideFormula.xlsx",FileFormat.Version2010);

wb.dispose();

}

}

设置公式隐藏结果:

示例6解密Excel工作表

import com.spire.xls.*;

public class UnprotectSheet {

public static void main(String[] args) {

//加载文档

Workbook wb = new Workbook();

wb.loadFromFile("ProtectWorksheet.xlsx");

//获取工作表

Worksheet sheet = wb.getWorksheets().get(0);

//解除密码保护(需输入源文档密码)

sheet.unprotect("654321");

//保存文档

wb.saveToFile("UnprotectSheet.xlsx",ExcelVersion.Version2010);

wb.dispose();

}

}

运行程序,生成的文档中,指定工作表将不再受保护。


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:java实现简单登录界面的实战过程(java做一个登陆界面)
下一篇:Java实现添加,读取和删除Excel图片的方法详解(java excel导入图片)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~