DateTime
在Excel中表示的最佳方法是什么?我们使用Syncfusions Essential XlsIO将值输出到效果很好的Excel文档中。但是我不知道如何DateTime
在列中显示。也不是直接在Excel中自己完成。不可能吗 我是否必须使用单独的日期和时间列?我真的很希望我不会,导致排序中断等等...除非Excel有一些聪明的方法可以解决...
DateTime
在Excel中表示的最佳方法是什么?我们使用Syncfusions Essential XlsIO将值输出到效果很好的Excel文档中。但是我不知道如何DateTime
在列中显示。也不是直接在Excel中自己完成。不可能吗 我是否必须使用单独的日期和时间列?我真的很希望我不会,导致排序中断等等...除非Excel有一些聪明的方法可以解决...
Answers:
如果像我一样,在格式对话框中找不到日期或时间下的日期时间,则应该可以在“自定义”中找到它。
我刚刚从“自定义”中选择了“ dd / mm / yyyy hh:mm”,并对结果感到满意。
某些版本的Excel在标准选择列表中没有日期时间格式,但是您可以通过以下方式输入自定义格式字符串,例如yyyy-mm-dd hh:mm:ss:
这适用于我的Excel 2010
Excel可以以类似于DateTime的方式显示Date类型。受影响的电池鼠标右键,选择设置单元格格式,然后在类别中选择日期,并在类型选择类型,看起来是这样的:
3/14/01 1:30 PM
那应该做你所要求的。我测试了使用这种格式对一些示例数据进行的排序,它似乎可以正常工作。
Excel希望日期和时间存储为浮点数,其值取决于工作簿的Date1904设置,外加数字格式,例如“ mm / dd / yyyy”或“ hh:mm:ss”或“ mm / dd” / yyyy hh:mm:ss”,以便将数字作为日期/时间显示给用户。
使用SpreadsheetGear for .NET,您可以执行以下操作:worksheet.Cells [“ A1”]。Value = DateTime.Now;
这会将DateTime转换为double,这是Excel用于日期/时间的基础类型,然后根据值自动使用默认日期和/或时间数字格式设置单元格的格式。
SpreadsheetGear还具有IWorkbook.DateTimeToNumber(DateTime)和NumberToDateTime(double)方法,这些方法将从.NET DateTime对象转换为Excel可以使用的double。
我希望XlsIO有类似的东西。
免责声明:我拥有SpreadsheetGear LLC
您可以使用以下选项之一将日期时间值设置为XlsIO中的单元格
sheet.Range["A1"].Value2 = DateTime.Now;
sheet.Range["A1"].NumberFormat = "dd/mm/yyyy";
sheet.Range["A2"].DateTime = DateTime.Now;
sheet.Range["A2"].NumberFormat = "[$-409]d-mmm-yy;@";
您可以在此处找到更多信息。
dd-mm-yyyy hh:mm:ss.000通用可排序日期/时间模式
yyyy-mm-dd hh:mm:ss.000
吗 还有ISO8601格式类似:(YYYY-MM-DDThh:mm:ssTZD
尽管它们的局限性是可排序的,但它们仍然是字符串,因此您无法将Excel日期函数应用于它们)