【问题标题】:Excel Sheet Reading - ClosedXML - Date shown as NumberExcel 工作表读取 - ClosedXML - 日期显示为数字
【发布时间】:2023-03-18 21:10:02
【问题描述】:

我有一个我正在尝试解析的 excel 表。一切正常,除非我有约会,例如01-Nov-2016。 当试图通过_value = cell.Value.ToString(); 读取这个值时,它只返回一个数字。

解析工作表后,将显示值4426979

当我调试代码库时,cell.Value 等于 [$-4426979]d-mmm-yy

有人遇到过这个问题吗? 如果是这样,你如何解决它?

完整的功能是:

protected string GetCellContents(IXLCell cell)
{
    string _value = string.Empty;
    if (cell.HasFormula)
    {
        _value = cell.ValueCached.ToString();
    }
    else
    {
        _value = cell.Value.ToString();
    }

    return _value;
}

【问题讨论】:

  • 哪个数字设置为_valueToString() 可以格式化。
  • _value = DateTime.FromOADate(cell.Value.ToString()).ToString(); 怎么样?
  • @C4u 我已经更新了我的问题

标签: c# closedxml


【解决方案1】:

您是否尝试将 .ToString() 替换为 .ToString("dd-MMM-yyyy")?

【讨论】:

    【解决方案2】:

    你可以试试这个:

    string strValue = cell.ValueCached.ToString();
    double doubleValue = double.Parse(strValue); // or use double.TryParse if you need
    DateTime dateTimeValue = DateTime.FromOADate(doubleValue);
    _value = dateTimeValue.ToString();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-07-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-25
      • 2021-07-03
      • 1970-01-01
      相关资源
      最近更新 更多