チュートリアル

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

チュートリアル»xlsjavasecurity

Displaying items by tag: xlsjavasecurity

Spire.XLS for Java は、Excel ファイルのデジタル署名を追加および削除するための Workbook.addDigitalSignature() メソッドと Workbook.removeAllDigitalSignatures() メソッドを提供しています。この記事では、Java アプリケーション(Java8)で Excel ファイルがデジタル署名されているかどうかを検出しデジタル署名に関する情報を取得する方法を紹介します。

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>14.4.4</version>
    </dependency>
</dependencies>

Excel ファイルがデジタル署名されているかどうかを検出する

Spire.XLS for Java の Workbook.isDigitallySigned() メソッドを使用して、Excel ドキュメントがデジタル署名されているかどうかを確認できます。

手順

  • Workbook インスタンスを作成し、Workbook.loadFromFile() メソッドを使用してサンプル Excel ドキュメントを読み込みます。
  • Workbook.isDigitallySigned() メソッドを使用して、ワークブックがデジタル署名されているかどうかを判断します。
  • 結果を出力します。
  • Java
import com.spire.xls.*;

public class CheckDigitalSignatureExcel {
    public static void main(String[] args) throws Exception {

        // Workbookのインスタンスを作成します
        Workbook workbook = new Workbook();

        // Excelドキュメントを読み込みます
        workbook.loadFromFile("サンプル.xlsx");

        // Excelドキュメントがデジタルに署名されているかどうかを検出します
        Boolean signature = workbook.isDigitallySigned();

        // 結果を出力します
        if (signature) {
            System.out.println("ドキュメントは署名されています");
        }
        else
        {
            System.out.println("ドキュメントは署名されていません");
        }

    }
}

Java:Excel ファイルのデジタル署名情報を取得する方法

Excel ファイルのデジタル署名詳細を取得する

Spire.XLS for Java の Workbook.getDigitalSignatures() メソッドを使用して、Excel ドキュメントのデジタル署名詳細を取得できます。

手順

  • Workbook インスタンスを作成し、Workbook.loadFromFile() メソッドを使用してサンプル Excel ドキュメントを読み込みます。
  • Workbook.getDigitalSignatures() メソッドを使用して、デジタル署名のリストを取得します。
  • IDigitalSignature オブジェクトのメソッドを使用して、デジタル署名の詳細を取得します。
  • Java
import com.spire.xls.*;
import com.spire.xls.core.interfaces.IDigitalSignature;
import com.spire.xls.core.interfaces.IDigitalSignatures;

import java.security.PrivateKey;
import java.security.cert.X509Certificate;
import java.util.Date;

public class getSignatureInfoExcel {
    public static void main(String[] args) throws Exception {

        // Workbookのインスタンスを作成します
        Workbook workbook = new Workbook();

        // Excelドキュメントを読み込みます
        workbook.loadFromFile("サンプル.xlsx");

        // デジタル署名のコレクションを取得します
        IDigitalSignatures signatures = workbook.getDigitalSignatures();

        // デジタル署名の詳細情報を取得します
        for (IDigitalSignature digitalSignature : (Iterable) signatures) {
            X509Certificate info = digitalSignature.getX509Certificate();
            PrivateKey privateKey = digitalSignature.getPrivateKey();
            String comment = digitalSignature.getComments();
            Date date = digitalSignature.getSignTime();

            // Excelデジタル署名の結果を出力します
            System.out.println("署名証明書:" + info + "\n" +
                    "署名コメント:" + comment + "\n" +
                    "署名日時:" + date + "\n" +
                    "秘密鍵:" + privateKey + "\n");
        }
    }
}

Java:Excel ファイルのデジタル署名情報を取得する方法

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

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

Published in 保護
Tagged under

デジタル署名は、メッセージ、ソフトウェア、デジタル ド文書の信頼性を検証するのに役立つ、暗号化された情報を含む電子署名です。 これらは、ソフトウェア配布、金融取引、契約管理ソフトウェア、および偽造や改ざんの検出が必要なその他の状況で一般的に使用されます。 Excel レポートを生成する場合、レポートをより信頼性が高く正式なものにするために、デジタル署名の追加が必要になる場合があります。この記事では、Spire.XLS for Java を使用して、Java で Excel のデジタル署名を追加または削除する方法を示します。

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>13.11.6</version>
    </dependency>
</dependencies>

Java で Excel にデジタル署名を追加する

Excel ファイルの整合性を保護するためにデジタル署名を追加することができます。デジタル署名が追加されると、ファイルは読み取り専用になり、それ以上編集できなくなります。誰かがファイルを変更すると、デジタル署名はすぐに無効になります。

Spire.XLS for Java は、Excel ファイルにデジタル署名を追加するための Workbook クラスの addDigitalSignature メソッドを提供します。詳細な手順は次のとおりです。

  • Workbook インスタンスを作成します。
  • Workbook.loadFromFile() メソッドを使用して、Excel ファイルをロードします。
  • CertificateAndPrivateKey インスタンスを作成して、証明書ファイル (.pfx) のパスと .pfx ファイルのパスワードを指定します。
  • Workbook.addDigitalSignature(CertificateAndPrivateKey, String, Date) メソッドを使用して、ファイルにデジタル署名を追加します。
  • Workbook.saveToFile() メソッドを使用して、結果ファイルを保存します。
  • Java
import com.spire.xls.ExcelVersion;
import com.spire.xls.Workbook;
import com.spire.xls.digital.CertificateAndPrivateKey;

import java.util.Date;

public class AddDigitalSignature {
    public static void main(String []args) throws Exception {

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

        // Excelファイルをロードする
        workbook.loadFromFile("Sample.xlsx");

        // ファイルにデジタル署名を追加する
        CertificateAndPrivateKey cap = new CertificateAndPrivateKey("gary.pfx","e-iceblue");
        workbook.addDigitalSignature(cap, "e-iceblue",new Date());

        // 結果ファイルを保存する
        workbook.saveToFile("AddDigitalSignature.xlsx", ExcelVersion.Version2013);
        workbook.dispose();
    }
}

Java:Excel でデジタル署名を追加または削除する方法

Java で Excel からデジタル署名を削除する

Spire.XLS for Java は、Excel ファイルからデジタル署名を削除するための Workbook クラスの removeAllDigitalSignatures メソッドを提供します。詳細な手順は次のとおりです。

  • Workbook インスタンスを作成します。
  • Workbook.loadFromFile() メソッドを使用して、Excel ファイルをロードします。
  • Workbook.removeAllDigitalSignatures() メソッドを使用して、このファイルからすべてのデジタル署名を削除します。
  • Workbook.saveToFile() メソッドを使用して、結果ファイルを保存します。
  • Java
import com.spire.xls.ExcelVersion;
import com.spire.xls.Workbook;

public class DeleteDigitalSignature {
    public static void main(String []args) throws Exception {

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

        // Excelファイルをロードする
        workbook.loadFromFile("AddDigitalSignature.xlsx");

        // ファイルからすべてのデジタル署名を削除する
        workbook.removeAllDigitalSignatures();

        // 結果ファイルを保存する
        workbook.saveToFile("RemoveDigitalSignature.xlsx", ExcelVersion.Version2013);
        workbook.dispose();
    }
}

Java:Excel でデジタル署名を追加または削除する方法

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

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

Published in 保護
Tagged under

Microsoft Excel では、特定のセルをロックすることで、他のユーザーがセル内のデータや数式を勝手に変更することを回避できます。この記事では、Spire.XLS for Java を使用して Excel で特定のセルをロックする方法を紹介します。

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>13.1.3</version>
    </dependency>
</dependencies>

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("Input.xlsx");

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

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

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

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

        //結果ファイルを保存する
        workbook.saveToFile("LockCells.xlsx", ExcelVersion.Version2016);
    }
}

Java:Excel で特定のセルをロックする方法

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

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

Published in 保護
Tagged under

スプレッドシートを他人と共有する場合、受け手に内容を変更されたくない、あるいは特定の内容だけを変更してもらい、残りの内容は変更しないでほしいという場合があります。ワークシートが他の人に編集されないように保護するために、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 日間有効な一時ライセンスを取得してください。

Published in 保護
Tagged under