我正在使用Office 2003 doc(.xls)的VS2008 .NET3.5。我正在使用Microsoft.Office.Interop.Excel访问文档。从XLS到C#的转换失败的日期时间
这对我的目的很好,但每当我尝试获取日期时都会失败。
我使用的方法是最常见的:
object date= xlWorkSheet.get_Range("E" + i, "E" + i).Value2;
double doubleDate = double.Parse(date);
DateTime finallyDate = DateTime.FromOADate(doubleDate);
我已存储的日期是1961年1月12日(在意大利语中的意思第一十二月,如果我打开Excel它tolds我1961年12月1日)。
当我运行我的应用程序时,碰巧double的值变为15011.0,并且finallyDate值为2/4/1941时,这是不正确的!
我该如何解决这个问题?有什么方法可以转换(也是手动)15011号码吗?
谢谢!
在分析之前,“date”本身的值究竟是什么? (我惊讶上面的代码甚至编译,因为'date'被声明为'object' ...) –
@JonSkeet使用Excel Interop(在C#4之前,你可以使用动态)我认为一切都是作为对象返回。要使用分配运算符左侧以外的任何对象,您需要根据需要将它投射到右侧 – JMK
@JMK:当然,对于第一条语句我没有问题 - 但没有double.Parse (object)'方法... –