方式来加密(密码保护),它已经创建

问题描述:

我已经成功加密现有的Excel文件格式(.xlsx格式),但我不知道如何Encryt .xls格式的Excel文件.xls文件,到目前为止,我已经压缩然后加密.xls,但我想要加密Excel文件(.xls)。方式来加密(密码保护),它已经创建

我已经使用POI进行这些操作。

if(!CSVToEXCEL.pw.equals("NA")){ 

       if(CSVToEXCEL.oformat.equals("xlsx")){ 
        POIFSFileSystem fs = new POIFSFileSystem(); 
        EncryptionInfo info = new EncryptionInfo(fs, EncryptionMode.agile); 

        Encryptor enc = info.getEncryptor(); 
        enc.confirmPassword(CSVToEXCEL.pw); 

        OPCPackage opc = OPCPackage.open(new File(CSVToEXCEL.opath), PackageAccess.READ_WRITE); 
        OutputStream os = enc.getDataStream(fs); 
        opc.save(os); 
        opc.close(); 

        FileOutputStream fos = new FileOutputStream(CSVToEXCEL.opath); 
        fs.writeFilesystem(fos); 
        System.out.println("File created..."+CSVToEXCEL.opath); 
        fos.close();  
      } 
       else { 
        // if file is of '.xls' format 
        System.out.println("xls cannot be Encrypted..."); 
        ZipAndProtectReport zipAndProtectReport = new ZipAndProtectReport(); 
        String xlsoutputzip = zipAndProtectReport.ZipAndProtectMethod(CSVToEXCEL.opath,CSVToEXCEL.pw); 
        System.out.println("Zip Created..... path: "+xlsoutputzip);    
        } 
      } 

     else 
      System.out.println("File Created....."+CSVToEXCEL.opath); 
    } 

CSVToEXCEL是类名,CSVToEXCEL.opath是输出路径位置,是CSVToEXCEL.pw密码ZipAndProtectReport为压缩和然后密码保护另一个类。

我想知道如何让.xls在没有压缩的情况下进行密码保护。

+1

您是否试过阅读关于密码保护和加密的Apache POI文档(https://poi.apache.org/encryption.html)?如果不是,当你做什么时会发生什么? – Gagravarr

+0

是的,我已经读过它,不工作。直到现在我发现只有一些EasyXLS API可以做到这一点。 –

也许你可以创建一个XLSX文件,并把XLS文件数据到XLSX文件,encryt XLSX文件?

+0

没有选项,谢谢反正 –

尝试此链接http://www.quicklyjava.com/create-password-protected-excel-using-apache-poi/

由于您已经在使用POI,因此使用它会更容易。

+0

不,它不会为.xls工作,它只适用于xlsx –