プログラムのことなんてちょろちょろ書いてます。まったり更新でよろしく(;´Д`A ```
むにむにするHP
スポンサーサイト
-----------  CATEGORY: スポンサー広告
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
ページトップへ
DataTableの内容をCSVへ書き込む
2013-03-11-Mon  CATEGORY: C#
前回の記事とは逆にDataTableの内容をCSVへ出力します。

今回もDataTableの拡張メソッドとして書式を以下のようにします。

public static void ToCsv(this DataTable dt, string filePath, bool hasHeader, Encoding encoding)

第1引数はCSVへ出力するDataTableで、拡張メソッドとするために this をつけます。
第2引数はCSVファイルのパスです。
第3引数はCSVファイルの1行目をヘッダと見なすか判断するためのフラグで、trueなら1行目をヘッダと見なしてDataTableの列名を出力します。
第4引数はCSVファイルのエンコードを指定します。

各項目はダブルクォートで括ります。


public static void ToCsv(this DataTable dt, string filePath, bool hasHeader, Encoding encoding)
{
using ( TextWriter writer = new StreamWriter(filePath, false, encoding))
{
// ヘッダが必要ならDataTableの列名を1行目に出力する
if (hasHeader)
{
string header = string.Empty;

// 列名を取得してカンマ区切りにする(最後のカンマを削除)
foreach (DataColumn column in dt.Columns)
{
header = string.Format("\"{0}\",", column.ColumnName);
}
header = header.Remove(header.Length - 1);

writer.WriteLine(header);
}

// データを展開
foreach (DataRow row in dt.Rows)
{
string line = string.Empty;

// 各行データを取得してカンマ区切りにする(最後のカンマを削除)
foreach (object column in row.ItemArray)
{
line = string.Format("\"{0}\",", column);
}
line = line.Remove(line.Length - 1);

writer.WriteLine(line);
}
}
}

スポンサーサイト
ページトップへ  トラックバック0 コメント0
コメント

管理者にだけ表示を許可する
 
トラックバック
TB*URL
<< 2017/11 >>
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 - -


余白 Copyright © 2005 むにむにするHP. all rights reserved.
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。