Как зашифровать в Excel скачать с помощью JAVA AbstractXlsxView - PullRequest
0 голосов
/ 06 марта 2020

Я использую AbstractXlsxView Spring для загрузки Excel.
Однако шифрование в загружаемом файле не может быть добавлено.

Ниже показано, как выглядит код для метода реализации AbstractXlsxView.
Есть ли способ шифрования с использованием AbstractXlsxView?

class ExcelView extends AbstractXlsxView {
    @Override
    protected void renderWorkbook(Workbook workbook, HttpServletResponse response) throws IOException {
        ServletOutputStream out = response.getOutputStream();
        workbook.write(out);
        workbook.close();
    }
}

Я пытался, но он не работает ..

class ExcelView extends AbstractXlsxView {
    @Override
    protected void renderWorkbook(Workbook workbook, HttpServletResponse response) throws IOException {

        try {
            ByteArrayOutputStream fileOut = new ByteArrayOutputStream();
            workbook.write(fileOut);

            InputStream filein = new ByteArrayInputStream(fileOut.toByteArray());
            POIFSFileSystem fs = new POIFSFileSystem();
            EncryptionInfo info = new EncryptionInfo(EncryptionMode.agile);
            Encryptor enc = info.getEncryptor();

            enc.confirmPassword("1234");

            OPCPackage opc = OPCPackage.open(filein);
            OutputStream os = enc.getDataStream(fs);
            opc.save(os);
            opc.close();

            OutputStream fileOut2 = null;
            fileOut2 = response.getOutputStream();
            fs.writeFilesystem(fileOut2);
            fileOut2.close();
            fileOut.close();
        } catch (InvalidFormatException e1) {
            // open error
            e1.printStackTrace();
        } catch (GeneralSecurityException e) {
            // save error
            e.printStackTrace();
        }
    }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...