- 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); // 出力されますように・・・
補足
名前を付けて保存ダイアログを使用して、ファイルパスを取得する場合は、
下記を参照。
自己責任で。