Java之excel导入数据同时兼容.xls和.xlsx

来源:互联网 发布:手机制作游戏的软件 编辑:程序博客网 时间:2024/05/09 13:34

前几天写了一个java中用poi操作excel导入数据的小例子,后来发现并不能兼容两种版本的excel,经过改进发现了两种方法都可以。

上一篇excel简单的导入:Java之excel简单导入数据

第一种,这种直接用了Workbook的工厂方法。

// 创建对Excel工作簿文件的引用//直接用HSSFWorkbook和XSSFWorkbook所实现的接口WorkbookWorkbook wookbook = null;wookbook = WorkbookFactory.create(inputStream);// 在Excel文档中,第一张工作表的缺省索引是0Sheet sheet = wookbook.getSheetAt(0);//.......下面的逻辑详见我写的上一篇

第二种,这种通过判断你上次的excel的类型,来分别使用相对应的方法来处理。感觉这种方法更好点。

//直接用HSSFWorkbook和XSSFWorkbook所实现的接口WorkbookWorkbook wookbook = null;//调用下面的方法wookbook = createExcel(inputStream);Sheet sheet = wookbook.getSheetAt(0);---------------------------------------------------//新建个方法, 返回HSSFWorkbook和XSSFWorkbook所实现的接口public Workbook createExcel(InputStream inp) throws IOException,InvalidFormatException {   if (!inp.markSupported()) {        inp = new PushbackInputStream(inp, 8);    }    if (POIFSFileSystem.hasPOIFSHeader(inp)) {        return new HSSFWorkbook(inp);    }    if (POIXMLDocument.hasOOXMLHeader(inp)) {        return new XSSFWorkbook(OPCPackage.open(inp));    }    throw new IllegalArgumentException("你的excel版本目前poi解析不了");}

我说下需要引入的jar包:poi-ooxml-3.8.jar,poi-ooxml-schemas-3.8.jar,poi-3.8.jar

原创粉丝点击