天天看点

XSSFWorkbook和HSSFWorkbook读取excel

判断文件是2003前的版本还是2007的版本,然后对应调用HSSF或XSSF来读取。

        这是初步的想法,但这种做法比较麻烦,看了下API,发现XSSF和HSSF虽然在不同的包里,但却引用了同一接口Workbook,于是想到了这样的读取方法:

        Workbook book = null;

        try {

            book = new XSSFWorkbook(excelFile);

        } catch (Exception ex) {

            book = new HSSFWorkbook(new FileInputStream(excelFile));

        }

        在各版本的Excel中测试,没有发生异常,问题解决。