加固数据安全:Java助力保护Excel文件,让数据无懈可击

news2024/11/21 1:25:16

摘要:本文由葡萄城技术团队于CSDN原创并首发。转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。

前言

Excel文件保护是常用的一种功能,文件保护主要有三种:

  1. 添加密码,如果没有密码不允许打开文件。
  2. 添加密码,如果没有密码,不能修改文件,但可以打开,只读以及另存文件。
  3. 只读推荐,通常推荐打开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感兴趣的话可以访问官网了解更多详细信息。

扩展链接:

从表单驱动到模型驱动,解读低代码开发平台的发展趋势

低代码开发平台是什么?

基于分支的版本管理,帮助低代码从项目交付走向定制化产品开发

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1088354.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

OLED透明拼接屏:福州鼓山风景区:徜徉于城市壮丽之

福州是中国福建省的省会城市,历史悠久,文化底蕴深厚。 该城市曾是唐宋时期的重要港口城市,也是丝绸之路海上丝绸之路的起点之一。 福州以其独特的地理位置和丰富的历史遗产而闻名于世。 福州拥有众多的历史景点,其中最著名的是…

掌动智能浅析Web自动化测试的重要性

在现代Web开发中,确保Web应用程序的质量和稳定性至关重要。Web自动化测试工具成为了开发团队的关键资源,帮助他们自动化测试流程、减少手动劳动,提高测试覆盖率和效率。本文将介绍Web自动化测试的重要性是什么! Web自动化测试的重要性&#x…

给电瓶车“消消火”——TSINGSEE青犀智能电瓶车棚监控方案

近年来,电瓶车电梯起火、室内起火、楼道起火的新闻层出不穷,很多人为了图方便就将电瓶车推到家中充电,这种十分危险的行为,严重影响了社区的公共安全和个人生命财产,为什么惨痛新闻不断播出,这种行为还是屡…

java 并发AQS 理解

最近复习并发中AQS相关知识,这边看到一个比较好的文章,转载记录下 转载自:Java AQS 核心数据结构-CLH 锁 在并发编程中,锁是一种常用的保证线程安全的方法。Java 中常用的锁主要有两类,一种是 Synchronized 修饰的锁…

html页面提交数据后,数据库有新增但为空值

经过仔细查找错误的原因,发现问题就出在我的html文件 红色箭头指示的语句我没加进去

vscode中注释多行bash脚本

选择你要注释的行,右击所选的行,从命令调色板中选择添加行注释。 选择后,所选的行将被注释为#,如下图所示。 选择你想取消注释的行,在所选行上点击右键,从命令调色板中选择删除区块注释,就可以从…

【力扣每日一题】2023.10.13 避免洪水泛滥

目录 题目: 示例: 分析: 代码: 题目: 示例: 分析: 给我们一个一维数组,元素为0表示对应日期不下雨,非0则表示对应日期对应号的湖泊下雨,下雨之后会导致该…

01-10 周二 PyCharm远程Linux服务器配置进行端点调试

01-10 周二 PyCharm远程Linux服务器配置 时间版本修改人描述2023年1月10日14:04:15V0.1宋全恒新建文档2023年2月6日11:03:45V0.2宋全恒添加快捷指令别名的实现方便虚拟环境的切换 简介 使用 PyCharm,您可以使用位于另一台计算机(服务器)上的解释器调试应用程序。 …

HotSpot的算法实现

1.根节点的枚举 我们通过可达性分析算法从GC Roots中找到全局性的引用(例如常量或者类静态属性)或者是执行上下文(例如栈帧中的本地变量)中,尽管我们的目标非常明确,但是随着java的不断扩大,光一…

JTS: 12 Descriptions 图形覆盖

这里写目录标题 版本代码Intersection 交集Union 并集Difference 差集SymDifference 补集 版本 org.locationtech.jts:jts-core:1.19.0 链接: github 代码 /*** 图形覆盖操作* author LiHan* 2023年10月12日 19:34:09*/ public class GeometryDescriptions {private final Ge…

抽象类

一、认识抽象类 public abstract class A {//类该有的成员,抽象类都有private String name;public static String schoolName;public A() {}//抽象方法:必须有abstract修饰 只有方法签名,没有方法体public abstract void run();} //一个类继…

Kafka SASL认证授权(六)全方位性能测试

Kafka SASL认证授权(六)全方位性能测试。 官网地址:https://kafka.apache.org/ 一、场景 线上已经有kafka集群,服务运行稳定。但是因为产品升级,需要对kakfa做安全测试,也就是权限验证。 但是增加权限验证,会不会对性能有影响呢?影响大吗?不知道呀! 因此,本文就此…

机器学习网络模型绘图模板

一 前言 本期为读者推荐一款名为ML Visuals的机器学习画图PPT模板,ML Visuals 专为解决神经网络画图问题设计,通过提供免费的专业的、科学的和充分的视觉和图形来帮助机器学习社区改善科学传播。目前,ML Visuals 包含了超过100多个的自定义图…

Python接口自动化 —— token登录(详解)

简介 为了验证用户登录情况以及减轻服务器的压力,减少频繁的查询数据库,使服务器更加健壮。有些登录不是用 cookie 来验证的,是用 token 参数来判断是否登录。token 传参有两种一种是放在请求头里,本质上是跟 cookie 是一样的&am…

人大与加拿大女王大学金融硕士——带你了解GMAT考试为何如此重要

随着社会经济的发展,金融行业的优势愈发明显。越来越多的人想要进入金融行业发展,但学历往往成为了敲门砖。自人大与加拿大女王大学金融硕士项目创办以来,受到了许多学子及在职人士的欢迎,但想要报考人大加拿大女王大学金融硕士项…

一文讲清楚webpack和vite原理

一、前言 每次用vite创建项目秒建好,用vue-cli创建了一个项目,却有点久,那为什么用 vite 比 webpack 要快呢,这篇文章带你梳理清楚它们的原理及不同之处!文章有一点长,看完绝对有收获! 目录&a…

nginx之location的优先级和nginx的重定向

一、nginx之location的优先级和匹配方式(重点) (一)nginx的正则表达式 nginx的正则表达式 符号 含义 ^ 字符串的起始位置(以什么开头) $ 字符串的结束位置(以什么结尾) * 匹…

漏洞复现(CVE-2023-35843)

免责声明: 文章中涉及的漏洞均已修复,敏感信息均已做打码处理,文章仅做经验分享用途,切勿当真,未授权的攻击属于非法行为!文章中敏感信息均已做多层打马处理。传播、利用本文章所提供的信息而造成的任何直…

Nginx正向代理配置(http)

前言 在工作中我们经常使用nginx进行反向代理,今天介绍下怎么进行正向代理,支持http请求,暂不支持https 首先先介绍下正向代理和反向代理。 正向代理 在客户端(浏览器)配置代理服务器,通过代理服务器进行互联网访问。 反向代理 客户端只…

字符串匹配——KMP算法

目录 KMP(Knuth Morris Pratt) KMP算法复杂度分析 字符串匹配中除了简单的BF(Brute Force)、RK(Rabin-Karp)算法,还有更高效、较难理解的 BM(Boyer-Moore)和KMP&#…