确定IXLCell是否使用DateTime格式

时间:2013-04-19 22:22:13

标签: .net excel closedxml

所有

在.NET中,我使用ClosedXML读取上传的Excel文件并将单元格转换为2D字符串数组。最终目标是修改某些单元格并将修改后的单元格显示给用户。

我目前无法处理存储DateTime值的单元格。奇怪的是,当我读取单元格的数据类型时,它返回XLCellValues.Number(不是XLCellValues.DateTime,这是我所期望的)。我发现Excel实际上将DateTimes存储为双精度数据,并将一些元数据转换为日期,这可能解释了这个问题。

我想知道是否有人知道某种方法,使用ClosedXML来检查Excel单元格的值是否为DateTime类型?如果是这样,我如何将该值转换为.NET DateTime?

谢谢!

1 个答案:

答案 0 :(得分:0)

如果不查看您的文件,我会说最可能的原因是该单元格确实包含一个数字,然后将其格式化为日期。这在Excel中完全有效,实际上所有日期都存储为数字。

使用以下内容检查单元格是否包含日期:

DateTime date;
if (cell.TryGetValue(out date))
{
    // Got a date
}