Excel ファイルは、個人の財務からビジネス記録まで、データの保存と整理に広く使用されています。Excelファイルの重要なデータの変更や共有を防ぐために、無料のFree Spire.XLS for JavaはExcelファイルを保護するための多くの方法を提供しています。この記事では、JavaアプリケーションでExcelファイルを保護する方法を紹介します。
【依存関係の追加】
この方法は、無料のFree Spire.XLS for Javaが必要ですので、先にjarファイルをインポートしてください。
1. Maven
Maven を使用している場合、プロジェクトの pom.xml ファイルに以下のコードを追加することで、簡単にアプリケーションに JAR ファイルをインポートすることができます。
<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.free</artifactId>
<version>5.1.0</version>
</dependency>
</dependencies>
2. 公式サイトよりJarファイルをダウンロード
まず、Free Spire.XLS for Javaの公式サイトよりzipファイルをダウンロードします。zipファイルを解凍し、libフォルダの下にあるSpire.Xls.jarファイルを依存関係としてプロジェクトにインポートしてください。
Excelファイルを保護するためのパスワードを設定する
Free Spire.XLS for java は、Excel ワークブックへのアクセスをパスワードで制限する Workbook.protect() メソッドを提供します。これにより、権限のないユーザーが正しいパスワードなしでファイルを開いたり変更したりすることを防ぎます。以下は、Free 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) throws Exception {
//Workbookのオブジェクトを作成する
Workbook workbook = new Workbook();
//Excelファイルを読み込む
workbook.loadFromFile("C:/売上請求書追跡.xlsx");
//パスワードでワークブックを保護する
workbook.protect("password");
//ワークブックを保存する
workbook.saveToFile("暗号化.xlsx", ExcelVersion.Version2016);
}
}
最終版としてマークする
最終版としてマークするコマンドは、Excelワークブックを読み取り専用にし、文書に変更を加えることを防ぎます。最終版としてマークされたExcelを共有すると、閲覧者にそのスプレッドシートは最終版であり、変更は不要であることを伝えることになります。
- Workbook のオブジェクトを作成します。
- Workbook.loadFromFile() メソッドを使用して、Excel ファイルを読み込みます。
- ドキュメントプロパティMarkAsFinalをtrueに設定します。
- Workbook.saveToFile() メソッドを使用して、ワークブックを保存します。
Java
import com.spire.xls.ExcelVersion;
import com.spire.xls.Workbook;
public class markAsFinal {
public static void main(String[] args) throws Exception {
//Workbookのオブジェクトを作成する
Workbook workbook = new Workbook();
//Excelファイルを読み込む
workbook.loadFromFile("C:/売上請求書追跡.xlsx");
//ドキュメントプロパティMarkAsFinalをtrueに設定する
workbook.getCustomDocumentProperties().add("_MarkAsFinal", true);
//ワークブックを保存する
workbook.saveToFile("最終版.xlsx", ExcelVersion.Version2016);
}
}
特定の保護タイプでExcelワークシートを保護する
Excelファイルを読む許可は与えるが、ワークシート上で行える修正の種類は制限したい場合、特定の保護タイプでワークシートを保護することができます。以下はその手順です。
- Workbook のオブジェクトを作成します。
- Workbook.loadFromFile() メソッドを使用して、Excel ファイルを読み込みます。
- Workbook.getWorksheets().get(index) メソッドを使用して、特定のワークシートを取得します。
- Worksheet.protect(String password, EnumSet.of 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) throws Exception {
//Workbookのオブジェクトを作成する
Workbook workbook = new Workbook();
workbook.loadFromFile("C:/売上請求書追跡.xlsx");
//特定のワークシートを取得する
Worksheet worksheet = workbook.getWorksheets().get(1);
//ワークシートをパスワードで保護し、保護タイプを指定する
worksheet.protect("psd-permission", EnumSet.of(SheetProtectionType.None));
//ワークブックを保存する
workbook.saveToFile("ワークシートの保護.xlsx", ExcelVersion.Version2016);
}
}
Excelに電子署名を追加する
Excelファイルの真正性を確認するために、デジタル署名を追加することができます。電子署名を追加すると、ファイルは読み取り専用になり、それ以上の編集ができなくなります。誰かがファイルを変更した場合、デジタル署名は直ちに無効になります。
- Workbook のインスタンスを作成します。
- Workbook.loadFromFile() メソッドを使用して、Excelファイルを読み込みます。
- 指定された証明書(.pfx)ファイルのパスと.pfxファイルのパスワードでCertificateAndPrivateKeyインスタンスを作成します。
- 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();
workbook.loadFromFile("C:/売上請求書追跡.xlsx");
//ファイルに電子署名を付加する
CertificateAndPrivateKey cap = new CertificateAndPrivateKey("C:/電子署名.pfx","e-iceblue");
workbook.addDigitalSignature(cap, "e-iceblue",new Date());
//結果ファイルを保存する
workbook.saveToFile("電子署名の追加.xlsx", ExcelVersion.Version2013);
}
}
以上、Excelファイルを保護する方法について説明しました。より多くのExcelスキルを知りたい場合はSpire.XLS for Javaチュートリアルにアクセスしてください。