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