zoukankan      html  css  js  c++  java
  • jar包--POI.jar包使用问题汇总

    使用POI低版本的jar包,导入excel时类型不匹配报错,优化方式

    使用场景:如题,在导入报表时,导入cell类型错误,一般常见是'字符串'和'数字类型'的问题

    原因:cell中的类型无法判断,单独使用getStringvalue或者getNumericValue会报错

    解决方法:所以添加以下代码,然后调用cellToString(HSSFRow row,int r)方法即可,无论是数字型、字符串型、布尔型、最后返回的都是字符串型,可直接存到数据库中使用:

     1 public String cellToString(HSSFRow row,int r){
     2     String dates = new String();
     3     HSSFCell cell = row.getCell((short)r);
     4     if(null!=cell){
     5         switch(cell.getCellType()){
     6             case HSSFCell.CELL_TYPE_NUMERIC:
     7                 dates = String.valueOf(((long)cell.getNumericCellValue())).trim();//数字类型
     8                 System.out.println("NUMERIC="+dates);
     9                 break;
    10             case HSSFCell.CELL_TYPE_STRING:
    11                 dates = cell.getStringCellValue().trim();//字符串类型
    12                 System.out.println("STRING="+dates);
    13                 break;
    14             case HSSFCell.CELL_TYPE_BOOLEAN:
    15                 dates = String.valueOf(cell.getBooleanCellValue()).trim();//布尔类型
    16                 break;
    17             default:
    18                 System.out.print("表中有除数字、字符串、布尔之外的类型   ");
    19                 break;
    20         }
    21 
    22     }
    23     return dates;
    24 }

    poi报错:Invalid header signature

    产生场景:这个问题是在使用poi导入excel文件时产生的:

    问题原因:excel是从网页下载或者其他第三方软件导出的,所以它的后缀名虽然是xsl,但是它文件头签名仍然是原来的格式,所以poi不能识别,所以pio不能读取它

    解决方法:使用excel打开,另存为2003版的excel,再导入就好了。

  • 相关阅读:
    「Luogu2397」 yyy loves Maths VI (mode)
    「Luogu2014」 选课
    「Luogu2972」 [USACO10HOL]岩石和树木Rocks and Trees
    中国剩余定理
    点双连通分量
    Miller_Rabin大质数检验
    manachaer算法
    Kruskal重构树
    世界,你好!
    [Luogu P1450] [HAOI2008]硬币购物 背包DP+容斥
  • 原文地址:https://www.cnblogs.com/silence-fire/p/6397348.html
Copyright © 2011-2022 走看看