当前位置: 代码迷 >> 综合 >> excel 导入支持xls、xlsx
  详细解决方案

excel 导入支持xls、xlsx

热度:45   发布时间:2023-11-19 13:46:33.0

区别

1、文件格式不同。xls 是一个特有的二进制格式,其核心结构是复合文档类型的结构,而 xlsx 的核心结构是 XML 类型的结构,采用的是基于 XML 的压缩方式,使其占用的空间更小。xlsx 中最后一个 x 的意义就在于此。
2、版本不同。xls是excel2003及以前版本生成的文件格式,而xlsx是excel2007及以后版本生成的文件格式。

3、兼容性不同。xlsx格式是向下兼容的,可兼容xls格式。

java支持工具类

HSSFWorkbook 处理   xls
XSSFWorkbook 处理  xlsx

我们为了灵活的支持用户导入多种格式的excel ,可以抽取工具类,判断文件类型,创建不同的对象

下面是代码。

调用

Workbook workbook = ExcelUtils.createExcel(is);

工具类

    public static 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解析不了");}

  相关解决方案