簡體   English   中英

使用Epplus的Excel時間格式

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM