チュートリアル
簡単にライブラリーを使用するためのチュートリアルコレクション
Spire.XLS for Java は、Excel ファイルのデジタル署名を追加および削除するための Workbook.addDigitalSignature() メソッドと Workbook.removeAllDigitalSignatures() メソッドを提供しています。この記事では、Java アプリケーション(Java8)で Excel ファイルがデジタル署名されているかどうかを検出し、デジタル署名に関する情報を取得する方法を紹介します。
まず、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>
Spire.XLS for Java の Workbook.isDigitallySigned() メソッドを使用して、Excel ドキュメントがデジタル署名されているかどうかを確認できます。
手順
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("ドキュメントは署名されていません");
}
}
}
Spire.XLS for Java の Workbook.getDigitalSignatures() メソッドを使用して、Excel ドキュメントのデジタル署名詳細を取得できます。
手順
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 日間有効な一時ライセンスを取得してください。
デジタル署名は、メッセージ、ソフトウェア、デジタル ド文書の信頼性を検証するのに役立つ、暗号化された情報を含む電子署名です。 これらは、ソフトウェア配布、金融取引、契約管理ソフトウェア、および偽造や改ざんの検出が必要なその他の状況で一般的に使用されます。 Excel レポートを生成する場合、レポートをより信頼性が高く正式なものにするために、デジタル署名の追加が必要になる場合があります。この記事では、Spire.XLS for Java を使用して、Java で Excel のデジタル署名を追加または削除する方法を示します。
まず、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>
Excel ファイルの整合性を保護するためにデジタル署名を追加することができます。デジタル署名が追加されると、ファイルは読み取り専用になり、それ以上編集できなくなります。誰かがファイルを変更すると、デジタル署名はすぐに無効になります。
Spire.XLS for Java は、Excel ファイルにデジタル署名を追加するための Workbook クラスの addDigitalSignature メソッドを提供します。詳細な手順は次のとおりです。
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();
}
}
Spire.XLS for Java は、Excel ファイルからデジタル署名を削除するための Workbook クラスの removeAllDigitalSignatures メソッドを提供します。詳細な手順は次のとおりです。
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();
}
}
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。
Microsoft Excel では、特定のセルをロックすることで、他のユーザーがセル内のデータや数式を勝手に変更することを回避できます。この記事では、Spire.XLS for Java を使用して Excel で特定のセルをロックする方法を紹介します。
まず、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 内の特定のセルをロックする詳細な手順は次のとおりです。
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);
}
}
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。
スプレッドシートを他人と共有する場合、受け手に内容を変更されたくない、あるいは特定の内容だけを変更してもらい、残りの内容は変更しないでほしいという場合があります。ワークシートが他の人に編集されないように保護するために、Excel には保護機能が用意されています。この記事では、Spire.XLS for Java を使って、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 を使用してワークブックをパスワードで保護する手順です。
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);
}
}
Excel 文書の閲覧は許可するが、ワークシートに加えることのできる変更の種類を制限したい場合、特定の保護タイプでワークシートを保護することができます。下の表は、SheetProtectionType クラスに含まれるさまざまな保護タイプの一覧です。
保護タイプ | 編集権限 |
Content | コンテンツを変更または挿入する。 |
DeletingColumns | 列を削除する。 |
DeletingRows | 行を削除する。 |
Filtering | フィルタを設定する。 |
FormattingCells | セルの書式を設定する。 |
FormattingColumns | 列の書式を設定する。 |
FormattingRows | 行の書式を設定する。 |
InsertingColumns | 列を挿入する。 |
InsertingRows | 行を挿入する。 |
InsertingHyperlinks | ハイパーリンクを挿入する。 |
LockedCells | ロックされたセルを選択する。 |
UnlockedCells | ロックされていないセルを選択する。 |
Objects | 描画オブジェクトを編集する |
Scenarios | 保存されたシナリオを編集する |
Sorting | データを並べ替える。 |
UsingPivotTables | ピボットテーブルとピボットチャートを使用する。 |
All | 保護されたワークシート上で上記の操作を行う。 |
None | 保護されたワークシート上で何もしない。 |
Spire.XLS for 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);
}
}
場合によっては、保護されたワークシートで選択された範囲をユーザーが編集できるようにする必要があるかもしれません。次の手順は、その方法を示しています。
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);
}
}
通常、ロックされたオプションは、ワークシート内のすべてのセルに対して有効になっています。そのため、セルまたはセル範囲をロックする前に、すべてのセルのロックを解除する必要があります。セルのロックは、ワークシートが保護されるまで有効でないことに注意してください。
Excel 特定のセルをロックする手順は次のとおりです。
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);
}
}
パスワードで保護されたワークシートの保護を解除するには、Worksheet.unprotect() ソッドを呼び出して、パスワードを使用する必要があります。詳細な手順は以下の通りです。
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 ドキュメントを読み込み、そのパスワードを削除または変更する方法を説明します。
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 日間有効な一時ライセンスを取得してください。