2013-06-04 76 views
0

我工作的一个Excel加载项,包括Excel工作簿作为模板。不正确的日期格式化在Excel工作表中

在本工作簿时,日期格式正确(我的意思是,I型2013年1月1日,并且它显示2013年1月1日)的所有工作表。但只有工作簿的一个工作表中,日期显示不正确。 I型2013年1月1日,并显示。当我选择这个单元格时,单元格仍然显示41275,但公式区域显示正确的日期,即我01/01/2013。

一些精度:

  • 使用Excel 2010中,32位,在英语(我知道有时语言环境可能影响的公式)。
  • 细胞的格式化是一样的(点击右键 - >设置单元格格式...是日期类型的所有细胞,在所有工作表)。
  • 我做了一些修改,这个插件,使用C#和组件对象模型,但修改整个工作簿(没有具体到工作表)相同。

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

在此先感谢!

+0

Excel存储日期转换为Excel序列日期。这是正常的行为。 – emd

+0

由于它只发生在一个工作表中,我不认为这是Excel正常行为。 –

回答

0

你可以使用这个SNIPPIT从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); 
    } 
+0

在我的Excel工作簿模板中,在任何C#修改之前,我一直想跳出来解决这个不正确的格式化问题,因为问题出现在那里。我在使用日期时没有问题,但是在显示日期时没有问题。 –