Esempio n. 1
0
        public override DataTable ReadDataToDataGrid(string filePath, string customParameter)
        {
            DataTable PreviewDataTable = new DataTable();

            if (File.Exists(filePath))
            {
                DataTable dataTable = new DataTable();
                Kent.Boogaart.KBCsv.CsvReader csvReader = new Kent.Boogaart.KBCsv.CsvReader(filePath);
                csvReader.ValueSeparator = customParameter[0];
                foreach (string column in csvReader.ReadHeaderRecord().Values)
                {
                    dataTable.Columns.Add(column);
                }
                Collection <int> rowsNumber = new Collection <int>();
                int i = 1;
                foreach (Kent.Boogaart.KBCsv.DataRecord dt in csvReader.ReadDataRecords())
                {
                    DataRow dr = dataTable.NewRow();
                    if (dt.Values.Count == dt.HeaderRecord.Values.Count)
                    {
                        foreach (string column in dt.HeaderRecord.Values)
                        {
                            dr[column] = dt[column];
                        }
                        dataTable.Rows.Add(dr);
                    }
                    else
                    {
                        rowsNumber.Add(i);
                        continue;
                    }
                    i++;
                }
                if (rowsNumber.Count > 0)
                {
                    StringBuilder message = new StringBuilder("The following line(s) are invalid and has been ignored. " + Environment.NewLine + "Line Number: ");
                    foreach (var item in rowsNumber)
                    {
                        message.Append(item.ToString() + ", ");
                    }
                    Messenger.Default.Send(new DialogMessage(message.Remove(message.Length - 2, 2).ToString(), null)
                    {
                        Caption = "Warning"
                    });
                }
                PreviewDataTable = dataTable;
            }
            return(PreviewDataTable);
        }
        private Kent.Boogaart.KBCsv.CsvReader CreateCsvReader()
        {
            Kent.Boogaart.KBCsv.CsvReader csvReader = null;
            if (Encoding != null)
            {
                csvReader = new Kent.Boogaart.KBCsv.CsvReader(CsvPathFileName, Encoding);
            }
            else
            {
                csvReader = new Kent.Boogaart.KBCsv.CsvReader(CsvPathFileName);
            }

            if (!string.IsNullOrEmpty(Delimiter) && Delimiter.Length == 1)
            {
                csvReader.ValueSeparator = Delimiter[0];
            }

            csvReader.ReadHeaderRecord();
            return(csvReader);
        }