チュートリアル

簡単にライブラリーを使用するためのチュートリアルコレクション

チュートリアル»Java»Spire.XLS for Java»保護»Java:Excel ワークブックの保護と保護解除
2022-12-13

Java:Excel ワークブックの保護と保護解除

スプレッドシートを他人と共有する場合、受け手に内容を変更されたくない、あるいは特定の内容だけを変更してもらい、残りの内容は変更しないでほしいという場合があります。ワークシートが他の人に編集されないように保護するために、Excel には保護機能が用意されています。この記事では、Spire.XLS for Java を使って、Java でプログラム的にワークブックまたはワークシートの保護と保護解除を行う方法について説明します。

Spire.XLS for Java をインストールします

まず、Spire. XLS for Java を Java プロジェクトに追加する必要があります。JAR ファイルは、このリンクからダウンロードできます。Maven を使用する場合は、次のコードをプロジェクトの pom.xml ファイルに追加する必要があります。

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

ワークブック全体をパスワードで保護する

Excel ドキュメントをパスワードで暗号化することで、あなたや許可された人だけがそのドキュメントを読んだり編集したりできるようにすることができます。以下は、Spire.XLS for Java を使用してワークブックをパスワードで保護する手順です。

  • Workbook クラスのオブジェクトを作成します。
  • Workbook.loadFromFile() メソッドを使用して、Excel ファイルを読み込みます。
  • Workbook.protect() メソッドを使用して、ワークブックをパスワードで保護します。
  • Workbook.saveToFile() メソッドを使用してワークブックを保存します。
  • Java
import com.spire.xls.ExcelVersion;
import com.spire.xls.Workbook;

public class passwordProtectWorkbook {

    public static void main(String[] args) {

        //Workbookクラスのオブジェクトを作成する
        Workbook workbook = new Workbook();

        //Excelファイルを読み込むc
        workbook.loadFromFile("月間個人予算.xlsx");

        //パスワードでワークブックを保護する
        workbook.protect("e-iceblue");

        //ワークブックを保存する
        workbook.saveToFile("暗号化されたワークブック.xlsx", ExcelVersion.Version2016);
    }
}

Java:Excel ワークブックの保護と保護解除

特定の保護タイプでワークシートを保護する

Excel 文書の閲覧は許可するが、ワークシートに加えることのできる変更の種類を制限したい場合、特定の保護タイプでワークシートを保護することができます。下の表は、SheetProtectionType クラスに含まれるさまざまな保護タイプの一覧です。

保護タイプ 編集権限
Content コンテンツを変更または挿入する。
DeletingColumns 列を削除する。
DeletingRows 行を削除する。
Filtering フィルタを設定する。
FormattingCells セルの書式を設定する。
FormattingColumns 列の書式を設定する。
FormattingRows 行の書式を設定する。
InsertingColumns 列を挿入する。
InsertingRows 行を挿入する。
InsertingHyperlinks ハイパーリンクを挿入する。
LockedCells ロックされたセルを選択する。
UnlockedCells ロックされていないセルを選択する。
Objects 描画オブジェクトを編集する
Scenarios 保存されたシナリオを編集する
Sorting データを並べ替える。
UsingPivotTables ピボットテーブルとピボットチャートを使用する。
All 保護されたワークシート上で上記の操作を行う。
None 保護されたワークシート上で何もしない。

Spire.XLS for Java を使用して、特定の保護タイプでワークシートを保護する手順は次のとおりです。

  • Workbook クラスのオブジェクトを作成します。
  • Workbook.loadFromFile() メソッドを使用して、Excel ファイルを読み込みます。
  • Workbook.getWorksheets().get(index) メソッドを使用して、特定のワークシートを取得します。
  • Worksheet.protect(String password, EnumSet.of <SheetProtectionType> options) メソッドを使用して、保護タイプでワークシートを保護します。
  • Workbook.saveToFile() メソッドを使用して、ワークブックを保存します。
  • Java
import com.spire.xls.ExcelVersion;
import com.spire.xls.SheetProtectionType;
import com.spire.xls.Workbook;
import com.spire.xls.Worksheet;

import java.util.EnumSet;

public class protectWorksheet {

    public static void main(String[] args) {

        //Workbookクラスのオブジェクトを作成する
        Workbook workbook = new Workbook();

        //Excelファイルを読み込む
        workbook.loadFromFile("月間個人予算.xlsx");

        //特定のワークシートを取得する
        Worksheet worksheet = workbook.getWorksheets().get(0);

        //権限パスワードと特定の保護タイプでワークシートを保護する
        worksheet.protect("e-iceblue", EnumSet.of(SheetProtectionType.All));

        //ワークブックを保存する
        workbook.saveToFile("ワークシートの保護.xlsx", ExcelVersion.Version2016);
    }
}

Java:Excel ワークブックの保護と保護解除

指定した範囲のみの編集を許可する

場合によっては、保護されたワークシートで選択された範囲をユーザーが編集できるようにする必要があるかもしれません。次の手順は、その方法を示しています。

  • Workbook クラスのオブジェクトを作成します。
  • Workbook.loadFromFile() メソッドを使用して、Excel ファイルを読み込みます。
  • Workbook.getWorksheets().get(index) メソッドを使用して、特定のワークシートを取得します。
  • Worksheet.addAllowEditRange() メソッドを使用して、編集可能なセル範囲を指定します。
  • Worksheet.protect(String password, EnumSet.of <SheetProtectionType> options) メソッドを使用して、保護タイプでワークシートを保護します。
  • Workbook.saveToFile() メソッドを使用してワークブックを保存します。
  • Java
import com.spire.xls.ExcelVersion;
import com.spire.xls.SheetProtectionType;
import com.spire.xls.Workbook;
import com.spire.xls.Worksheet;

import java.util.EnumSet;

public class allowEditRanges {

    public static void main(String[] args) {

        //Workbookクラスのオブジェクトを作成する
        Workbook workbook = new Workbook();

        //Excelファイルを読み込む
        workbook.loadFromFile("月間個人予算.xlsx");

        //最初のワークシートを取得する
        Worksheet sheet = workbook.getWorksheets().get(0);

        //編集可能な範囲を追加する
        sheet.addAllowEditRange("範囲1", sheet.getRange().get("C5:C7"));
        sheet.addAllowEditRange("範囲2", sheet.getRange().get("C10:C12"));

        //パスワードと保護タイプでワークシートを保護する
        sheet.protect("e-iceblue", EnumSet.of(SheetProtectionType.All));

        //ワークブックを保存する
        workbook.saveToFile("特定の範囲.xlsx", ExcelVersion.Version2016);
    }
}

Java:Excel ワークブックの保護と保護解除

ワークシートの特定のセルをロックする

通常、ロックされたオプションは、ワークシート内のすべてのセルに対して有効になっています。そのため、セルまたはセル範囲をロックする前に、すべてのセルのロックを解除する必要があります。セルのロックは、ワークシートが保護されるまで有効でないことに注意してください。

Excel 特定のセルをロックする手順は次のとおりです。

  • Workbook クラスのインスタンスを作成します。
  • Workbook.loadFromFile() メソッドを用いて、Excel ファイルを読み込みます。
  • Workbook.getWorksheets().get(sheetIndex) メソッドを使用して、目的のワークシートを取得します。
  • ワークシートの使用範囲にアクセスし、XlsRange.getStyle().setLocked() メソッドを使用して範囲内のすべてのセルをロック解除します。
  • 特定のセルにアクセスし、XlsRange.getStyle().setLocked() メソッドを使用してそのセルをロックしています。
  • XlsWorksheetBase.protect() メソッドを使用して、ワークシートを保護します。
  • Workbook.saveToFile() メソッドを使用して、ワークブックを保存します。
  • Java
import com.spire.xls.*;

import java.util.EnumSet;

public class lockCells {
    public static void main(String []args){

        //Workbookクラスのインスタンスを作成する
        Workbook workbook = new Workbook();

        //Excelファイルを読み込む
        workbook.loadFromFile("月間個人予算.xlsx");

        //最初のワークシートを取得する
        Worksheet sheet = workbook.getWorksheets().get(0);

        //ワークシートの使用中の範囲にあるすべてのセルのロックを解除する
        CellRange usedRange = sheet.getRange();
        usedRange.getStyle().setLocked(false);

        //特定のセルをロックする
        CellRange cells = sheet.getRange().get("C5:C6");
        cells.getStyle().setLocked(true);

        //ワークシートをパスワードで保護する
        sheet.protect("e-iceblue", EnumSet.of(SheetProtectionType.All));

        //ワークブックを保存する
        workbook.saveToFile("セルのロック.xlsx", ExcelVersion.Version2016);
    }
}

Java:Excel ワークブックの保護と保護解除

パスワードで保護されたワークシートの保護を解除する

パスワードで保護されたワークシートの保護を解除するには、Worksheet.unprotect() ソッドを呼び出して、パスワードを使用する必要があります。詳細な手順は以下の通りです。

  • Workbook クラスのオブジェクトを作成します。
  • Workbook.loadFromFile() メソッドを使用して、Excel ファイルを読み込みます。
  • Workbook.getWorksheets().get(index) メソッドを使用して、特定のワークシートを取得します。
  • Worksheet.unprotect(String password) メソッドを使用して、保護を解除します。
  • Workbook.saveToFile() メソッドを使用して、ワークブックを保存します。
  • Java
import com.spire.xls.ExcelVersion;
import com.spire.xls.Workbook;
import com.spire.xls.Worksheet;

public class unprotectWorksheet {

    public static void main(String[] args) {

        //Workbook クラスのオブジェクトを作成する
        Workbook workbook = new Workbook();

        //保護されたワークシートを含む Excel ファイルを読み込む
        workbook.loadFromFile("ワークシートの保護.xlsx");

        //最初のワークシートを取得する
        Worksheet sheet = workbook.getWorksheets().get(0);

        //指定したパスワードでワークシートの保護を解除する
        sheet.unprotect("e-iceblue");

        //ワークブックを保存する
        workbook.saveToFile("ワークシートの保護の解除.xlsx", ExcelVersion.Version2016);
    }
}

暗号化されたワークブックのパスワードを解除またはリセットする

暗号化されたワークブックのパスワードを削除またはリセットするには、それぞれ Workbook.unprotect() メソッドおよび Workbook.protect() メソッドを使用できます。以下の手順では、暗号化された Excel ドキュメントを読み込み、そのパスワードを削除または変更する方法を説明します。

  • Workbook クラスのオブジェクトを作成します。
  • Workbook.setOpenPassword() メソッドを使用して、ワークブックを開くためのパスワードを指定します。
  • Workbook.loadFromFile() メソッドを使用して、暗号化された Excel ファイルを読み込みます。
  • Workbook.unprotect() メソッドを使用して暗号化を解除します。または、Workbook.protect() メソッドを使用してパスワードを変更します。
  • Workbook.saveToFile() メソッドを使用して、ワークブックを保存します。
  • Java
import com.spire.xls.ExcelVersion;
import com.spire.xls.Workbook;

public class removeResetPassword {

    public static void main(String[] args) {

        //Workbookクラスのオブジェクトを作成する
        Workbook workbook = new Workbook();

        //ワークブックを開くためのパスワードを指定する
        workbook.setOpenPassword("psd-123");

        //暗号化されたExcelファイルを読み込む
        workbook.loadFromFile("暗号化されたワークブック.xlsx");

        //ワークブックの保護を解除する
        workbook.unProtect();

        //パスワードをリセットする
        //workbook.protect("newpassword");

        //ワークブックを保存する
        workbook.saveToFile("パスワードの削除・再設定.xlsx", ExcelVersion.Version2016);
    }
}

一時ライセンスを申請する

結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。

Read 1398 times