POI笔记

这篇笔记介绍了在使用Apache POI处理Excel文件时的一些常见问题及解决方案。包括如何将数字单元格转换为文本格式读取,以及如何通过顶层接口兼容XLS和XLSX格式,以避免丢失部分功能但满足基本读取需求。
摘要由CSDN通过智能技术生成

在使用POI进行EXCELL操作的时候遇到一些问题,记录一下

1.导入的时候,对于纯数字的单元格,我们又希望以文本的形式读入内存,那么在读取数字文本之前,我们先把单元格的格式转换成文本类型的再读就行

  FileInputStream fileIn = new FileInputStream("文件路径);
XSSFWorkbook wb0 = new XSSFWorkbook(fileIn);
XSSFSheet sht0 = wb0.getSheetAt(0);  
XSSFRow r = sht0.getRow(1);
XSSFCell cell = r.getCell(0);
//读取数字之前先把单元格转换成文本类型就可以
cell.setCellType(XSSFCell.CELL_TYPE_STRING);
System.out.println(cell.getStringCellValue());


2.对于POI的XSSF和HSSF都只支持xls、xlsx其中的一种,不能同时兼容2种格式的导入,解决办法是使用顶层接口访问所有格式的EXCELL,因为是顶层接口,所以子类的很多方法会不能使用,但是主要的内容是可以正常读取的

  FileInputStream bis = new FileInputStream("文件路径);
Row row = null;
Cell cell = null;
  Workbook workbook = WorkbookFactory.create(bis); 
Sheet sheet = workbook.getSheetAt(0);
row = sheet.getRow(0);
cell = row.getCell(i);
cell.setCellType(XSSFCell.CELL_TYPE_STRING);
String tmp = cell.getStringCellValue();
bis.close();
        //这里的Row,Cell,Sheet,Workbook都是顶层接口,会丢掉一些实现类的功能,但是能满足我们的大部分要求


3.POI可以使用maven导入jar包,这里要注意的就是poi-ooxml的配置,没有它,XSSF将会使用不了,但是HSSF是可以正常使用的

       <dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi</artifactId>
    <version>3.14</version>
</dependency>
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml</artifactId>
    <version>3.14</version>
</dependency>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值