如何检查表格是否存在?

时间:2012-05-25 06:02:26

标签: java apache-poi

我想检查文件中是否存在给定的表格(按名称或编号)(xls 或者xlsx)在我阅读它之前。我正在使用Event API来解决内存占用问题 问题,因此我不想使用org.apache.poi.ss.usermodel.Workbook对象。

我正在使用Apache POI 3.7和JDK7。有人可以帮助我吗?

谢谢,

Parag

1 个答案:

答案 0 :(得分:1)

使用UserModel代码进行检查的方法与两种格式相同。

但是,您已经询问过Event API。这些级别要低得多,因此两种格式之间的差异必须由您处理,因为它们之间没有任何东西可以隐藏它们。 (如果您想要轻松生活,只需为您的服务器购买更多内存并坚持使用UserModel!)

对于.xls文件格式(HSSF),工作表的详细信息存储在文件顶部附近。开始处理文件,然后等待 BoundSheetRecord (sid = 0x0085)过去。当您看到所有这些内容时,您就会知道您的工作表是否在文件中。如果是,则正常处理。如果没有,请中止。

对于.xlsx文件格式(XSSF),打开文件并抓取工作簿部分(它相当小)。检查存在哪些工作表,然后根据具体情况决定是否要处理。如果您正在使用XSSFReader,请调用getWorkbookData()以获取Workbook部分,然后可能使用XmlBeans来处理它(通过WorkbookDocument.Factory