Java实现Excel文件加密解密的示例代码

目录
  • 概述
  • 示例大纲
  • 工具
  • 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.loadFromFile("ProtectWorkbook.xlsx");

        //解除密码保护
        wb.unProtect();

        //保存文档
        wb.saveToFile("UnprotectWb.xlsx");
        wb.dispose();
    }
}

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

示例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();
    }
}

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

到此这篇关于Java实现Excel文件加密解密的示例代码的文章就介绍到这了,更多相关Java Excel加密解密内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • java加密解密示例分享

    (1)先定义要实现的类,我先定义了一个抽象类 复制代码 代码如下: //图形类  abstract class  Shape{       int x,y;       int x1,y1;      Color color ;      Graphics g ;      byte type ;      public abstract void draw(Graphics g) ; }  //直线类   class LineShape extends Shape{ public LineSh

  • Java可视化之实现文本的加密和解密

    一.题目 编写一个Java程序,实现一个文本信息的加密. 二.要求 可视化界面,友好的输入和输出,文件的存取. 三.分析 所谓数据加密(Data Encryption)技术是指将一个信息(或称明文,plain text)经过加密钥匙(Encryption key)及加密函数转换,变成无意义的密文(cipher text),而接收方则将此密文经过解密函数.解密钥匙(Decryption key)还原成明文. 四.界面规划 登录验证界面 建立基本框架,基于Swing中Frame 各组件的属性 组件编

  • java使用异或对文件进行加密解密

    本文实例为大家分享了java使用异或对文件进行加密解密的具体代码,供大家参考,具体内容如下 1.使用异或的方式加密文件的原理 一个数异或另一个数两次,结果一定是其本身 2.使用异或的原理加密文件 /** * 将文件内容加密 * 使用异或的方式将a.txt加密复制出一个b.txt,放到同一个文件夹下 */ @Test public void encryptFile(){ FileInputStream in = null; FileOutputStream out = null; try { St

  • 如何通过Java实现加密、解密Word文档

    前言 对一些重要文档,我们为保证其文档内容不被泄露,常需要对文件进行加密,查看文件时,需要正确输入密码才能打开文件.下面介绍了一种比较简单的方法给Word文件加密以及如何给已加密的Word文件解除密码保护. 使用工具:Free Spire.Doc for Java 2.0.0(免费版) Jar文件导入: 方法1:通过官网下载控件包.在程序下新建一个directory目录,并命名(本示例中命名为lib):将控件包lib文件夹下的jar(如下图1)拷贝到程序中新建的目录下.复制jar文件后,鼠标右键

  • 详解Java 加密解密和数字签名问题

    在做项目中,只要涉及敏感信息,或者对安全有一定要求的场景,都需要对数据进行加密.在Java中原生API即可实现对称加密与非对称加密,并支持常用的加密算法. 对称加密 对称加密使用单钥完成加解密,加密和解密采用相同的密钥.对称加密的速度快,常用于大量数据进行加密.主流的算法有:AES,3DES. 生成3DES密钥 <em>/** * 对称加密-3DES算法,取代旧的DES */</em> SecretKey desKey = KeyGenerator.getInstance(&quo

  • Java实现Excel文件加密解密的示例代码

    目录 概述 示例大纲 工具 Java代码示例 示例1加密工作簿 示例2解密工作簿 示例3加密工作表 示例4加密工作表指定数据范围 示例5设置工作表公式隐藏 示例6解密Excel工作表 概述 设置excel文件保护时,通常可选择对整个工作簿进行加密保护,打开文件时需要输入密码:或者对指定工作表进行加密,即设置表格内容只读,无法对工作表进行编辑.另外,也可以对工作表特定区域设置保护,即设置指定区域可编辑或者隐藏数据公式,保护数据信息来源.无需设置文档保护时,可撤销密码保护,即解密文档.下面,将通过j

  • Java实现的RSA加密解密算法示例

    本文实例讲述了Java实现的RSA加密解密算法.分享给大家供大家参考,具体如下: import java.awt.AlphaComposite; import java.awt.Color; import java.awt.Font; import java.awt.Graphics2D; import java.awt.Image; import java.awt.RenderingHints; import java.awt.image.BufferedImage; import java.

  • Java实现md5和base64加密解密的示例代码

    import java.io.IOException; import java.security.MessageDigest; import sun.misc.BASE64Encoder; import sun.misc.BASE64Decoder; public class MD5Util { /** * MD5加密 */ public static String md5Encryption(String str) { MessageDigest md5 = null; try { md5 =

  • Flutter RSA加密解密的示例代码

    目录 对称加密 非对称加密 第一步.首先pubspec.yaml中添加依赖 第二步.获取公钥私钥文件 第三步.在pubspec.yaml文件中添加公钥私钥文件. 第四步.实现Encrypt加密解密工具类 第五步.使用Encrypt工具类实现加密 第六步.项目实际需求, 第七步.关于秘钥的格式(非常重要) 第八步.使用Encrypt具类实现加密 数据加密有对称加密(对称密钥方案) 和非对称加密(公钥加密) 两种加密方式. 对称加密 在对称加密算法中,加密和解密密钥是相同的.通信双方必须具有相同的密

  • python实现凯撒密码加密解密的示例代码

    凯撒加密就是通过将字母移动一定的位数来实现加密和解密.明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移,被替换成密文.例如,当偏移量是2的时候,所有的字母B将被替换成D,C变成E,以此类推Y将变成A,Z变成B.由此可见,偏移量就是凯撒密码加密和解密的密钥. 下面使用python代码来实现凯瑟密码的加密解密. import string def kaisa_jiami(s,k):     lower=string.ascii_lowercase#小写英文字母     upper=

  • java实现的RC4加密解密算法示例

    本文实例讲述了java实现的RC4加密解密算法.分享给大家供大家参考,具体如下: 有一个项目,需要解析一个用户提供的rc4加密后的文件,特意搜索整理了一个Java 版本的RC4加解密算法. public static String HloveyRC4(String aInput,String aKey) { int[] iS = new int[256]; byte[] iK = new byte[256]; for (int i=0;i<256;i++) iS[i]=i; int j = 1;

  • Java实现的AES256加密解密功能示例

    本文实例讲述了Java实现的AES256加密解密功能.分享给大家供大家参考,具体如下: 一.代码 package com.handler; import java.io.UnsupportedEncodingException; import java.security.Key; import java.security.Security; import javax.crypto.Cipher; import javax.crypto.KeyGenerator; import javax.cry

  • Java对xls文件进行读写操作示例代码

    前言 本文主要给大家介绍的是关于Java对xls文件进行读写操作的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍: win7_x64 IDEA Java读写xls文件,使用库jxl.jar 读写xls文件,这里是在知道表格格式的前提下进行操作的. 目前无法操作xlsx文件 准备工作 将库jxl.jar添加到工程依赖中 Java代码示例 示例:从几个文件中读取数据并汇总到一个文件中 表格中的数据规定为:首行为标题,以下是数据和名称:例如 单位名 金额 单位1 948.34

  • java接收ios文件上传的示例代码

    本文实例为大家分享了java如何接收ios文件上传的具体代码,供大家参考,具体内容如下 ios Multipart/form-data POST请求java后台spring接口一直出错,搞了两天,终于解决了,积累下来 package com.xx.controller; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.util.Iterator

  • java 实现DES 加密解密的示例

    package com.cn.peitest; import javax.crypto.Cipher; import javax.crypto.SecretKey; import javax.crypto.SecretKeyFactory; import javax.crypto.spec.DESKeySpec; import javax.crypto.spec.IvParameterSpec; /** * @功能说明: <BR> * @创建日期:2016年9月21日<BR> *

随机推荐