Java助力加固Excel文件,保障数据安全

java,excel · 浏览次数 : 0

小编点评

前言 Excel文件保护是常用的一种功能,主要用于确保数据的安全性和完整性。在Excel中,我们可以采用多种方式来保护文件,如添加密码、设置只读等。本文将介绍如何在Excel中添加保护以及解除保护,并提供一些相关的代码示例。 一、给Excel添加保护 情况1:添加密码保护 使用XlsxSaveOptions对象将密码设置为"123456",以确保数据的安全性。 ```java Workbook wb = new Workbook(); wb.open("test.xlsx"); XlsxSaveOptions options = new XlsxSaveOptions(); options.setPassword("123456"); wb.save("password.xlsx", options); ``` 情况2:添加只读密码 与情况1一样,打开test.xlsx文件,并添加只读型密码,同时修改密码设置人的信息。 ```java Workbook wb = new Workbook(); wb.open("test.xlsx"); wb.getWriteProtection().setWritePassword("123456"); wb.getWriteProtection().setWriteReservedBy("J123"); wb.save("output/readOnlyByPassword.xlsx"); ``` 情况3:添加只读设置 给readonly.xlsx文件添加只读推荐设置。 ```java Workbook wb = new Workbook(); wb.open("test.xlsx"); wb.getWriteProtection().setReadOnlyRecommended(true); wb.save("output/readonly.xlsx"); ``` 二、给Excel解除保护 情况1:移除Excel文件的密码 移除Excel文件的密码。 ```java Workbook wb = new Workbook(); wb.open("output/password.xlsx", "123456"); wb.unprotect("123456"); wb.save("output/passwordUn.xlsx"); ``` 情况2:移除Readonly写保护 移除Readonly写保护。 ```java 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推荐设置 移除Readonly推荐设置。 ```java Workbook wb = new Workbook(); wb.open("resources/ErrorData.xlsx"); wb.getWriteProtection().setReadOnlyRecommended(false); wb.save("output/readonlyUn.xlsx"); ``` 总结 本文介绍了如何在Excel中添加和解除保护文件,包括添加密码、只读等保护措施。通过这些工具,可以轻松地创建、编辑和保护Excel文件,并将其保存到本地磁盘或其他存储设备中。如果您对我们的产品GcExcel感兴趣的话可以访问官网了解更多详细信息。

正文

前言

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感兴趣的话可以访问官网了解更多详细信息。

扩展链接:

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

低代码开发平台是什么?

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

与Java助力加固Excel文件,保障数据安全相似的内容:

Java助力加固Excel文件,保障数据安全

前言 Excel文件保护是常用的一种功能,文件保护主要有三种: 添加密码,如果没有密码不允许打开文件。 添加密码,如果没有密码,不能修改文件,但可以打开,只读以及另存文件。 只读推荐,通常推荐打开Excel文件的用户使用只读模式打开,这种方式仅是一种提示,并非强行保护文件。 给Excel添加保护 情

高效数据管理:Java助力实现Excel数据验证

摘要:本文由葡萄城技术团队原创并首发。转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。 前言 在Java中,开发者可以使用一些开源的库(如Apache POI)来添加、修改和处理Excel中的数据:包括数字、文本、日期、列表等。每种数据验证类型都具有不同的参

解放双手!ChatGPT助力编写JAVA框架

亲爱的Javaer们,在平时编码的过程中,你是否曾想过编写一个Java框架去为开发提效?但是要么编写框架时感觉无从下手,不知道从哪开始。要么有思路了后对某个功能实现的技术细节不了解,空有想法而无法实现。如果你遇到了这些问题,看完这篇文章你也能用ChatGPT编写一个简单的JAVA框架。

JVM调优篇:探索Java性能优化的必备种子面试题

本文将带你深入了解JVM调优的重要性、常见问题以及一些实用的调优工具和方法,助你在面试的过程中轻松应对

详解Native Memory Tracking 追踪区域分析

摘要:本篇将介绍NMT追踪区域的部分内存类型——Java heap、Class、Thread、Code 以及 GC。 本文分享自华为云社区《Native Memory Tracking 详解(2):追踪区域分析(一)》,作者:毕昇小助手。 本篇将介绍NMT追踪区域的部分内存类型——Java heap

Java异步判断线程池所有任务是否执行完成的方法

本文详细介绍了Java异步判断线程池所有任务是否执行完成的方法,分别介绍了使用ExecutorService和CountDownLatch的方法示例、使用ExecutorService的invokeAll方法和Future列表的方法示例、使用ExecutorService来异步执行多个Callabl...

面试官:Java线程可以无限创建吗?

哈喽,大家好,我是世杰。 ⏩本次给大家介绍一下操作系统线程和Java的线程以及二者的关联 1. 面试连环call Java线程可以无限创建吗? Java线程和操作系统线程有什么关联? 操作系统为什么要区分内核态和用户态? ⏩要想解答这些问题,我们要先从操作系统线程开始说起,让我们开始吧�

Java 方法中循环调用具有事务的方法

本文简要介绍了Java 方法中循环调用具有事务的具体方法示例,虽然@Transactional是Spring中最常用和推荐的方式,但是本文还简要介绍了其他5种方法可以实现类似的功能。

Java基础:线程的三种创建方式

一、继承Thread类 定义一个类继承线程类Thread 重写run()方法 创建线程对象 调用线程对象的start()方法创建线程 Thread类的常用API setName(String name):给线程取名字 getName():获取线程的名字 public static Thread cu

面试官:Java类是如何被加载到内存中的?

面试连环call Java类是如何被加载到内存中的? Java类的生命周期都有哪些阶段? JVM加载的class文件都有哪些来源? JVM在加载class文件时,何时判断class文件的格式是否符合要求? 类生命周期 一个类从被加载到虚拟机内存开始,到卸载出内存为止,它的整个生命周期将会经历加载、验