Java助力加固Excel文件,保障数据安全
前言
Excel文件保护是常用的一种功能,文件保护主要有三种:
- 添加密码,如果没有密码不允许打开文件。
- 添加密码,如果没有密码,不能修改文件,但可以打开,只读以及另存文件。
- 只读推荐,通常推荐打开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感兴趣的话可以访问官网了解更多详细信息。
扩展链接:
Java助力加固Excel文件,保障数据安全的更多相关文章
- java上传excel文件及解析
java上传excel文件及解析 CreateTime--2018年3月5日16:25:14 Author:Marydon 一.准备工作 1.1 文件上传插件:swfupload: 1.2 文件上 ...
- java项目中Excel文件的导入导出
package poi.excel; import java.io.IOException; import java.io.InputStream; import java.io.OutputStre ...
- java项目中Excel文件预览
package com.linkonworks.df.busi.utils; import java.io.File; import java.io.FileInputStream; import j ...
- java批量生成excel文件
1.导入用于操作excel的jar,地址:https://pan.baidu.com/s/1qXADRlU 2.生成excel使用的模版文件,地址:https://pan.baidu.com/s/1c ...
- Java——jxl读取Excel文件
1.创建文件流,打开EXCEL文件(jxi不支持.xlsx文件,支持.xls) FileInputStream excelFile = new FileInputStream(excelPath); ...
- Java——poi读取Excel文件
1.创建文件流,打开EXCEL文件 FileInputStream excelFile = new FileInputStream(excelPath); XSSFWorkbook workbook ...
- java - 读取,导出 excel文件数据
首先需下载poi java包,添加至构建路径, 写处理方法: import java.io.FileInputStream;import java.io.FileOutputStream;import ...
- java代码将excel文件中的内容列表转换成JS文件输出
思路分析 我们想要把excel文件中的内容转为其他形式的文件输出,肯定需要分两步走: 1.把excel文件中的内容读出来: 2.将内容写到新的文件中. 举例 一张excel表中有一个表格: 我们需要将 ...
- java 实现导出Excel文件
java 实现导出Excel(java生成 excel 并导出文件) 经常有有一些数据需要导出成 excel 格式 ,所以就需要实现啦 开始: 1.加入jar poi-3.6-20091214. ...
- java如何导入Excel文件
Java使用POI导入Excel文件,操作起来比较简单,支持xlsx格式. 下载POI资源包 从官网https://poi.apache.org/下载POI,笔者选择的是版本是3.17,下载后文件名是 ...
随机推荐
- FFmpeg开发笔记(十八)FFmpeg兼容各种音频格式的播放
FFmpeg结合SDL可以播放音频文件,也能播放视频文件中的音频流,<FFmpeg开发实战:从零基础到短视频上线>一书第10章的示例程序playaudio.c支持播放mp3和aac两种格 ...
- Linux上执行内存中的脚本和程序
在Linux中可以不需要有脚本或者二进制程序的文件在文件系统上实际存在,只需要有对应的数据在内存中,就有办法执行这些脚本和程序. 原理其实很简单,Linux里有办法把某块内存映射成文件描述符,对于每一 ...
- java学习之旅(day.13)
常用类 Object类 object类是所有类的父类,所有类直接或间接继承object类 所有类,如果没书写extends显示继承某个类,都默认继承object类 getClass()方法 返回值是c ...
- 【题解】A566.三点共线
题目大意,给定在平面直角坐标系中的多个点,判断有多少个三元组 \((A, B, C)\) 满足共线性质. 题目链接:A566.三点共线. 大题思路就是暴力所有的三元组,判断三个元素的斜率是否相同即可. ...
- 食道测压结合Manoview软件
我认为是位于食道开始的地方是上食道括约肌(UES):upper esophageal sphincte,吞咽时,此处的压力会有变大.食道结束的地方是食道下括约肌(LES),从这在往下就是胃,一般情况这 ...
- win10 使用idea 构建一个ssm的模板maven项目
一.创建一个maven项目 1.1建立一个module作为web项目 File->New->project 选择maven,默认jdk,下面的列表什么都不选,next->输入 ...
- Dubbo SPI扩展机制源码详解(基于2.7.10)
Dubbo SPI 一. 概述 本文主要分享 Dubbo 的拓展机制 SPI. 想要理解 Dubbo ,理解 Dubbo SPI 是非常必须的.在 Dubbo 中,提供了大量的拓展点,基于 Dubbo ...
- 一文详解编辑距离(Levenshtein Distance)
更多博文请关注:https://blog.bigcoder.cn 一. 什么是Levenshtein Distance Levenshtein Distance,一般称为编辑距离(Edit Dista ...
- Linux之kill命令
1.kill命令的使用格式 kill [参数] [进程号] 2.kill命令的功能 发送指定的信号到相应进程.不指定型号将发送SIGTERM(15)终止指定进程.如果任然无法终止该程序可用" ...
- [C#] 禁用控制台关闭按钮
禁用控制台关闭按钮 internal class Program { [DllImport("user32.dll", EntryPoint = "FindWindow& ...