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 にエクスポートするときにデフォルトのシステム設定が得られる理由は、セルの値の内容を見て、事前定義されたフォーマットの 1 つを自動的に適用する Excel の自動セル フォーマット機能のためだと思います。ユーザーが特定の形式を指定して、この形式をオーバーライドしない限り。

Excel エクスポート コードが表示されないため、自分で行っていると仮定します。その場合、コードに行を追加して、その列の日時形式を設定するか、形式をテキストに設定する必要があります。これをテストするには、既にエクスポートしたスプレッドシートの 1 つを開き、列の形式をテキストに変更して、元のデータが返されるかどうかを確認します。

于 2013-05-21T22:59:09.870 に答える