C#解析Excel自定义单元格格式

时间:2009-11-03 15:15:00

标签: c# excel datetime parsing

我正在解析Excel文件,并且难以读取自定义单元格格式为dd mmm yy的单元格的值。所讨论的细胞中的值是09年10月29日(细胞B25)。我跑的时候

String arrive = Convert.ToString(_worksheets["GENERAL"].get_Range("B25", Type.Missing).Value2);  

我得到“40114”作为单元格的值。

然后当我尝试

DateTime arrive = Convert.ToDateTime(_worksheets["GENERAL"].get_Range("B25", Type.Missing).Value2);

我收到一条错误消息,指出“从数字中转换时,该值必须是小于无穷大的数字。”

任何想法都会受到高度赞赏。

感谢。

2 个答案:

答案 0 :(得分:4)

该随机数是一个OLE日期。

您可能需要DateTime.FromOADate方法。看看reference on MSDN

答案 1 :(得分:-1)

好像你想要DateTime.ParseExact方法,因为这是一个非标准的格式,就.NET而言。

尝试以下方法:

var dateTimeStr = _worksheets["GENERAL"].get_Range("B25", Type.Missing).Value2);
var dateTime = DateTime.ParseExact(dateTimeStr, "dd MMM yy");

MSDN Custom Date and Time Frormat Strings页面也可能是书签的好参考。