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

摘要:本文由葡萄城技术团队于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.hqwc.cn/news/138769.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

jmeter监控服务器的资源使用

一. 下载安装包SeverAgent-x.x.x.zip并安装到被监控服务器 下载地址:https://github.com/undera/perfmon-agent 下载完解压后执行运行,windows运行startAgent.bat, linux运行startAgent.sh 二. 在jmeter上添加插件jpgc-PerfMon Metrics Collector监听器…

【数据结构】排序--快速排序

目录 一 概念 二 快速排序的实现 1. hoare版本 (1)代码实现 (2)单趟排序图解 (3) 递归实现图解 (4)细节控制 (5)时间复杂度 (6)三数取中优化 2 挖坑法 (1)代码实现 (2)单趟图解 3 前后指针法 (1) 代码实现 (2) 单趟图解 ​编辑4 优化子区间 5 非递归快速排…

Scrum项目管理中产品负责人– PO的主要职责

​在敏捷项目管理中,产品负责人的角色非常重要。他们代表利益相关者,负责确保团队开发的产品具有价值、符合期望,满足客户需求。 产品负责人核心职责有: 规划产品的方向和路线图,决定产品要做什么。清晰的将产品的路…

【算法|前缀和系列No.4】leetcode238. 除自身以外数组的乘积

个人主页:兜里有颗棉花糖 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 兜里有颗棉花糖 原创 收录于专栏【手撕算法系列专栏】【leetcode】 🍔本专栏旨在提高自己算法能力的同时,记录一下自己的学习过程,希望…

apk和小程序测试 学js代码

1.小程序通信 https 通信 大部分 只要是http协议所以漏洞都可能有 因为apk和小程序https 抓到报文 搞到web渗透 抓不到包 加密咋办 对称加密 因为密钥在源代码里 所以逆向 找到js代码 然后找到密钥 路径 小程序 工具 wxapkg 扫描小程序 (反编译工…

Java —— 运算符

目录 1. 什么是运算符 2. 算术运算符 2.1 基本四则运算符: 加减乘除模( - * / %) 2.2 增量运算符 - * %与 自增/自减运算符 -- 3. 关系运算符 4. 逻辑运算符 4.1 逻辑与 && 4.2 逻辑或|| 4.3 逻辑非 ! 4.4 短路求值 5. 位运算符 5.1 按位与 & 5.2 按位或 5.3 按位…

【LeetCode高频SQL50题-基础版】打卡第9天:第46~50题

文章目录 【LeetCode高频SQL50题-基础版】打卡第9天:第46~50题⛅前言患某种疾病的患者🔒题目🔑题解 第二高的薪水🔒题目🔑题解 按日期分组销售产品🔒题目🔑题解 列出指定时间段内所有的下单产品…

Kotlin中布尔类型、字符类型、字符串类型和数组类型

在Kotlin中,布尔类型、字符类型、字符串类型和数组类型是常用的数据类型之一。下面我将对它们进行详细描述并提供示例代码。 布尔类型(Boolean): 布尔类型表示逻辑值,只有两个可能的取值:true和false。在K…

C#串口原理

串口实际有2种。主要是电压逻辑不一样。玩单片机的人指usb转TTL的串口;普通人指USB转DB9的串口;先看下他们的区别: https://doc.embedfire.com/module/module_tutorial/zh/latest/Module_Manual/port_class/serial_port.html 1. 串口外设总结…

【来点小剧场--项目测试报告】个人博客项目自动化测试

前述 针对个人博客项目进行测试,个人博客主要由七个页面构成:注册页、登录页、个人博客列表页、博客发布页、博客修改页、博客列表页、博客详情页,主要功能包括:注册、登录、编辑并发布博客、修改已发布的博客、查看详情、删除博…

wordpress网站部署了ssl证书之后就排版混乱了

刚给自己的小网站部署了SSL证书,之后就发现https访问主页竟然乱套了。在手机上访问却是正常的。 直接上解决方案: 编辑网站根目录下的wp-config.php文件 在自定义文本处添加以下代码: if ($_SERVER[HTTP_X_FORWARDED_PROTO] https) $_SE…

大模型技术实践(五)|支持千亿参数模型训练的分布式并行框架

在上一期的大模型技术实践中,我们介绍了增加式方法、选择式方法和重新参数化式方法三种主流的参数高效微调技术(PEFT)。微调模型可以让模型更适合于我们当前的下游任务,但当模型过大或数据集规模很大时,单个加速器&…