使用POI對excel表數(shù)據(jù)進行操作時出現(xiàn)了該問題,從數(shù)據(jù)庫導(dǎo)出數(shù)據(jù)到excel表中,datetime類型的數(shù)據(jù)以String類型存儲,當對表內(nèi)的該列數(shù)據(jù)做修改后,excel將自動修改單元格的格式,從而導(dǎo)致在重新讀取時出現(xiàn)了以上錯誤。
解決辦法:
判斷讀取的單元格是否為HSSFCell.CELL_TYPE_NUMERIC類型,然后利用cell.getNumericCellValue(),讀取該單元格的數(shù)據(jù)。
getNumericCellValue()讀出的數(shù)據(jù)類型是double型,
因此,需要重新進行數(shù)據(jù)轉(zhuǎn)換:HSSFDateUtil.getJavaDate(d).toLocaleString()。其中d為讀出的double類型數(shù)據(jù)。
至此,則成功的將excel表內(nèi)的數(shù)據(jù)讀取出來。
單元格的格式總共有以下幾種:
HSSFCell.CELL_TYPE_BLANK;
HSSFCell.CELL_TYPE_BOOLEAN;
HSSFCell.CELL_TYPE_ERROR;
HSSFCell.CELL_TYPE_FORMULA;
HSSFCell.CELL_TYPE_NUMERIC;
HSSFCell.CELL_TYPE_STRING;