2017-07-26 13 views
-3

私は1つのCSVファイルにエクスポートする5つのリストビューを持っています。リストビューでリストビューの内容をCSVファイルにエクスポートする

This is my 5 listview

、あなたは日付時刻はすべて6つのリストビューで同じであることがわかります。

私は最初のリストビューをCSVファイルにエクスポートできました。

 saveFileDialog1.Filter = "csv files (*.csv)|*.csv"; 
     saveFileDialog1.FileName = "logs"; 
     saveFileDialog1.Title = "Export to Excel"; 
     StringBuilder sb = new StringBuilder(); 
     foreach (ColumnHeader ch in listView1.Columns) 
     { 
      sb.Append(ch.Text + ","); 
     } 
     sb.AppendLine(); 
     foreach (ListViewItem lvi in listView1.Items) 
     { 
      foreach (ListViewItem.ListViewSubItem lvs in lvi.SubItems) 
      { 
       if (lvs.Text.Trim() == string.Empty) 
        sb.Append(" ,"); 
       else 
        sb.Append(lvs.Text + ","); 
      } 
      sb.AppendLine(); 
     } 
     DialogResult dr = saveFileDialog1.ShowDialog(); 
     if (dr == DialogResult.OK) 
     { 
      StreamWriter sw = new StreamWriter(saveFileDialog1.FileName); 
      sw.Write(sb.ToString()); 
      sw.Close(); 

      this.Close(); 
     } 

今私は最初colomnはすべて5リストビューでも同じです日付時刻になりますと同じCSVファイルに残っている他の4リストビューをエクスポートします。

どうすればいいですか?

答えて

0

あなたのタスク

class ListViewToCSV 
{ 
    public static void ListViewToCSV(ListView listView, string filePath, bool includeHidden) 
    { 
     //make header string 
     StringBuilder result = new StringBuilder(); 
     WriteCSVRow(result, listView.Columns.Count, i => includeHidden || listView.Columns[i].Width > 0, i => listView.Columns[i].Text); 

     //export data rows 
     foreach (ListViewItem listItem in listView.Items) 
      WriteCSVRow(result, listView.Columns.Count, i => includeHidden || listView.Columns[i].Width > 0, i => listItem.SubItems[i].Text); 

     File.WriteAllText(filePath, result.ToString()); 
    } 

    private static void WriteCSVRow(StringBuilder result, int itemsCount, Func<int, bool> isColumnNeeded, Func<int, string> columnValue) 
    { 
     bool isFirstTime = true; 
     for (int i = 0; i < itemsCount; i++) 
     { 
      if (!isColumnNeeded(i)) 
       continue; 

      if (!isFirstTime) 
       result.Append(","); 
      isFirstTime = false; 

      result.Append(String.Format("\"{0}\"", columnValue(i))); 
     } 
     result.AppendLine(); 
    } 
} 
を達成するために完全なコード
関連する問題