POI笔记

来源:互联网 发布:淘宝旧版本v3.7.2下载 编辑:程序博客网 时间:2024/06/07 04:03

在使用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>


原创粉丝点击