excel中的时间类型值如何在C#的datatable中也显示为时间格式

feiyond 2010-03-24 11:52:41
有几万条excel数据,在excel中如果设置单元格格式为日期格式,就可以显示正确为“2009-01-01”这样的格式,但是如果设置为文本的话就显示为39814这样的数字。有没有办法让这一列既为文本类型又可以显示为“2009-01-01”

因为我主要是要把excel的数据读到C#的Datatable中。目前我读到datatable中也显示为39814,我希望能在datatable中显示为“2009-01-01”
...全文
298 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
websco 2010-03-25
  • 打赏
  • 举报
回复
你是采用 OLEDB 来读取Excel的么? OLEDB 读取Excel是会按照单元格所设置的格式读取的,金额、带千位符的数字、日期都是如此。
websco 2010-03-25
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 feiyond 的回复:]
还有,我通过string date = DateTime.FromOADate(Convert.ToInt32(sqlconsume_time)).ToString("yyyy-mm-dd")
这样的函数来转换39814 变成时间格式,转换的结果是:2009-00-01 ,而正确的应该是2009-01-01 ,请问这是什么问题?
[/Quote]
是不是要用 yyyy-MM-dd ,或 yyyy-MM-DD ,仅是猜测,因为 mm 可能是表示分钟,你试一下咯
feiyond 2010-03-25
  • 打赏
  • 举报
回复
还有,我通过string date = DateTime.FromOADate(Convert.ToInt32(sqlconsume_time)).ToString("yyyy-mm-dd")
这样的函数来转换39814 变成时间格式,转换的结果是:2009-00-01 ,而正确的应该是2009-01-01 ,请问这是什么问题?
Comeonzhou 2010-03-25
  • 打赏
  • 举报
回复
帮顶了.没用过你那种方式 只用过OLEDB 貌似没什么问题
feiyond 2010-03-25
  • 打赏
  • 举报
回复
不是OLEDB的方式,是Excel.Workbook 类提供的方法读取的。请问我该怎么做呢?

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧