出于安全原因,可能需要保护整个工作簿或工作表。 有时,你甚至可能需要保护某个工作表,但保留指定的单元格进行编辑。 本文将介绍如何使用Free Spire.XLS for Java实现这些操作

 

Spire.Xls.jar 添加为依赖项

方法1:下载Free Spire.XLS for Java包并解压缩,然后从lib文件夹下,Spire.Xls.jar包作为依赖项添加Java应用程序中。

 

方法2:如果要使用Maven,通过将以下配置添加到pom.xml文件中,就可以轻松将JAR包安装到的你的Maven项目中

 

<repositories>
  <repository>
    <id>com.e-iceblue</id>
    <name>e-iceblue</name>
    <url>http://repo.e-iceblue.com/nexus/content/groups/public/</url>
  </repository>
</repositories>
<dependencies>
  <dependency>
    <groupId>e-iceblue</groupId>
    <artifactId>spire.xls.free</artifactId>
    <version>2.2.0</version>
  </dependency>
</dependencies>

 

保护工作簿

import com.spire.xls.*;

public class EncryptWorkbook {
    public static void main(String[] args) {
        //加载示例文档
        Workbook workbook = new Workbook();
        workbook.loadFromFile("Sample.xlsx");

        //使用密码加密保护
        workbook.protect("abc123");

        //保存文档
        workbook.saveToFile("保护工作簿.xlsx", ExcelVersion.Version2010);

    }
}

 

保护工作表

import com.spire.xls.*;
import java.util.EnumSet;
public class ProtectWorksheet { public static void main(String[] args) { //加载示例文档 Workbook workbook = new Workbook(); workbook.loadFromFile("Sample.xlsx"); //获取第一个工作表 Worksheet sheet = workbook.getWorksheets().get(0); //使用密码加密保护 sheet.protect("abc123", EnumSet.of(SheetProtectionType.All)); //保存文档 workbook.saveToFile("保护工作表.xlsx", ExcelVersion.Version2010); } }

 

 

保护工作表但解锁某些单元格范围

import com.spire.xls.*;
import java.util.EnumSet;

public class UnlockCell {
    public static void main(String[] args) {
        //加载示例文档
        Workbook workbook = new Workbook();
        workbook.loadFromFile("Sample.xlsx");

        //获取第一个工作表
        Worksheet sheet = workbook.getWorksheets().get(0);

        //密码加密保护工作表
        sheet.protect("abc123", EnumSet.of(SheetProtectionType.All));

        //解锁某些单元格
        sheet.getCellRange("A2:B11").getCellStyle().setLocked(false);

        //保存文档
        workbook.saveToFile("解锁单元格.xlsx", ExcelVersion.Version2016);
    }
}