如何使用POI处理旧的Excel .xls文件?

Wae*_*ael 22 java excel jxl apache-poi

由于POI具有更多功能,我从jxl切换到poi.但是,我无法处理以旧格式生成的xls文件.现在我收到此错误:

org.apache.poi.hssf.OldExcelFormatException:提供的电子表格似乎是Excel 5.0/7.0(BIFF5)格式.POI仅支持BIFF8格式(来自Excel版本97/2000/XP/2003)

现在我想将JXL和POI一起使用取决于xls版本,因此对于旧格式xls文件我将使用jxl而对于较新版本我将使用POI.这是一个好的解决方案吗?还有其他选择吗?

dan*_*dan 13

对于旧的Excel格式文件,您有以下替代方法:

  1. HSSF,POI执行Excel '97(-2007)文件格式.
    • 如果您只想提取文本内容,则可以使用OldExcelExtractor,它只从文件中提取文本和数字.
    • 如果你需要来自特定单元格的值,那么你需要采取一种方法OldExcelExtractor,在记录级别处理文件,并检查OldStringRecord,NumberRecord,OldFormulaRecord和朋友的坐标.
  2. 就像你已经提到的那样,JXL也可以处理一些情况.
  3. 使用JDBC/ODBC驱动程序.它不像HSSF以前那样灵活,但对于某些旧格式,它是提取信息的唯一方法.