【问题标题】:Incorrect date formating in Excel worksheetExcel 工作表中的日期格式不正确
【发布时间】:2013-06-04 16:45:02
【问题描述】:

我正在开发一个 Excel 插件,其中包含一个 Excel 工作簿作为模板。

在此工作簿的所有工作表中,日期格式正确(我的意思是,我输入 01/01/2013,它显示 01/01/2013)。但仅在工作簿的一个工作表中,日期显示不正确。我输入 01/01/2013,它显示 41275。当我选择这个单元格时,单元格仍然显示 41275,但公式区域显示正确的日期,即 01/01/2013。

一些精度:

  • 使用 Excel 2010,32 位,英文(我知道有时区域设置可能会影响公式)。
  • 单元格的格式是相同的(右键单击 -> 格式化单元格...是所有工作表中所有单元格的日期类型)。
  • 我正在使用 C# 和组件对象模型对此插件进行一些修改,但整个工作簿的修改都是相同的(没有特定于工作表的)。

任何想法/线索可能来自哪里?以及如何解决?

提前致谢!!

【问题讨论】:

  • Excel 将日期存储为 Excel 序列日期。这是正常行为。
  • 由于它只发生在一个工作表中,我认为这不是 Excel 的正常行为。

标签: c# excel com


【解决方案1】:

您可以使用此代码段从 excel 序列日期格式转换

    protected static DateTime FromExcelSerialDate(int serialDate)
    {
        if (serialDate > 59) serialDate -= 1; //Excel/Lotus 2/29/1900 bug   
        return new DateTime(1899, 12, 31).AddDays(serialDate);
     }

【讨论】:

  • 在进行任何 C# 修改之前,我一直在寻找一种方法来解决我的 Excel 工作簿模板中的这种错误格式,因为问题出现在那里。我在使用日期的时候没有问题,但是在显示的时候。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多