2012-04-09 287 views
1

我想使用Apache POI的HSSF EventModel读取Excel文件(.xls格式)。我的Excel表是一个简单的excel文件,没有宏。只是想知道我必须处理哪些类型的记录。使用POI EventModel读取Excel文件

以下是类型的Excel文件中的数据: -

1. String 
    2. Boolean 
    3. Number 
    4. Date. 

我发现这些BoolErr,空白,数字。让我知道我必须处理哪些其他记录。

感谢 斯里尼瓦桑

+0

你想从你的文件中找出什么样的东西?文本?数字?格式化?样式?表单名称?链接?图片?您需要的内容很大程度上决定了哪些记录很重要... – Gagravarr 2012-04-09 15:32:57

+0

我只想要文本,日期和数字没有样式,没有图像,没有样式..等 – srinivasan 2012-04-09 15:48:12

+0

原始浮点数字或数字,因为他们看起来在Excel中?此外,原始Excel日期(自1900/1904年以来的天数)还是Excel中查看的日期? – Gagravarr 2012-04-09 16:13:58

回答

1

如果你想数字和日期显示出来,因为他们在Excel中做,那么你需要的所有单元格的格式信息。这是因为数字和日期单元格的存储方式相同,每个记录的浮点数为一个单元格(除了MulRks周围的一些特殊情况外),它只是格式化规则,告诉您它是日期还是数字,如何显示它们。

我建议你做的是看看两个很好的例子,用基于事件的提取使用HSSF事件模型的.xls文件。首先是POI本身,EventBasedExcelExtractor,它提供纯文本输出。第二个是Apache Apache Tika,ExcelExtractor,它提供了一个XHTML版本

在这两者中,您都会看到仅注册和处理一些Record SID的代码,并且您还将看到它们的用途。在使用事件模型时,您还将看到如何访问POI的格式化代码,您需要使用该模型才能使您的数字和日期看起来正确。

您可能还想看看另一个POI示例XLS2CSVmra,它显示了如何处理这样的事实,即通常未使用的行和单元格不显示在Excel文件中。对于文本提取而言,这不是问题,但对于像CSV导出这样的事情,知道单元格或行缺失,以及有多少是关键!