- PR -

[ASP.NET]DataGridの内容をCSV出力する際に、項目がNULLだとおかしくなる

1
投稿者投稿内容
ちづる
ベテラン
会議室デビュー日: 2004/07/27
投稿数: 72
投稿日時: 2004-08-24 14:37
また皆様のアドバイスをいただきたく、投稿させていただきます。

こちらの過去ログを参照し、CSV出力の処理を作りました。
一点を除いて思い通りに出力はされました。
問題は、DataGridのカラムでNULLの場所がある場合、出力ファイルには
 ←と出てしまうのです。
If文を入れたりしたのですが、どうしても の部分は のままでした。

じゃぁ、DataGridセット時にNULLの場合は" "をセットすればいいか、とも
思ったのですが、データソースでセットしているため、それもできませんでした。

どのようにすればCSV出力時に が" "(全角スペース)にすることができますでしょうか?
以下が実際の処理です。
----------------------------------------------------------------------------
Dim sb As String = ""
Dim grd_col As DataGridColumn
Dim grd_row As DataGridItem
Dim grd_cell As TableCell

'oGridはDataGridです

Response.ContentType = "Application/octet-stream"
Response.ContentEncoding = Encoding.GetEncoding("Shift-JIS")
Response.AddHeader("Content-Disposition", "inline;filename=Karute_data.csv")

For Each grd_col In oGrid.Columns
If sb <> "" Then
sb = sb & ","
End If
'ヘッダーテキスト
sb = sb & grd_col.HeaderText
Next grd_col
Response.Write(sb & vbNewLine)
'グリッド内容
For Each grd_row In oGrid.Items
sb = ""
For Each grd_cell In grd_row.Cells
If sb <> "" Then
sb = sb & ","
End If
sb = sb & grd_cell.Text
Next grd_cell
Response.Write(sb & vbNewLine)
Next grd_row
Response.End()

burton999
ぬし
会議室デビュー日: 2003/10/06
投稿数: 898
お住まい・勤務地: 東京
投稿日時: 2004-08-24 14:50
>If文を入れたりしたのですが、どうしても&nbsp;の部分は&nbsp;のままでした。

どのようなIF文を入れたのでしょうか?

単に文字列の"&nbsp;"だったら空文字を出力するではダメですか?
デバッグした時に項目がNULLの場合のgrd_cell.Textに何がはいっていますか?
NAL-6295
ぬし
会議室デビュー日: 2003/01/26
投稿数: 966
お住まい・勤務地: 東京
投稿日時: 2004-08-24 14:58
NAL-6295です。
HTTPUtilityクラスがあるので、それのHtmlDecodeを利用して下さい。
_________________
「伝える」とは「人に云う」と書く。
http://d.hatena.ne.jp/NAL-6295/
burton999
ぬし
会議室デビュー日: 2003/10/06
投稿数: 898
お住まい・勤務地: 東京
投稿日時: 2004-08-24 15:04
おそらくHtmlDecodeを使用すると半角スペースになるので
全角にする処理が別途必要になると思います。
ちづる
ベテラン
会議室デビュー日: 2004/07/27
投稿数: 72
投稿日時: 2004-08-24 15:50
>burton999さん

>単に文字列の"&nbsp;"だったら空文字を出力するではダメですか?

やってみたら出来ました。
最初に作ったIF文は普通に

If grd_cell.Text <>"" then

とやっていたためにならなかったのです。
あたりまえですよね、上でShift-JISを指定していたら、半角スペースは"&nbsp;に
なってしまうんですよね(^^;

NAL-6295さん、burton999さんありがとうございました。

なちゃ
ぬし
会議室デビュー日: 2003/06/11
投稿数: 872
投稿日時: 2004-08-24 16:11
念のために書いておきますが…
引用:

あたりまえですよね、上でShift-JISを指定していたら、半角スペースは"&nbsp;に
なってしまうんですよね(^^;


あたりまえじゃないです、ちがいます。(T_T)
1

スキルアップ/キャリアアップ(JOB@IT)