C# リストビュー(ListView) の内容をCSVで出力する。

  • マウスコンピューター/G-Tune
  • 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);
    
    // 出力されますように・・・
    
    

    補足
    名前を付けて保存ダイアログを使用して、ファイルパスを取得する場合は、
    下記を参照。

    名前を付けて保存 ダイアログ(コモンダイアログ) C#

    自己責任で。

    関連記事

    ページ上部へ戻る