プロセスに必要な Excel ファイルを読み書きする apache poi を使用して 2 つのクラスを作成しました。これらの Excel ファイルは、ブックの保護を使用してパスワードで暗号化されます。暗号化は機能し、Excel リーダーは間違ったパスワード入力を受け入れません (MS Excel で手動でパスワードを設定した場合)。ただし、パスワードで暗号化されるはずの Excel ライターによって生成された Excel ファイルは機能しません。リーダーが生成された Excel ファイルを読み取ると、任意のパスワードを受け入れ、Excel ファイル内のデータを取得できます。ただし、MS Excel を使用して Excel ファイルを手動で開くと、パスワードで暗号化されます。
writeExcelWithFormula {
HSSFWorkbook workbook = new HSSFWorkbook();
Sheet sheet = workbook.createSheet("Batch ACE");
FileOutputStream fos = new FileOutputStream(fileName);
workbook.write(fos);
fos.close();
encryptFile(fileName,employeeList);
暗号化ファイル {
try {
fileInput = new FileInputStream(fileName);
bufferInput = new BufferedInputStream(fileInput);
poiFileSystem = new POIFSFileSystem(bufferInput);
Biff8EncryptionKey.setCurrentUserPassword("password");
HSSFWorkbook workbook = new HSSFWorkbook(poiFileSystem, true);
HSSFSheet sheet = workbook.getSheetAt(0);
sheet.setDefaultColumnWidth(25);
//create data....
fileOut = new FileOutputStream(fileName);
workbook.writeProtectWorkbook(Biff8EncryptionKey.getCurrentUserPassword(), "");
workbook.write(fileOut);
暗号化は手動で正常に機能します (MS Excel で開きます)。これらのクラスは bonita bpm で使用します。私は apache poi と bonita の初心者です。よろしくお願いします。