Excel 使用 Epplus 的时间格式
Excel time format using Epplus
我有一个 excel 文档,我试图将其导入我的系统。
(.net 核心 2.2 和 EPPlus v4.5.3.1)
The excel data like 09:57:32 and Custom Cell format [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"
comes 0.414953703703704
还有
"worksheet.Cells[row, column].Text" comes 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
}
想要在投射 JIC 周围放置一个 Try.Catch
单元格中没有数字。
我有一个 excel 文档,我试图将其导入我的系统。 (.net 核心 2.2 和 EPPlus v4.5.3.1)
The excel data like 09:57:32 and Custom Cell format [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" comes 0.414953703703704
还有
"worksheet.Cells[row, column].Text" comes 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
}
想要在投射 JIC 周围放置一个 Try.Catch
单元格中没有数字。