我有一个数据网格的格式问题。我已经应用了格式化属性aDataColumn.DataFormatString = "{0:d}"
Private Function CreateColumnFromNode(ByVal aDisplayPropertyNode As XmlNode) As BoundColumn
Dim PropertyKey As String = cXMLDoc.AttributeToString(aDisplayPropertyNode, "PropertyKey")
Dim ColumnHeader As String = ConfigurableText(cXMLDoc.AttributeToString(aDisplayPropertyNode, "ColumnHeader"))
If PropertyKey = "" Then Return Nothing
Dim aDataColumn As New BoundColumn()
aDataColumn.DataField = PropertyKey
aDataColumn.HeaderText = IIf(ColumnHeader = "", PropertyKey, ColumnHeader)
<b> aDataColumn.DataFormatString = "{0:d}"</b>
Return aDataColumn
End Function
到数据网格。导出到excel时,它采用系统的默认设置。
我使用了以下代码进行导出。不是自定义代码。
它使用asp.net属性。
Dim response As HttpResponse = HttpContext.Current.Response
response.Clear()
response.Charset = ""
' set the response mime type
response.ContentType = "application/vnd.ms-excel"
response.AddHeader("Content-Disposition", "attachment;filename=" + aFileName)
' create a string writer
Using sw As System.IO.StringWriter = New System.IO.StringWriter()
Using htw As HtmlTextWriter = New HtmlTextWriter(sw)
' instantiate a datagrid
DataGrid1.RenderControl(htw)
response.Write(sw.ToString())
End Using
End Using
response.End()
谢谢..
发布于 2013-05-22 06:59:10
我建议您在导出到Excel时获得默认系统设置的原因是因为Excel的自动单元格格式设置功能,该功能将查看单元格的值内容,并自动将其预定义格式之一应用于该单元格,除非用户另外指定了特定格式来覆盖此格式。
由于我们看不到您的Excel导出代码,因此我假定您自己正在执行此操作,在这种情况下,您需要在代码中添加一行,以设置该列的日期时间格式或将其格式设置为文本。要测试这一点,请打开您已经导出的电子表格之一,将列的格式更改为text,看看它是否会返回原始数据。
https://stackoverflow.com/questions/16667545
复制相似问题