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

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (1336)

我从JXL切换到POI,因为POI有更多的特性。但是,我无法处理以旧格式生成的XLS文件。现在我得到了这个错误:

org.apache.poi.hssf.OldExcelFormatException: The supplied spreadsheet seems to be Excel 5.0/7.0 (BIFF5) format. POI only supports BIFF8 format (from Excel versions 97/2000/XP/2003)

现在,我考虑使用这两个JXL作为POI,这取决于XLS版本,因此对于旧格式的XLS文件,我将使用JXL,而对于较新的版本,我将使用POI。这是个好办法吗?有没有其他选择?

提问于
用户回答回答于

对于旧的Excel格式文件,有以下选择:

  1. HSSFPOIExcel‘97(-2007)文件格式的实现。
    • 如果只想提取文本内容,则可以使用OldExcelExtractor它只会从文件中提取文本和数字。
    • 如果需要来自特定单元格的值,则需要采用类似于OldExcelExtractor,在记录级别处理该文件,并检查是否在OldStringRecordNumberRecord奥尔德公式还有朋友。

  1. 就像你已经说过的,JXL也能处理一些案子。
  2. JDBC/ODBC司机。它没有像它那样灵活。HSSF但是对于一些旧格式来说,这是提取信息的唯一方法。
用户回答回答于

据我所知,可以使用此代码读取Excel文件.XLS格式

FileInputStream in=new FileInputStream(new File("filename.xls"));
Wookbook wb=new HSSFWorkbook(in);

要阅读Excel新版本(2007及以上):

 FileInputStream in=new FileInputStream(new File("filename.xls"));
    Wookbook wb=new XSSFWorkbook(in);

需要的外部JAR文件:

 1. poi-3.9 
 2. dom4j-1.6.1
 3. XMLbeams-2.5.0

如果你在工作只需要.xls。那么,只有poi-3.0就足够了。需要其他JAR来使用Excel的新版本。

所属标签

可能回答问题的人

  • 找虫虫

    0 粉丝0 提问6 回答
  • 优惠活动秘书

    0 粉丝2 提问6 回答
  • 天使的炫翼

    17 粉丝531 提问5 回答
  • 爸爸

    腾讯 · 客户端安全 (已认证)

    4 粉丝4 提问5 回答

扫码关注云+社区

领取腾讯云代金券