C# 将datetime导出到excel
我想将数据导出到windows窗体应用程序中的excel文件,但当我尝试导出日期时,格式会更改。我想使用dd-MM-yyy格式C# 将datetime导出到excel,c#,date,datetime,export-to-excel,C#,Date,Datetime,Export To Excel,我想将数据导出到windows窗体应用程序中的excel文件,但当我尝试导出日期时,格式会更改。我想使用dd-MM-yyy格式 Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application(); if (xlApp == null) { MessageBox.Show("Excel is not properly installed
Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application();
if (xlApp == null)
{
MessageBox.Show("Excel is not properly installed!!");
return;
}
Excel.Workbook xlWorkBook;
Excel.Worksheet xlWorkSheet;
object misValue = System.Reflection.Missing.Value;
xlWorkBook = xlApp.Workbooks.Add(misValue);
xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);
xlWorkSheet.Cells[1, 1].NumberFormat = "dd/mm/yyyy";
xlWorkSheet.Cells[1, 1] = "19-02-2015";
xlWorkSheet.Cells[2, 1] = "02-03-2015";
xlWorkSheet.Cells[2, 1].NumberFormat = "dd/mm/yyyy";
xlWorkBook.SaveAs("C:\\Users\\user\\Desktop\\Data.xls", Excel.XlFileFormat.xlWorkbookNormal, misValue, misValue, misValue, misValue, Excel.XlSaveAsAccessMode.xlExclusive, misValue, misValue, misValue, misValue, misValue);
xlWorkBook.Close(true, misValue, misValue);
xlApp.Quit();
releaseObject(xlWorkSheet);
releaseObject(xlWorkBook);
releaseObject(xlApp);
private void releaseObject(object obj)
{
try
{
System.Runtime.InteropServices.Marshal.ReleaseComObject(obj);
obj = null;
}
catch (Exception ex)
{
obj = null;
MessageBox.Show("Exception Occured while releasing object " + ex.ToString());
}
finally
{
GC.Collect();
}
}
excel文件中的结果为:
2015年2月19日作为文本
日期时间为2015年3月2日
我使用excel 2013
因此,如何将日期超过12天的日期导出到excel,并将其格式设置为mm/dd/jjj我建议您使用“文本”作为单元格类型。它将消除日期的自动格式更改。您可以使用以下代码:
xlWorkSheet.Cells[1, 1].NumberFormat = "@";
第一个日期不起作用输出仍然相同,第二个日期更改为2/3/yyyy,但后面的值为3-2-2015,因此它将日期和月份更改为yyyy编辑:将格式更改为mm/dd/JJJ现在第二个日期起作用,但第一个1仍然不起作用,可能是因为19不是有效的月份。“mm/dd/JJ”=>“19-02-2015”。测试时,使用“mmm”格式验证您是否得到了所需的月份。你确定你的“2015年3月2日”是3月2日而不是2月3日吗?你为什么不把你想要的日期放在电子表格中,然后打开你的应用程序并读取该文件,看看它应该如何存储?“19-02-2015”是否符合您当地的区域配置(dd-mm-yyyy)?您好,请尝试这些线路,并告诉我这是否解决了问题。我将把它添加为答案xlWorkSheet.Cells[1,1].NumberFormat=“dd-mm-yyyy”;xlWorkSheet.Cells[2,1].NumberFormat=“dd-mm-yyyy”;xlWorkSheet.Cells[1,1].Value=“19-02-2015”;xlWorkSheet.Cells[2,1].Value=“02-03-2015”@E上面的代码片段对你有用吗?@Andrew我的本地配置是dd mm yyyy,当我将月份改为ddd时,它会显示2月3日,所以你能给我一些电子表格的示例代码吗kishoreVM格式dd mm yyyy不起作用,它会导致年份显示为yyyy,但它仍然具有值2015。结果不起作用42038对于第二个日期和第一个日期未更改,您需要在不更改格式的情况下为每个要放置日期的单元格使用此代码。或者,您可以将文本设置为电子表格中所有单元格的列类型:范围单元格=xlsheetwork.cells;cells.NumberFormat=“@”;仍然是相同的结果请在下一行之前添加我上面评论中的代码-xlsheet.Cells[1,1]=“19-02-2015”;我相信这两行应该可以工作范围单元格=xlWorkSheet.cells;cells.NumberFormat=“@”;应在代码工作表的下一行之前。单元格[1,1]=“19-02-2015”;