1. 概要

只需要使用POI,就可以实现Excel文件的加密、解密,简洁方便。

2. pom
<dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>3.17</version>
</dependency>
<dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId><version>3.17</version>
</dependency>
3. 代码
public class EncryptAndDecryptExcel {public static void main(String[] args) {encryptExcel("D:\\study\\test.xlsx", "D:\\study\\test1.xlsx", "111");decriptExcel("D:\\study\\test1.xlsx", "D:\\study\\test2.xlsx", "111");}/*** 加密excel文件** @param oldFileName 待加密文件,带路径* @param newFileName 加密后文件,带路径,可覆盖原文件* @param password 密码*/public static void encryptExcel(String oldFileName, String newFileName, String password) {InputStream in = null;OPCPackage opc = null;FileOutputStream fos = null;POIFSFileSystem fs = null;try {in = new FileInputStream(oldFileName);//创建POIFS文件系统,加密文件fs = new POIFSFileSystem();EncryptionInfo info = new EncryptionInfo(EncryptionMode.standard);Encryptor enc = info.getEncryptor();enc.confirmPassword(password);//将输入流输入到OPCPackage里opc = OPCPackage.open(in);OutputStream os = enc.getDataStream(fs);opc.save(os);opc.flush();// 保存加密文件fos = new FileOutputStream(newFileName);fs.writeFilesystem(fos);fos.flush();System.out.println("加密并保存成功");} catch (Exception ex) {ex.printStackTrace();} finally {try {if (opc != null) {opc.close();}if (fos != null) {fos.close();}if (in != null) {in.close();}if (fs != null) {fs.close();}} catch (Exception ex1) {ex1.printStackTrace();}}}/*** 解密excel文件** @param oldFileName 待解密文件,带路径* @param newFileName 解密后文件,带路径,可覆盖原文件* @param password 密码*/public static void decriptExcel(String oldFileName, String newFileName, String password) {try {Workbook workbook = WorkbookFactory.create(new File(oldFileName), password);// 测试,输入文件里的内容System.out.println(workbook.getSheetAt(0).getRow(0).getCell(0));// 直接保存就是去除密码后的文件了workbook.write(new FileOutputStream(newFileName));System.out.println("解密并保存成功");} catch (Exception ex) {ex.printStackTrace();}}
}

Excel文件加解密-POI相关推荐

  1. java实现对文件加解密操作

    源文件: 加密后的文件: 解密后的文件: package com.gblfy.test;import java.io.*;/*** java 实现对文件加解密的方法** @author gblfy* ...

  2. GPG对文件加解密的简单实现

    解密时如何覆盖已经存在的解密后文件,而不是弹出询问框是否覆盖 初识GPG 加解密实现 gui加解密 生成密钥 命令行方式加解密 信任度设置 方法一 方法二 参考链接 解密时如何覆盖已经存在的解密后文件 ...

  3. 基于CH375的嵌入式USB文件加解密系统的设计

    基于CH375的嵌入式USB文件加解密系统的设计 [日期:2008-7-21] 来源:电子技术应用  作者:华中科技大学 电子与信息工程系, 湖北 武汉 430074 [字体:大 中 小] <s ...

  4. java实现Excel文件解析---apache POI以及把汉字转化为拼音

    java实现Excel文件解析----apache  POI以及把汉字转化为拼音 1.POI简介 Apache POI是Apache软件基金会的开放源码函式库,POI提供给Java程序对Microso ...

  5. 文件加解密(任意文件类型的文件)

    直接上代码: 支持任意类型的文件的加密和解密 可以自由修改密钥 需要修改文件路径 文件加解密. #define _CRT_SECURE_NO_WARNINGS #include <stdlib. ...

  6. 国密 SM4 文件加解密

    国密算法SM4 对文件加解密 说明:调用开源bcprov-jdk15on 加密算法工具,使用SM4算法,对文件进行加密.解密:文件流的操作使用hutool工具包来实现. 引用依赖 <depend ...

  7. 密码技术应用--SM4文件加解密

    记录一下对一些稍大文件进行SM4加解密的实现,这里只列出了核心代码,其他不涉及的代码或者有任何疑问可以查看我之前写的密码技术专题博客 var key = []byte("1234567812 ...

  8. 密码技术应用--AES文件加解密

    记录一下对一些稍大文件进行AES加解密的实现,这里只列出了核心代码,其他不涉及的代码或者有任何疑问可以查看我之前写的密码技术专题博客 var key = []byte("1234567812 ...

  9. 文件加解密,文件操作

     1.fseek,ftell,fread,fwrite(简单文件加密) #define _CRT_SECURE_NO_WARNINGS  //去掉安全检查 #include <stdio.h ...

最新文章

  1. clickhouse安装包_ClickHouse单机部署
  2. [tarjan][树形dp] 洛谷 P2515 软件安装
  3. leetcode 437. Path Sum III | 437. 路径总和 III(DFS,前缀和)
  4. ae saber插件_入门AE:影视特效中的黑洞是怎么做的?附带教程
  5. SQL SERVER2008判断文件夹是否存在并创建文件夹
  6. JavaScript 学习计划
  7. Java collection 集合类架构
  8. 计算机wind10切换桌面wind7系统,win10多桌面切换的方法以及开启步骤是怎样的
  9. 2020-11-26 采用微软自己的snipaste工具截图
  10. 多线程之生产者与消费者问题
  11. ubuntu skill
  12. 计算机在无纸化办公系统中应用属于,浅析计算机技术在无纸化办公中的应用
  13. javawebJAVAJSP网吧管理系统(JSP网吧计费管理系统)网吧收费管理系统网吧自动计费管
  14. 【转】全球十部最经典的科幻片,你看过几部?
  15. 经典网络结构分析:卷积神经网络的现代雏形 ---LeNet
  16. SQL UCASE() 函数
  17. 判断7张扑克牌是否含有同花顺(5张同花顺子)
  18. lsdyna如何设置set中的node_list_Redis 系列教程(二)Redis中的五种数据类型
  19. 国产28nm制程光刻机突破在即,助力国产芯片
  20. IT行业里的热门技术 | 热门IT技术项目分享 | 详细介绍一下机器人技术

热门文章

  1. 智慧农业APP软件应用价值
  2. 基于Scrapy爬虫的全球前100名电影数据分析
  3. Android横竖屏设置
  4. visio创建树形图
  5. JEDEC标准 芯片测试
  6. 《数字中国建设整体布局规划》充分发挥“数据”生产要素:形成横向打通、纵向贯通、协调有力的一体化推进格局...
  7. 德玛吉DMG海德汉五轴机床操作仿真视频教程
  8. Java 实现 淘宝秒杀 聚划算 自动提醒 源码
  9. 【51单片机】认识单片机
  10. POJ-3208 Apocalypse Someday (数位DP)