从 Excel 工作表中读取日期时间值
当我尝试从 Excel 工作表中读取日期时间类型值时,它返回一个双精度值。例如,如果想像这样读取值 '2007-02-19 14:11:45.730'
,我得到一个双精度类型值。此外,我正在使用时间跨度转换此双精度值,但未成功完成,因为我只获得此值'2007-02-19 12:00:00 AM'
现在我想要与第一个完全相同的日期时间值。我的代码就像:-
TimeSpan datefromexcel = new TimeSpan(Convert.ToInt32((range.Cells[rCnt, cCnt] as Excel.Range).Value2), 0, 0, 0);
DateTime inputdate = new DateTime(1900, 1, 1).Add(datefromexcel);
arrrow2[cCnt - 1] = inputdate.ToString();
请帮忙!!! 谢谢。
when am trying to read datetime type value from excel sheet it is returning a double value.for example if want to read value '2007-02-19 14:11:45.730'
like this, i am getting a double type value .further i am converting this double value using timespan,but not complete successfully because i am getting only this value '2007-02-19 12:00:00 AM'
now i want exact same datetime value as first one. My code is like :-
TimeSpan datefromexcel = new TimeSpan(Convert.ToInt32((range.Cells[rCnt, cCnt] as Excel.Range).Value2), 0, 0, 0);
DateTime inputdate = new DateTime(1900, 1, 1).Add(datefromexcel);
arrrow2[cCnt - 1] = inputdate.ToString();
Please help!!!
Thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(8)
您需要使用 DateTime.FromOADate 将日期格式从 OLE Automation 转换为 .net 格式。
You need to convert the date format from OLE Automation to the .net format by using DateTime.FromOADate.
也许您可以尝试使用
DateTime.FromOADate
在 Excel 和 .net 之间进行转换的方法。Perhaps you could try using the
DateTime.FromOADate
method to convert between Excel and .net.从 Excel 工作表中读取日期时间值:尝试此操作即可。
Reading Datetime value From Excel sheet : Try this will be work.
或者,如果您的单元格已经是真实日期,只需使用 .Value 而不是 .Value2:
Alternatively, if your cell is already a real date, just use .Value instead of .Value2:
我遇到了类似的情况,我使用下面的代码来完成此操作。
希望这对某些人有帮助1
thx_joxin
i had a similar situation and i used the below code for getting this worked..
Hope this helps some1
thx_joxin
或者您可以简单地使用 OleDbDataAdapter 从 Excel 获取数据
Or you can simply use OleDbDataAdapter to get data from Excel
您可能想尝试我在另一个 上发布的简单功能与从 Excel 工作表中读取日期值相关的线程。
它只是将单元格中的文本作为输入,并给出 DateTime 作为输出。
我很高兴看到我的示例代码有所改进,以造福 .Net 开发社区。
这是线程的链接 C# 不读取 Excel 日期来自电子表格
You may want to try out simple function I posted on another thread related to reading date value from excel sheet.
It simply takes text from the cell as input and gives DateTime as output.
I would be happy to see improvement in my sample code provided for benefit of the .Net development community.
Here is the link for the thread C# not reading excel date from spreadsheet
另一种选择:当单元格类型在编译时未知并且单元格格式为 Date
Range.Value
时,返回所需的DateTime
对象。Another option: when cell type is unknown at compile time and cell is formatted as Date
Range.Value
returns a desiredDateTime
object.