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

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

时间:2023-11-28 13:07:52浏览次数:39  
标签: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”时,可以看到下图:

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

情况3:

添加一个推荐只读的设置给readonly.xlsx文件。

Workbook wb = new Workbook();
 wb.open("test.xlsx");
 wb.getWriteProtection().setReadOnlyRecommended(true);
 wb.save("output/readonly.xlsx");

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

给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://blog.51cto.com/powertoolsteam/8598591

相关文章

  • Java零基础入门-输入
    前言Java作为一门大型的编程语言,拥有广泛的应用领域和众多的开发人员。对于初学者来说,掌握Java的重点知识点非常重要,其中输入是Java中基础的操作之一。本文将介绍Java中输入的相关知识点,帮助初学者快速掌握Java。摘要本文将介绍Java中输入的相关知识点,包括输入的方法,使用示例以......
  • JavaScript
    JavaScript是一种高级解释性脚本语言,已得到广泛使用,是Web开发的重要工具。它由NetscapeCommunicationsCorporation、Mozilla基金会和ECMAInternational开发。它易于学习和实施,并允许开发人员增强网页以提供身临其境的用户体验。JavaScript入门非常简单,您只需要一个用......
  • 集合框架(一) Java中Map的常见方法的使用及循环的五种方式
    Map是Java中的一种集合,它是一种键值对的映射表,可以根据键快速获取对应的值。@[toc]##1.常见使用方式以下是Java中Map的常见方法使用示例及运行结果:###1.1存储键值对使用put()方法向Map中添加键值对:```javaMap<String,Integer>map=newHashMap<>();map.put("apple",10......
  • @SpringbootTest报错 javax.websocket.server.ServerContainer not availableJ情况解
    在使用springboot单元测试出现:11:11:10.799[main]ERRORo.s.b.SpringApplication-[reportFailure,870]-Applicationrunfailedorg.springframework.beans.factory.BeanCreationException:Errorcreatingbeanwithname'serverEndpointExporter'definedincla......
  • Java程序员必备技能:Collections工具类深度解析!
    在之前的文章中,我们学习了单列集合的两大接口及其常用的实现类;在这些接口或实现类中,为我们提供了不少的实用的方法。本篇文章我们来介绍一种java开发者为我们提供了一个工具类,让我们更好的来使用集合Collections工具类Collections是一个操作Set,List,Map等的集合工具类它提......
  • java 为解决导入部门名称是中文,部门名称转换成部门ID
    一、业务实现:(Server层)/***为解决导入部门名称是中文,部门名称转换成部门ID*key:部门名称*value:部门ID**/Map<String,Integer>getOrgNameToIdMapping();二、业务层(SercerImpl)/***为解决导入部门名称是中文,部门名称转换成部......
  • 工作常用的EXCEL公式 | 考勤上下班时间统计
    需求:统计考勤上下班时间,比如:8:13上班打卡,取值为8:30;9:40上班打卡,取值10:00。解决方法:上班时间:思路:当minute少于等于30分钟时,取30分钟,即为time(hour,30,0)当minute大于30分钟时,往后+30分钟,即为time(hour+1,0,0)下班时间:思路:当minute少于30分钟时,取小时上的时间,即为time(hour,......
  • NX二次开发 截图、向excel表格中插入图片 UF_DISP_create_framed_image
    简介:    NX二次开发截图、向excel表格中插入图片UF_DISP_create_framed_image截图:UF_DISP_create_framed_image插入图片intid=book->addPicture(L"F:\\ActionButton\\post_temp.bmp");sheet->setPicture(10,11,id);me.hpp内容:文章作者:里海......
  • Excel合并单元格的缺点解决方式
    背景99%的人在创建表格的一个标题,都喜欢使用合并单元格的功能但是由于使用Excel的合并单元格,在数据分析统计的时候出现了一些问题复制粘贴数据时,由于有合并单元格,不能直接复制粘贴移动整列的位置,不能快速移动使用VLOOKUP函数时,无法直接选中列区域,只能手动选中单元格区域......
  • Java集合ArrayList,LinkedList,Vector的相同点与区别是什么?
    ✨前言✨本篇作为,java集合中ArrayList,LinkedList,Vector常用集合的分析概括,已便大家认识这三种集合的区别,和特点......