这里所说的解密是指数解密文件密码,而非保护工作表或工作博的密码,代码如下:

import java.io.FileInputStream;

import org.apache.poi.hssf.record.crypto.Biff8EncryptionKey;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;

/**
 * 
 * <p>类描述:使用poi解密excel  </p>
 * <p>创建人:wanghonggang  </p>
 * <p>创建时间:2019年8月13日 下午8:59:35  </p>
 * 所需引用jar包:poi和poi-ooxml
 */
public class TestPoi {

/**
     * 
     * <p>方法描述:测试 TODO</p>
     * <p>创建人: wanghonggang  </p>
     * <p>创建时间: 2019年8月13日 下午9:00:05 </p>
     * <p>修改记录:</p>
     * @param args 
     * void
     */
    public static void main(String[] args) {
        try{
            POIFSFileSystem pfs = new POIFSFileSystem(new FileInputStream("E:\\test\\2.xls")); 
            //解密,这个密码不是指保护工作表和工作博密码,而是打开文件密码
            Biff8EncryptionKey.setCurrentUserPassword("123"); 
            HSSFWorkbook wb = new HSSFWorkbook(pfs);
            
            //读取测试
            HSSFSheet sheet = wb.getSheetAt(0);
            HSSFRow row = sheet.getRow(0);
            HSSFCell cell = row.getCell(0);
            
            System.out.println(cell.getStringCellValue());
            wb.close();
        }catch(Exception e){
            e.printStackTrace();
        }finally {
        }
    }
}

.xlsx文件解密方法如下:

import java.io.File;

import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.usermodel.WorkbookFactory;

/**
 * 
 * <p>类描述:使用poi解密excel .xlsx  </p>
 * <p>创建人:wanghonggang  </p>
 * <p>创建时间:2019年8月13日 下午8:59:35  </p>
 * 所需引用jar包:poi和poi-ooxml
 */
public class TestPoi4 {

/**
     * 
     * <p>方法描述:测试 TODO</p>
     * <p>创建人: wanghonggang  </p>
     * <p>创建时间: 2019年8月13日 下午9:00:05 </p>
     * <p>修改记录:</p>
     * @param args 
     * void
     */
    public static void main(String[] args) {
        try{
            Workbook wb = WorkbookFactory.create(new File("E:\\test\\V2.1.xlsx"), "3");
            
            //读取测试
            Sheet sheet = wb.getSheetAt(0);
            Row row = sheet.getRow(0);
            Cell cell = row.getCell(0);
            
            System.out.println(cell.getStringCellValue());
            wb.close();
        }catch(Exception e){
            e.printStackTrace();
        }finally {
        }
    }
}

java使用poi解密excel文件相关推荐

  1. Java 使用 POI 对 Excel文件 进行读写操作

    Java 使用 POI 对 Excel文件 进行读写操作 一.背景 目前正在做一个问卷功能模块,收集完问卷信息后,需要将数据库中的数据导出到Excel数据表中进行留存,因此就学习了在Java中如何对E ...

  2. java使用poi生成Excel文件并合并单元格

    java使用poi生成Excel文件并合并单元格        业务需要根据 分管部门 字段进行合并,现在提供一种思路. controller层 @Inject(target = "/inf ...

  3. 功能演示:使用Java加密和解密Excel文件

    MS Excel提供了广泛的功能,可以无缝保存和分析数据.可以使用VBA模块执行计算,生成图表以及定义自定义逻辑.知道电子表格中数据的重要性,MS Excel允许您使用加密保护工作簿.此外,也可以用密 ...

  4. java使用POI实现excel文件的读取,兼容后缀名xls和xlsx

    首先,引入所需的jar包: 如果是maven管理项目的jar包,只需在pom.xml中加上: [html] view plaincopy <!-- https://mvnrepository.c ...

  5. Java使用POI读取Excel文件

    上篇文章记录了简单的POI创建Excel文件,依赖导入可参考上篇 POI读取excel中公式 @Testpublic void testRead() throws Exception {//读取文件的 ...

  6. Java使用POI操作Excel文件

    我们可以使用POI操作Excel文件,本文主要介绍:"导入POI的Maven依赖"."创建Poi对象"."Poi读取Excel工作表数目". ...

  7. java使用poi对excel文件的加密解密

    1.首先pom文件引入poi包,如下: <?xml version="1.0" encoding="UTF-8"?> <project xml ...

  8. java使用poi给excel文件插入数据

    excel模板文件 代码 package com.example.demo;import java.io.File; import java.io.FileInputStream; import ja ...

  9. java使用poi解析Excel文件

    本文取自http://www.cnblogs.com/hongten/p/java_poi_excel_xls_xlsx.html java中读取Excel文件并解析 Excel2007及以前的文件使 ...

最新文章

  1. Oracle 11gR2 使用 RMAN duplicate from active database 复制数据库
  2. 克拉克拉(KilaKila):大规模实时计算平台架构实战
  3. rust windows 交叉编译_交叉编译问题,求指教
  4. C#实现 UDP简单广播
  5. java界面 文件选择器_掌握java技术 必备java工具应用知识
  6. matlab按某一列排序
  7. Android--启动拍照功能并返回结果
  8. String 源码探究
  9. Java(31)_JDBC连接mysql数据库(一)
  10. 深入理解android 博客,深入理解Android中ViewGroup
  11. IntelliJ idea 主题包下载以及安装
  12. linux wakeup,linux内核3.4基于wakeup
  13. 晶联讯JLX12864G-290液晶,STM32+HAL库 SPI显示成功。
  14. ibm服务器修复安装win7系统,联想thinkpad无法开机重装win7,教你重装系统攻略
  15. java 统计文本中出现概率最高的10个字符串!!
  16. 银行软件测试面试题目总结,希望可以帮到你
  17. 深度学习之梯度裁剪(Gradient Clipping)
  18. 基于特征的图像匹配算法,图片相似度匹配算法
  19. DockerHub入门
  20. 黑客攻防从入门到精通-手机安全篇

热门文章

  1. 不用root卸载手机系统软件
  2. LVGL的多语言转换工具--字体设置的好助手
  3. 如何将统一参考文献的格式?
  4. 微服务-消息总线 SpringCloud Bus
  5. 基于ArduPilot的旋翼式无人机飞行器开发系列(一,入门)
  6. 简单的免杀方法(基本知识)
  7. D3D描绘四边形的四种方法之DrawPrimitive、DrawIndexedPrimitive、DrawPrimitiveUP、DrawIndexedPrimitiveUP
  8. 关于Java中UML图的说明
  9. 超好用的网页版组态编辑器BY组态
  10. 华为S2300开启WEB管理_七夕小子_新浪博客