如之前读取Excel的各种方法,在获取单元格数据的时候要注意,不要直接ToString(),如果直接ToString遇到数字的时候,比如'0.9',会变成'.9'。
在获取数据之前判断数据类型,并根据相应的数据类型去获取,才不会出问题。
private static string GetCellValue(ICell cell)
{
object value = null;
try
{
if (cell.CellType != CellType.Blank)
{
switch (cell.CellType)
{
case CellType.Numeric:
// Date comes here
if (DateUtil.IsCellDateFormatted(cell))
{
value = cell.DateCellValue;
}
else
{
// Numeric type
value = cell.NumericCellValue;
}
break;
case CellType.Boolean:
// Boolean type
value = cell.BooleanCellValue;
break;
case CellType.Formula:
value = cell.CellFormula;
break;
default:
// String type
value = cell.StringCellValue;
break;
}
}
}
catch (Exception)
{
value = "";
}
if (value == null)
return "";
else
return value.ToString();
}