0

我有数据网格的格式问题。我已经应用了格式属性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()

谢谢..

4

1 回答 1

0

我建议您在导出到 Excel 时获得默认系统设置的原因是因为 Excel 的自动单元格格式设置功能,该功能将查看单元格的值内容并自动将其预定义格式之一应用于它除非用户另行指定特定格式来覆盖该格式。

由于我们看不到您的 Excel 导出代码,我假设您正在自己执行此操作,在这种情况下,您需要在代码中添加一行以设置该列的日期时间格式或将其格式设置为文本。要对此进行测试,请打开您已经导出的电子表格之一,并将列的格式更改为文本,看看它是否会返回您的原始数据。

于 2013-05-21T22:59:09.870 回答