Java保护Excel工作簿和工作表

Java保护Excel工作簿和工作表

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

jar包下载

https://www.e-iceblue.cn/Downloads/Free-Spire-XLS-JAVA.html

引入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);

    }
}

1984355-20200416174433458-929381026-91aa1893fd514ba4800adf92272c9585

保护工作表

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);

    }
}

1984355-20200416174443001-2033510938-9a4fdf49037b4ae387dc196d2b42e861

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

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);
    }
}

1984355-20200416174452697-1662196997-2fdd7aa4a65e44ad91a7bfc92512ded5