NOBlog 〜バカの一念〜

基本的にはNOB(ノブ)の日記。
スキークロス国際レース出場を目標に日々努力中。

  November/2007  
S M T W T F S
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30  
blog内検索

[ASP.NET]CSVファイルダウンロード

2005-01-18
DBから取得したデータをCSV(またはTSVなど)形式でクライアントに保存したいという要件は、必ずと言って良いくらいあるものです。
その方法と注意点をいくつか。常識的な事なのですが、結構できてない人たくさんいます。
例えば、DataTableに取得したデータをそのままCSV形式でダウンロードしたいという場合は下記のようにします。


Dim buf As New StringBuilder

'データテーブルの全行をCSV変換しバッファに追加
For i As Integer = 0 To dt.Rows.Count - 1
  buf.Append(Join(dt.Rows(i).ItemArray, ","))
  buf.Append(vbCrLf)
Next

'レスポンスに対して各種設定をします。
Response.ContentType = "application/download"
Response.AppendHeader("Content-Disposition", "filename=""ほにょ.csv""")
'エンコードを指定する場合は下記のように。 Response.ContentEncoding = System.Text.Encoding.GetEncoding("Shift_JIS")
'Responseに書き込みます。
Response.Write(buf.ToString)

重要なのは、長い文字列の生成にはStringBuilderを利用するという事。
これをStringでそのまま作ったりすると文字列長によっては大変なことになります(^^;
今となっては常識的な事ですが、結構知らない人たくさんいます。注意しましょう。


※注
当ブログのTipsは、@IT等の情報サイトの内容を参考にして構成された記事
もあります。Tipsの内容に著作権等権利を侵害する内容があった場合には、
告知して下さい。早急に訂正または削除にて対応したいと思います。

この記事へのトラックバックURL

この記事へのコメント
Copyright(C) PwBlog. All rights reserved.