提问者:小点点

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


我从jxl切换到poi,因为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。这是一个好的解决方案吗?有没有其他选择?


共2个答案

匿名用户

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

  • HSSF,POI实现的Excel'97(-2007)文件格式。
    • 如果您只想提取文本内容,那么您可以使用OldExcelExtractor,它只会从文件中提取文本和数字。
    • 如果您需要来自特定单元格的值,那么您需要采取一种有点像OldExcelExtractor的方法,在记录级别处理文件,并检查OldStringRecords、NumberRecords、Old公式记录和朋友的坐标。

匿名用户

据我所知,您可以使用此代码读取. xls格式的excel文件

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就足够了。您需要其他罐子来使用新版本的excel。