C#:错误在Excel中打印日期值

时间:2013-01-18 15:00:11

标签: c# excel datetime

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

当我尝试输入日期值时,我收到错误。

在C#中,日期值为"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中的单元格格式默认为常规。但是,输入值时,它将更改为日期。

enter image description here

4 个答案:

答案 0 :(得分:4)

尝试使用以下命令更改excel-Cell的格式:

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

或将字符串格式调整为excel格式。

答案 1 :(得分:1)

尝试:

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都必须包含相同的Format。如果你得到相同的肯定是Excel失败。

编辑:

Evidence http://i45.tinypic.com/2nti7vn.png

仅限DJ KRAZE

Evidence http://i48.tinypic.com/ngshs2.png

答案 2 :(得分:1)

尝试这样做

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

当您添加值时,您可以尝试

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

答案 3 :(得分:1)

遗憾的是,没有任何建议有所帮助。所以,我在Excel中禁用了自动格式化:

因此,这里是禁用Excel中自动(日期)格式的代码片段:

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

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

由于