cco*_*ker 1 c# excel datetime ms-office openxml
我正在使用 OpenXML 读取和 Excel 电子表格,并将日期存储为数字。据我了解,这是一种朱利安格式,我在谷歌上搜索的每个地方都说要使用 ToOADate(); 将这些数字转换为日期。
我遇到的问题是 ToOADate(); 在我的编译中没有解决。我正在使用 Visual Basic 2013,C# Asp.net MVC 应用程序。
看来这是在系统命名空间中,但我已经有一个 using System 语句。
我显然错过了一些非常基本的东西 - 有人可以帮忙吗?
var test = 41725;
DateTime test2 = test.ToOADate();
Run Code Online (Sandbox Code Playgroud)
我得到的编译错误是
错误 4“int”不包含“ToOADate”的定义,并且找不到接受“int”类型的第一个参数的扩展方法“ToOADate”(您是否缺少 using 指令或程序集引用?)
如果您要将数字转换为 Framework DateTime 实例,则可能需要使用DateTime 结构上的静态方法。
DateTime dt = DateTime.FromOADate(23456);
Run Code Online (Sandbox Code Playgroud)
此方法的范围需要限定为 DateTime。在我的示例中,结果是 1963 年 3 月 20 日。
DateTime 上还有一个实例方法,它的作用相反......
double d = dt.ToOADate();
Run Code Online (Sandbox Code Playgroud)
本例中的结果是 23456。
您的代码表明您试图将其作为int 的实例方法调用,但这将不起作用。编译器告诉您 int 原语上没有这样的方法。
尝试一下...
var test = 41725;
DateTime test2 = DateTime.FromOADate(test);
Run Code Online (Sandbox Code Playgroud)
您将得到 2014 年 3 月 27 日。