2011-07-13 57 views
8

有沒有方法可以確定細胞是否是日期? 我知道關於style.getDataFormatString(),但不幫助我, ,因爲我不能確定是否爲格式是爲日期或不。XSSF POI是細胞日期

回答

12

如果您使用的是XSSF UserModel,那麼您需要DateUtil.isCellDateFormatted(Cell) - 這將返回一個布爾值,告訴您單元格的格式字符串是否代表數據。

如果你在低級XML的東西,你需要DateUtil.isADateFormat(int,String)來代替。樣式ID來自單元格xml。樣式字符串您必須離開樣式表,這是一個不同的包部分。有幫助加載,雖然

你可能想看看XSSFExcelExtractorDecorator from Tika爲做後者的一個例子 - 它從事件解析格式化單元格。

+0

實際上,我複製/粘貼http://mail-archives.apache.org/mod_mbox/poi-user/ 200905.mbox/%[email protected]%3E並嘗試修改它。是的,我確實看到了這種可能性,但不知道如何檢索Cell。 – Zemzela

+0

您是使用XSSF usermodel還是使用事件模型原始XML? – Gagravarr

+0

第二個:(。 – Zemzela

0

cell.getCellTypeEnum()== CellType.NUMERIC & & DateUtil.isCellDateFormatted(細胞)

+1

如果問題與Date單元格相關時,爲什麼要檢查單元格類型是否爲數字?當使用DateUtil.isCellDateFormatted(cell)時,您檢查單元格類型是否爲數字? – araknoid

+0

但CellType爲String,將出現「java.lang.IllegalStateException:無法從STRING單元格獲得NUMERIC值」@araknoid – laohans

+0

您應該將此詳細信息添加到答案中,並對其進行解釋,因爲它被寫入,這不是一個自我解釋的答案 – araknoid