- 2019-1-13
- Visual C#
C# リストビュー(ListView) の内容をCSVで出力する。
意外とよく使うので、出力部分のソース記載。
ソース
前提として、リストビュー(ListView)のオブジェクト名は、下記のとおり。
オブジェクト名:ListViewTmp
ファイルパス :sCsvFilePath
区切り :カンマ区切り
try
{
using ( StreamWriter sw = new StreamWriter( sCsvFilePath, // 書き込みファイルパス
false, // ファイル上書き
Encoding.GetEncoding("shift_jis"))) // 文字コード
{
string sCsvData;
// 行数分ループ
foreach ( ListViewItem lvItem in ListViewTmp.Items )
{
string sTemp = "";
// 行のカラム数分ループ
foreach ( ListViewItem.ListViewSubItem lvSubitem in lvItem.SubItems )
{
// バッファにカラム内容+カンマ
sTemp += lvSubitem.Text + ",";
}
// 文字列の最後のカンマを取り除く ------------------
// 文字数取得
int nStrLen = sTemp.Length;
// 最後のカンマを削除
sCsvData = sTemp.Remove( nStrLen - 1 , 1 );
// ----------------------------------------------
// 書き込み
sw.WriteLine( sCsvData );
// デバッグ用
Debug.WriteLine( sCsvData );
}// END foreach
}// END using
}
catch (Exception exp)
{
// ファイル操作で失敗
MessageBox.Show( "リストビューのCSV出力に失敗しました。\r\n(" + exp.Message + ")",
"ERROR",
MessageBoxButtons.OK,
MessageBoxIcon.Error);
// デバッグ用
Debug.WriteLine(exp.Message);
return;
}
MessageBox.Show("リストビューのCSV出力が完了しました。",
"ファイル出力完了",
MessageBoxButtons.OK,
MessageBoxIcon.Information);
// 出力されますように・・・
補足
名前を付けて保存ダイアログを使用して、ファイルパスを取得する場合は、
下記を参照。
自己責任で。











