我们经常会遇到导出的数据需要安全和需要脱敏的场景,这种场景下如何做呢,这里我们使用EasyExcel来实现,有以下两种方案

使用EasyExcel配合Zip4j将文件加密为zip

Zip4j的压缩选项更多

    //生成密码压缩文件private static File getZipFile(File  file,char [] pwd) throws ZipException {ZipFile zipFile = new ZipFile(UUID.randomUUID().toString()+".zip",pwd);ZipParameters parameters = new ZipParameters();// 压缩级别parameters.setCompressionMethod(CompressionMethod.DEFLATE);parameters.setCompressionLevel(CompressionLevel.NORMAL);parameters.setEncryptFiles(true);parameters.setEncryptionMethod(EncryptionMethod.ZIP_STANDARD);parameters.setAesKeyStrength(AesKeyStrength.KEY_STRENGTH_256);zipFile.addFile(file,parameters);return zipFile.getFile();}//转换File为MultipartFilepublic static MultipartFile getMultipartFile(File file,String pwd) throws Exception{File zipFile =   getZipFile(file,pwd.toCharArray());MultipartFile multipartFile = new CommonsMultipartFile(ExcelUtil.createFileItem(zipFile));if (file != null && file.exists()) {file.delete();}if (zipFile != null && zipFile.exists()) {zipFile.delete();}return multipartFile;}/***  multipartFile.getInputStream()* @description: 将输入流输出到页面*/public static void writeFile(HttpServletResponse resp, InputStream inputStream) {OutputStream out = null;try {out = resp.getOutputStream();int len = 0;byte[] b = new byte[1024];while ((len = inputStream.read(b)) != -1) {out.write(b, 0, len);}out.flush();} catch (IOException e) {e.printStackTrace();} finally {try {if (out != null) {out.close();}} catch (Exception e) {e.printStackTrace();}}}

使用的pom,请使用最新版,之前的老版本会有安全问题

        <dependency><groupId>net.lingala.zip4j</groupId><artifactId>zip4j</artifactId><version>2.10.0</version></dependency>

直接使用EasyExcel的password为Excel文件加密

        ExcelWriter writer = null;OutputStream outputStream = null;try {String fileName = UUID.randomUUID() + excelTypeEnum.getValue();prepareResponse(response, fileName);outputStream = response.getOutputStream();writer = EasyExcel.write(outputStream).excelType(excelTypeEnum).password(pwd).build();WriteSheet sheet = EasyExcel.writerSheet(sheetName).head(dataList.get(0).getClass()).build();writer.write(dataList, sheet);} finally {if (writer != null) {writer.finish();}if (outputStream != null) {outputStream.close();}}

Excel文件加密的两种方式相关推荐

  1. Excel文件读取的两种方式

    1.Pandas库的读取操作 from pandas import read_excel dr=read_excel(filename,header) dr#dataframe数据 dw=DataFr ...

  2. SilkTest 对 Excel 表操作的两种方式

    SilkTest 对 Excel 表操作的两种方式  这两种方式都是对 SilkTest 运用的最基础的东西,我写得也比较简单.国内这方面的资料实在太少,对初学者可能有帮助. 方式一 : Data D ...

  3. linux两种方式改变文件权限,Linux更改文件权限的两种方式

    今天小编要跟大家分享一篇关于Linux更改文件权限的方式,喜欢Linux的小伙伴来看一看吧. 我们知道·Linux系统最主要的特点之一就是--Linux系统是多用户.多任务的操作系统. 何为多用户?就 ...

  4. SpringBoot 配置文件加密的两种方式

    SpringBoot配置文件加密的两种方式 jasypt使用方式 用法一: 1.Application.java上增加注解@EnableEncryptableProperties(jasypt-spr ...

  5. Servlet获取Excel中数据的两种方式

    Servlet解析Excel文件的两种方式 简单分享一下Servlet通过解析Excel文件得到其中数据的两种方式 第一种:前端获取 思路:通过layui的第三方插件 layui.excel 解析ex ...

  6. Vue+iview将表格table以excel文件导出的几种方式

    前言 在日常工作中,若是经常跟后台管理系统打交道的朋友想必对导出excel表格这种需求肯定很熟悉吧.不过我也问了身边的一些岗位为后端工程师的朋友,他们说在公司的话一般导出excel表格的工作一般由后端 ...

  7. java文件读写的两种方式

    今天搞了下java文件的读写,自己也总结了一下,但是不全,只有两种方式,先直接看代码: public static void main(String[] args) throws IOExceptio ...

  8. java 读取css文件_java文件读取的两种方式

    JAVA中读取文件(二进制,字符)内容的几种方 JAVA中读取文件内容的方法有很多,比如按字节读取文件内容,按字符读取文件内容,按行读取文件内容,随机读取文件内容等方法,本文就以上方法的具体实现给出代 ...

  9. Java代码实现MD5加密的两种方式

    MD5的全称是Message-Digest Algorithm 5 (信息-摘要算法),在90年代初,由MIT Laboratory for Computer Scientce 和RSA Data S ...

  10. C++ string获取文件路径文件名、文件路径、文件后缀(两种方式)

    windows路径有两种方式,一种正斜杠,一种反斜杠都可以表示路径,该方法可以支持这两种表达方法 方法一:采用substr()进行分割 string path1 = "D:/datas/Fu ...

最新文章

  1. 2008年4月10日:超负荷的一天
  2. java 实现长链接Comet
  3. linux mint 最新版,Linux Mint安装最新版R
  4. 在 520 这天,竟然有人把 Docker讲清楚了? | 原力计划
  5. GitHub 多次宕机的罪魁祸首竟是 MySQL?
  6. python仿真界面_基于Python语言的ABAQUS脚本仿真简介
  7. Docker 容器启动 查看容器状态 - 四
  8. ELK收集tomcat访问日志并存取mysql数据库案例
  9. 【Unity 资源分享】☀️ | Unity 超好看的 精品四季蔚蓝自然场景模型 ,让我们离二次元开发更近一步!
  10. 24点游戏 java实现,一个基于Java技术编写的24点游戏逼真图形版,调用了很多图片去显示游戏内容JAVA游戏源码下载...
  11. 腾达路由器显示远程服务器无响应,腾达路由器设置及可能出现的问题
  12. Altium Designer 总结
  13. wuyun 直接可以看的文章
  14. 【NLP】文本匹配——Simple and Effective Text Matching with Richer Alignment Features阅读与总结(RE2)
  15. Java中4大基本加密算法解析
  16. 用 Python 分析资产收益的典型化事实
  17. attention方式的算法
  18. python statsmodels安装(亲测可用)
  19. BIM与三维GIS结合应用
  20. 【算法•日更•第七期】区间动态规划详解+一本通1570能量项链题解

热门文章

  1. MQ,究竟如何做到削峰填谷?
  2. 进阶HTML--认识标签嵌套与并列关系 -----16岁的小前端
  3. python|爬虫东宫小说
  4. JAVA前端————HTML—W3C—基本标签—超链接锚链接
  5. 原生js实现简易的可旋转伸缩连线效果代码
  6. 【数据科学家】如何成为一名数据科学家?
  7. 概率论与数理统计 4 Continuous Random Variables and Probability Distributions(连续随机变量与概率分布)(上篇)
  8. Icarus Verilog和GTKwave使用简析
  9. 用Apache POI提取Word文本
  10. 淘宝/天猫获取商品历史价格信息 API