Пример #1
0
        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);
        }
Пример #2
0
        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);
        }
Пример #3
0
        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();
        }