在打开Excel文件时,将DataTable导出到Excel,而不使用Interop Date Fromat更改

我已经将DataTable导出为ex​​cel文件。 但是,当我打开Excel文件DateTime格式被改变。
当我导出数据date时间字段包含“ 7/21/2016 12:00:00 AM ”值。 而当我打开Excel文件date时间字段显示“ 7/21/2016 0:00 ”值。
但是,当我检查在Excel文件公式栏date时间值显示正确的“ 7/21/2016 12:00:00 AM ”。

在这里输入图像说明

在这里输入图像说明

有什么我可以做的,以解决这个问题?

我已经使用下面的代码将数据表导出为Excel:

 HttpContext.Current.Response.Clear(); HttpContext.Current.Response.ClearContent(); HttpContext.Current.Response.ClearHeaders(); HttpContext.Current.Response.Buffer = true; HttpContext.Current.Response.ContentType = "application/ms-excel"; HttpContext.Current.Response.Write(@"<!DOCTYPE HTML PUBLIC ""-//W3C//DTD HTML 4.0 Transitional//EN"">"); HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment;filename=" + curEventName + ".xls"); HttpContext.Current.Response.Charset = "utf-8"; HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.GetEncoding("windows-1250"); ////sets font HttpContext.Current.Response.Write("<font style='font-size:10.0pt; font-family:Calibri;'>"); HttpContext.Current.Response.Write("<BR><BR><BR>"); //sets the table border, cell spacing, border color, font of the text, background, foreground, font height HttpContext.Current.Response.Write("<Table border='1' bgColor='#ffffff' " + "borderColor='#000000' cellSpacing='0' cellPadding='0' " + "style='font-size:10.0pt; font-family:\"Times New Roman\"; background:white;'> <TR>"); //am getting my grid's column headers int columnscount = dt_exportResponse.Columns.Count; for (int j = 0; j < columnscount; j++) { //write in new column HttpContext.Current.Response.Write("<Td>"); //Get column headers and make it as bold in excel columns HttpContext.Current.Response.Write("<B>"); HttpContext.Current.Response.Write(dt_exportResponse.Columns[j].ColumnName); HttpContext.Current.Response.Write("</B>"); HttpContext.Current.Response.Write("</Td>"); } HttpContext.Current.Response.Write("</TR>"); foreach (DataRow row in dt_exportResponse.Rows) {//write in new row HttpContext.Current.Response.Write("<TR>"); for (int i = 0; i < dt_exportResponse.Columns.Count; i++) { HttpContext.Current.Response.Write("<Td>"); HttpContext.Current.Response.Write(row[i].ToString()); HttpContext.Current.Response.Write("</Td>"); } HttpContext.Current.Response.Write("</TR>"); } HttpContext.Current.Response.Write("</Table>"); HttpContext.Current.Response.Write("</font>"); HttpContext.Current.Response.Flush(); HttpContext.Current.Response.End(); 

这不是一个错误。 这只是您如何指示Excel显示DATEtypes的给定单元格的问题。 您可以通过修改Format-> Cells:Number来覆盖任何单元格,也可以使用各种内置的date处理函数来凑齐任何特定的date/时间格式,如22 '16如果适合你。