Я сделал два класса, используя apache poi, который читает и записывает файлы excel, необходимые для процесса. Эти файлы excel зашифровываются паролем, используя книгу защиты. Работа шифрования и считыватель excel не принимают неправильные входные данные (если вы вручную задали пароль в MS excel). Однако файлы excel, созданные автором Excel, который должен быть зашифрован паролем, не работают. Когда читатель считывает сгенерированный файл excel, он принимает любой пароль и может получать данные внутри файла excel. Но когда вы вручную открываете файл excel через MS excel, он зашифровывается паролем.Неверный пароль, предоставленный для моего читателя excel, принимает сгенерированный файл excel writer
writeExcelWithFormula {
HSSFWorkbook workbook = new HSSFWorkbook();
Sheet sheet = workbook.createSheet("Batch ACE");
FileOutputStream fos = new FileOutputStream(fileName);
workbook.write(fos);
fos.close();
encryptFile(fileName,employeeList);
EncryptFile {
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!