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