[英]Excel time format using Epplus
我有一个Excel文档,尝试将其导入到系统中。 (.net core 2.2和EPPlus v4.5.3.1)
Excel数据,例如09:57:32和自定义单元格格式[hh]:mm:ss
private TimeSpan? GetRequiredTimeFromRowOrNull(ExcelWorksheet worksheet, int row, int column, string columnName, StringBuilder exceptionMessage)
{
worksheet.Cells[row, column].Style.Numberformat.Format = "hh:mm:ss";
var cellValue = TimeSpan.Parse(worksheet.Cells[row, column].Value.ToString());
if (cellValue.ToString() != null && !string.IsNullOrWhiteSpace(cellValue.ToString()))
{
return cellValue;
}
exceptionMessage.Append(GetLocalizedExceptionMessagePart(columnName));
return null;
}
“ worksheet.Cells [row,column] .Value”为0.414953703703704
并且
“ worksheet.Cells [row,column] .Text”出现09:12:32
我如何获得准确的价值?
Excel将日期和时间存储为十进制值。 整数部分是日期,小数部分是时间。
因此,要使用C# DateTime
,请使用OLE自动化转换器:
try
{
var val = (double)worksheet.Cells[row, column].Value;
var dt = DateTime.FromOADate(val);
var cellValue = dt.TimeOfDay;
}
catch (Exception)
{
//log conversion error
}
想要在Try.Catch
的JIC周围放置一个Try.Catch
,单元格中没有数字。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.