通过.net将excel列格式化为“yyyy-MM-dd”

我试图格式化一个.net应用程序中创build的Excel列。 我发送excel表单的正确格式的date,但是,由于某种原因,Excel似乎正在格式化它自己的方式。 以下是我有,但它不起作用:

sheet.Cells[i, 2] = String.Format("{0:yyyy-MM-dd}", Convert.ToDateTime(dr["date"].ToString())); //yyyy-mm-dd ((Excel.Range)sheet.Cells[i, 2]).EntireColumn.NumberFormat = "yyyy-MM-dd"; 

我得到的格式是mm / dd / yyyy。 我如何格式化这一列? 先谢谢你。

添加不知道这是否重要,但这是我如何保存Excel文件:

  wb.SaveAs(FileName, Excel.XlFileFormat.xlCSV, null, null, false, false, Excel.XlSaveAsAccessMode.xlNoChange, false, false, null, null, null); 

尝试这个:

 ((Excel.Range)sheet.Cells[i, 2]).EntireColumn.NumberFormat = "yyyy-MM-dd"; sheet.Cells[i, 2].Value2 = Convert.ToDateTime(dr["date"].ToString()); 

或者干脆(使用string)

 ((Excel.Range)sheet.Cells[i, 2]).EntireColumn.NumberFormat = "@"; sheet.Cells[i, 2].Value2 = Convert.ToDateTime(dr["date"].ToString()) .ToString("yyyy/MM/dd"); 

不要在Excel中打开它,Excel将重新格式化它打开的任何CSV文件,并使用您的系统区域设置显示date和时间。

相反,在普通的文本编辑器(如记事本)中查看您的CSV文件。