微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐