我正在构建一个基于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中的单元格格式默认为常规。但是,输入值时,它将更改为日期。
答案 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
答案 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之前加上一个有效的撇号。
由于