我需要将C# datetime对象转换为可怕的Excel日期格式:即自1900年1月1日以来的天数,表示为浮点数。有没有不用DIY代码的方法来实现它?我需要这个来创建符合Excel标准的CSV导出文件。在网上搜索时,除了一篇好的博客文章外,我没有找到任何有用的信息。博客文章链接:https://datapub.cdlib.org/2014/04/10/abandon-all-hope-ye-who-enter-dates-in-excel/。
Excel日期使用OLE自动化日期格式。您可以使用DateTime.ToOADate 方法检索它。
OA日期是一个double类型的数字,其中整数部分是从1899年12月30日算起到具体日期的天数(早于这个日期的为负数),小数部分则是24小时制下当前时间与零时之间的小时数。
这种类型在COM/VB6时代经常被使用。现在仍然需要用到它来处理Excel和调用期望包含日期内容的COM API。
return DateTime.FromOADate(SerialDate);
csv
时,Excel使用当前用户区域设置和默认值导入文本文件。您问的是如何在Excel中存储日期,而不是如何将CSV数据导入Excel。PS:链接的文章更多地涉及R与Excel的差异和误解。 - Panagiotis Kanavos2016-10-21T13:45
。Excel会检测到这不是本地化的日期格式。任何其他格式实际上都是可能失败的本地化格式。 - Panagiotis Kanavossheet.LoadFromCollection(someList)
一样容易。 - Panagiotis Kanavos