1

次のコードを使用して、グリッドビューを ASPX ページの XLS ファイルにレンダリングしています。

Private Sub ExportGridviewToExcel()
    Dim attachment As String = "attachment; filename=ItemSizeExport.xls"
    Response.ClearContent()
    Response.AddHeader("content-disposition", attachment)
    Response.ContentType = "application/ms-excel"
    Dim sw As New StringWriter()
    Dim htw As New HtmlTextWriter(sw)
    GV_Item_Data.RenderControl(htw)
    Response.Write(sw.ToString())
    Response.End()
End Sub

列の 1 つは通常 null ですが、2342515123332222 などのかなり長い整数が含まれている場合があります。これはバーコード タイプの番号です。そのため、計算を行う必要はありません。

簡単に言うと、XLS はこれを浮動小数点にしますが、これはエンド ユーザーにとっては迷惑なことです。(~23432 E 18)

XLS のこの列を強制的に文字列にする方法はありますか?

他の方法で XLS を生成するつもりはありません...私の「フォールバック」は、その列の空白以外の各エントリの前に「#」文字を書き込むことで、列が強制的に次のように解釈されることを期待しています。数字ではなくテキスト。残念ながら、これは理想的な解決策ではありません。

4

1 に答える 1

1

その列の空白以外の各エントリの前にある # 文字の代わりに、アポストロフィを使用できます。これでテキストに変換されます。可能性のある別のアプローチは、列フォーマット情報を含むマクロを添付することですが、それが可能かどうかはわかりません。

于 2009-10-29T04:43:17.007 に答える