C# Excel中的日期范围不工作

C# Excel中的日期范围不工作,c#,excel,date,C#,Excel,Date,我正在从C#写入Excel文件。我的一列有日期值。因此,我将设置如下格式 rg=xlsSheet.Range[xlsSheet.Cells[13,20],xlsSheet.Cells[rowcount,20]; rg.entireclumn.NumberFormat=“YYYY/MM/dd HH:MM:ss”; rg.entireclumn.ColumnWidth=20 但在生成的Excel中,我可以看到格式为YYYY/MM/dd和dd/MM/YYYY的值 2015/12/01 18:46:1

我正在从C#写入Excel文件。我的一列有日期值。因此,我将设置如下格式 rg=xlsSheet.Range[xlsSheet.Cells[13,20],xlsSheet.Cells[rowcount,20]; rg.entireclumn.NumberFormat=“YYYY/MM/dd HH:MM:ss”; rg.entireclumn.ColumnWidth=20

但在生成的Excel中,我可以看到格式为YYYY/MM/dd和dd/MM/YYYY的值

 2015/12/01 18:46:10
 2015/12/01 18:46:10
 2015/12/01 18:46:10
 13/01/2015 06:39:23
 13/01/2015 06:39:23
 13/01/2015 06:39:23
 13/01/2015 06:39:23

如何在整个Excel工作表中使用一致的日期格式?

之所以出现这种情况,是因为日期以DMY的形式输入,而系统的区域设置为MDY。后4个日期是字符串,因为Excel无法识别第13个月的日期。事实上,前三个日期是不正确的,因为它们可能应该出现在2015年1月12日,而不是2015年12月1日。您需要根据正确的区域设置分析日期,或者执行一些手动字符串操作以获得正确的日期。@Jeeped:设置数字格式是不够的?我应该如何设置它以一致地获得正确的日期?一致性取决于您是否知道输入的日期格式的性质以及目标系统的区域设置的性质。适当的文本导入例程(如)允许您使用指定特定的列日期样式。很抱歉,我没有可以测试解决方案的C#环境(因此我只发表评论)。@Jeeped:谢谢您的输入!这里有一个旧的VBA技巧,您应该能够适应它。将datetime字符串作为文本输入单元格;使用数字格式@应该可以,但您可能必须使用
作为前缀字符来强制文本。只需将datetime字符串作为文本输入到列中即可。接下来对列执行TextToColumns,固定宽度。实际上,您不会拆分任何内容,但将从字符串转换为真正的日期时间,这允许您设置DMY输入格式。一旦它是一个实际(数字)日期时间,您可以应用任何您想要的数字格式。