2016-09-23 65 views
0

我完全不熟悉Apache POI並編寫一個簡單的程序來處理日期。我正在加載Excel日期不同的列。 這些日期可以是不同的格式,並在不同的列。根據我寫的代碼,它會正確讀取該值,但不會將其作爲日期來使用,而是將其指定爲字符串。將字符串轉換爲日期apache POI

另外,我面對的第二個問題是如何識別傳入值是否確實是日期或小數或者只是一個字符串。

我所寫得到行的值是:

Cell aCell = row.getCell(cell+i); 
if(i==4 && HSSFDateUtil.isCellDateFormatted(aCell)){ 
       System.out.println("The cell contains a date value: " + aCell.getDateCellValue()); 
      } 

這沒有給什麼。發生異常是IllegalStateArgument。可能是什麼原因? 我搜索了很多,但沒有解決方案,我可以找到這種情況。

在此先感謝!

回答

0

這些鏈接可以幫助您: -

您已成功讀取值,請點擊以下鏈接來解析日期字段。

Set Date format using Apache POI

POI - How do I set cell value to Date and apply default Excel date format?

您可以檢查不同的日期格式。

+0

感謝您的鏈接。試了我的手。我得到的值是正確的。但單元格類型設置爲1.這意味着它將其讀取爲字符串而不是數字類型。 – abhi

+0

你現在能解析字符串嗎?你能否詳細說一下你的評論。 –

+0

不,我仍然無法做到。該場景是:在excel文件中,如果我將日期格式設置爲dd.MM.yyyy,那麼它會將單元格類型設置爲0(CELL_TYPE_NUMERIC)。但是,如果在excel文件中以MM.dd.yyyy的格式給出日期,那麼它將單元格類型設置爲1(CELL_TYPE_STRING)。這個問題是我需要解決的問題,目前我無法弄清楚。如果單元格類型爲0,我將更容易處理各種日期格式。有沒有什麼辦法可以使用Apache POI框架來處理場景? – abhi