C#读取Excel日期时间

C#这样读取Excel日期时有问题:

Excel.ApplicationClass excel=new Excel.ApplicationClass();
excel.Application.Workbooks.Open(@"E:\MFGP\ar20061220.xls",new object[]{3} ,new object[]{false},new object[]{5},new object[]{""},new object[]{""},new object[]{false},Excel.XlPlatform.xlWindows,null,new object[]{false},new object[]{true},Excel.XlFileFormat.xlExcel9795,new object[]{true},new object[]{true},new object[]{true});
range=(Excel.Range)excel.Cells[1,2];
Messagebox.Show(range.Value2.ToString());
为什么读出来是一个数值,如2008-08-08读出来是39688,怎样才能读出来是日期格式。

-------------------------------

在EXCEL中把你的日期列的格式设置一下,
设成"文本"型,就不会这样了

-------------------------------

在读excel日期的时候,如果单元格格式设置为date,那么就要注意:这里要做一个判断,如果该单元格是一个double值,那么就要用 DateTime.FromOADate(double.Parse(range.Value2.ToString()));方法获得时间;如果就是一个时间,那么就直接DateTime.Parse(range.Value2.ToString());就可以了。
至于为什么要做这个判断,是因为我做这个的时候发现这个日期值今天读的时候是一个日期值,而第二天就读出来一个double值。我也不知道为什么。
请参考:
http://msdn.microsoft.com/zh-cn/vcsharp/system.datetime.fromoadate.aspx
-------------------------------

http://bbs.bccn.net/thread-227728-1-1.html

http://topic.csdn.net/u/20100624/10/ac0d6317-0e0b-4784-9a40-4f1fbd2f4c12.html

http://wenwen.soso.com/z/q102933552.htm

posted @ 2010-11-14 23:30  emanlee  阅读(9481)  评论(1编辑  收藏  举报