如何以“dd MMM yyyy”格式在导出的Excel中显示数据表的date字段

我可以在dd MMM yyyy(29 Oct 2015)的 GridView中显示date字段值。 导出到Excel后,date字段值格式将更改为: dd-MMM-yy(29-Oct-15)。 我的代码:

Protected Sub btnExportData_Click(ByVal sender As System.Object, ByVal e As EventArgs) Handles btnExportData.ServerClick Try Dim str As String str = HiddenFilterString.Value Dim dtExportData As New DataTable Dim dtTemp As New DataTable Dim dg As New DataGrid dtTemp = DirectCast(Session("dtSoHoManageSecretServerFoldersExportData"), DataTable) dtExportData = dtTemp.Copy() Dim dv As New DataView(dtExportData) dg.DataSource = dv dg.DataBind() Dim sFileName As String = "ServerFolders.xls" HttpContext.Current.Response.Clear() HttpContext.Current.Response.ClearHeaders() HttpContext.Current.Response.ClearContent() HttpContext.Current.Response.Buffer = True HttpContext.Current.Response.AddHeader("content-disposition", "attachment; filename=" & sFileName) HttpContext.Current.Response.ContentType = "application/vnd.ms-excel" Me.EnableViewState = False Dim objSW As New System.IO.StringWriter Dim objHTW As New HtmlTextWriter(objSW) dg.HeaderStyle.Font.Bold = True dg.RenderControl(objHTW) HttpContext.Current.Response.Write(objSW.ToString()) HttpContext.Current.Response.Flush() HttpContext.Current.Response.End() dtExportData = Nothing dtTemp = Nothing dg = Nothing dv = Nothing objSW = Nothing objHTW = Nothing Catch ex As Exception ReportInternalError("btnExportData_Click", ex) Throw End Try End Sub 

是否有可能在导出的Excel中保留相同格式的GridView?

思路:

-VBA: Columns("E:E").NumberFormat = "dd MMM yyyy"

-Excel Formula: =TEXT(TODAY(),"dd MMM yyyy") with VBA:

Columns("E:E").Copy Columns("E:E").PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _ xlNone, SkipBlanks:=False, Transpose:=False

– 将date单元格导出为文本,如果第一个字符是'撇号' ,Excel将始终以文本forms读取单元格。