zoukankan      html  css  js  c++  java
  • java poi对Excel文件加密

    @SuppressWarnings("deprecation")
        @Override
        public InputStream exportItemProjectExcel(List<String> ITEM_PROJECT_ID_LIST) throws Exception {
    
            FileInputStream inputStream = new FileInputStream(new File(this.getClass().getResource("/../../resource/分项工程.xlsx").getFile()));
            Workbook workbook = WorkbookFactory.create(inputStream);
            Sheet sheet = workbook.getSheetAt(0);// 读取第-页
    
            Row row;
            for (int i = 0; i < ITEM_PROJECT_ID_LIST.size(); i++) {
                row = sheet.createRow(i);
                row.createCell(0).setCellValue((String) ITEM_PROJECT_ID_LIST.get(i));
            }
            ByteArrayOutputStream baos = new ByteArrayOutputStream();
            workbook.write(baos);// 临时存储流到内存
            baos.flush();
    
            ByteArrayInputStream workbookInput = new ByteArrayInputStream(baos.toByteArray());
            // 创建POIFS文件系统 加密文件
            POIFSFileSystem fs = new POIFSFileSystem();
            EncryptionInfo info = new EncryptionInfo(fs, EncryptionMode.agile);
            Encryptor enc = info.getEncryptor();
            enc.confirmPassword("itemProject");
            // 然后把字节输入到输入流,然后输入到OPC包里面
            OPCPackage opc = OPCPackage.open(workbookInput);
            OutputStream os = enc.getDataStream(fs);
    
            opc.save(os);
            opc.close();
    
            baos = new ByteArrayOutputStream();
            fs.writeFilesystem(baos);
            baos.flush();
    
            inputStream.close();
            workbook.close();
            baos.close();
    
            return new ByteArrayInputStream(baos.toByteArray());
        }
    
  • 相关阅读:
    markown 画图
    C++ 结构体指针
    C++指针详解
    C++ 中类对象与类指针的区别
    Java面向对象㈠ -- 封装
    path和classpath
    "System.Web" 中不存在类型或命名空间
    ASP.NET 后台不识别ASPX中的控件
    asp.net中的<%%>形式的详细用法实例讲解
    ASP.NET前台JS与后台CS函数如何互相调用
  • 原文地址:https://www.cnblogs.com/mwd-banbo/p/10001418.html
Copyright © 2011-2022 走看看