NPOI讀取單元格日期問題
阿新 • • 發佈:2018-01-05
lua lda 功能 一個 問題: 代碼 str 字符串 date 最近在使用ASP.Net MVC3來開發一個網站,需要實現數據的Excel導入導出功能。在處理導入時,遇到了一個問題:將所有的單元格都按字符串單元格來處理,運行時對日期類型的就會出錯。搜了一下解決辦法,最終解決了,將代碼貼上:
row = (HSSFRow)rows.Current;
DataRow dataRow = dt.NewRow();
for (int i = 0; i < row.LastCellNum; i++)
{
ICell cell = row.GetCell(i);
if (cell.CellType == CellType.NUMERIC)
{
//NPOI中數字和日期都是NUMERIC類型的,這裏對其進行判斷是否是日期類型
if (HSSFDateUtil.IsCellDateFormatted(cell))//日期類型
{
dataRow[i] = cell.DateCellValue;
}
else//其他數字類型
{
dataRow[i] = cell.NumericCellValue;
}
}
else if (cell.CellType == CellType.BLANK)//空數據類型
{
dataRow[i] = "";
}
else if (cell.CellType == CellType.FORMULA)//公式類型
{
HSSFFormulaEvaluator eva = new HSSFFormulaEvaluator(workbook);
dataRow[i] = eva.Evaluate(cell).StringValue;
}
else //其他類型都按字符串類型來處理
{
dataRow[i] = cell.StringCellValue;
}
}
dt.Rows.Add(dataRow);
----------------------------------------淡淡的分隔符-----------------------------------------------
關鍵的處理就是紅色部分對單元格的判斷了。
NPOI讀取單元格日期問題