首页 > 编程语言 >加固数据安全:Java助力保护Excel文件,让数据无懈可击

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

时间:2023-11-01 09:26:12浏览次数:30  
标签:xlsx Java wb 文件 Excel 数据安全 Workbook new

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

前言

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感兴趣的话可以访问官网了解更多详细信息。(https://www.grapecity.com.cn/developer/grapecitydocuments/excel-java)

扩展链接:

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

低代码开发平台是什么?

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

标签:xlsx,Java,wb,文件,Excel,数据安全,Workbook,new
From: https://www.cnblogs.com/powertoolsteam/p/17732026.html

相关文章

  • java高并发系列
    同步(Synchronous)和异步(Asynchronous)同步和异步通常来形容一次方法调用,同步方法调用一旦开始,调用者必须等到方法调用返回后,才能继续后续的行为。异步方法调用更像一个消息传递,一旦开始,方法调用就会立即返回,调用者就可以继续后续的操作。而异步方法通常会在另外一个线程中“真实”......
  • mac 切换java jdk版本 java8 java11
    1.  终端执行命令查看本地各版本jdk:mac通常默认安装了jdk1.8安装目录是/Library/Java/JavaVirtualMachines/cd/Library/Java/JavaVirtualMachines/ls2.上述命令列出的各版本目录名后,在全局配置文件.bash_profile中新增上面命令列出的各版本jdk,并指定当前环境变量默认......
  • linuxjava安装
    linux安装java1.8一、确认是否安装JDK,通过rpm-qa|grepjava命令查看然后https://www.oracle.com/java/technologies/downloads/#java8下载java二.进入user/local这个目录是管理员安装引用程序的目录三.进行文件上传然后把文件拖进新开的窗口里就ok了三.通过tar-......
  • java如何不创建对象就可以使用静态方法(类方法)System类等
    对象初始化一定有类加载,但是类加载不一定会对象初始化,静态方法不需要创建对象就能调用,这是因为静态方法属于类而不是对象。在Java中,静态方法是属于类的方法,而不是属于特定的对象实例的方法。当类加载到内存中时,静态方法也会加载到内存中。因此,可以直接通过类名来调用静态方法,而不......
  • java 基本数据类型和引用数据类型
    ......
  • Exception in thread "main" java.lang.NoSuchMethodError: org.springframework.util
    我的项目是springboot架构,项目启动报错如下Exceptioninthread"main"java.lang.NoSuchMethodError:org.springframework.util.Assert.isInstanceOf(Ljava/lang/Class;Ljava/lang/Object;Ljava/util/function/Supplier;)V atorg.springframework.boot.logging.logback.Logb......
  • Python自动化办公——3个Excel表格中每个门店物品不同,想要汇总在一起(方法二)
    大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Python自动化办公处理的问题,一起来看看吧。上一篇文章中,我们已经看到了两种解决办法了,这一篇文章我们一起来看看另外一种方法。二、实现过程这里【瑜亮老师】另外再给了一个代码和思路,如下所示:#读......
  • # yyds干货盘点 # Python自动化办公——3个Excel表格中每个门店物品不同,想要汇总在一
    大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Python自动化办公处理的问题,一起来看看吧。上一篇文章中,我们已经看到了两种解决办法了,这一篇文章我们一起来看看另外一种方法。二、实现过程这里【瑜亮老师】另外再给了一个代码和思路,如下所示:#读取Excel......
  • Java基础面试题收集(1)
    @目录1.一个“.Java"源文件中是否可以包括多个类(不是内部类)?有什么限制?2.Java有没有goto?3.&于&&的区别4.在Java中如何跳出当前的多重嵌套循环?5.Switch语句能否用在byte,long,String上?6.shorts1=1;s1=s1+1;有什么错?shorts1=1;s1+=1;有什么错?7.char型变量中能不能存储一个......
  • java日常记录1
    java学到框架了,发现javaSE的东西忘记的差不多了,故此挂在这里流个记录,方便将来查看,顺便巩固一下学过的知识点,文章可能有点长,我打算利用文章和代码结合的方式记录一下。顺便本文档的参考文献主要来自秦老师,当然还有自己从书本上摘抄的一下东西。java基础java自1991年,由sun公司的工......