DataTable GetDataTable(Csv csv) { var dt = new DataTable(); var headers = csv.Headers; for (var i = 0; i < headers.Count; i++) { var header = headers[i]; dt.Columns.Add(header); } for (var i = 0; i < csv.VLineCount; i++) { var vLine = csv.GetVLine(i); var dRow = dt.NewRow(); for (var j = 0; j < headers.Count; j++) { var header = headers[j]; dRow[header] = vLine.GetValue(header); } dt.Rows.Add(dRow); } dt.ColumnChanged += (s, e) => { var index = dt.Rows.IndexOf(e.Row); if (index == -1) { return; } var vLine = csv.GetVLine(index); vLine.SetValue(e.Column.ColumnName, e.ProposedValue.ToString()); UpdateText(); }; return(dt); }
public static List <CsvVLine> GetVLinesByCondition(Csv csv, ICondition condition) { var r = new List <CsvVLine>(); for (var i = 0; i < csv.VLineCount; i++) { var vLine = csv.GetVLine(i); if (condition.GetBool(vLine)) { r.Add(vLine); } } return(r); }
void DisplayCsvWithListView(Csv csv) { listView.Visible = true; listView.Items.Clear(); listView.Columns.Clear(); listView.BeginUpdate(); for (var i = 0; i < csv.Headers.Count; i++) { var header = csv.Headers[i]; listView.Columns.Add(header, 100); } for (var i = 0; i < csv.VLineCount; i++) { var vLine = csv.GetVLine(i); var item = new ListViewItem(); for (var j = 0; j < csv.Headers.Count; j++) { var header = csv.Headers[j]; var value = vLine.GetValue(header); if (j == 0) { item.Text = value; } else { item.SubItems.Add(value); } } listView.Items.Add(item); } listView.EndUpdate(); }