private static DataTable ParseCSV(DataTable table, TextReader stream, bool headers) { CsvStream csv = new CsvStream(stream); string[] row = csv.GetNextRow(); if (row == null) { return(null); } if (headers) { foreach (string header in row) { if (header != null && header.Length > 0 && !table.Columns.Contains(header)) { table.Columns.Add(header, typeof(string)); } else { table.Columns.Add(GetNextColumnHeader(table), typeof(string)); } } row = csv.GetNextRow(); } while (row != null) { while (row.Length > table.Columns.Count) { table.Columns.Add(GetNextColumnHeader(table), typeof(string)); } table.Rows.Add(row); row = csv.GetNextRow(); } return(table); }
public static DataTable Parse(TextReader stream, bool headers) { DataTable table = new DataTable(); CsvStream csv = new CsvStream(stream); string[] row = csv.GetNextRow(); if (row == null) return null; if (headers) { foreach (string header in row) { if (!String.IsNullOrEmpty(header) && !table.Columns.Contains(header)) table.Columns.Add(header, typeof(string)); else table.Columns.Add(GetNextColumnHeader(table), typeof(string)); } row = csv.GetNextRow(); } while (row != null) { while (row.Length > table.Columns.Count) table.Columns.Add(GetNextColumnHeader(table), typeof(string)); table.Rows.Add(row); row = csv.GetNextRow(); } return table; }
public static DataTable Parse(TextReader stream, CsvHeadersAction Headers, char delimiter) { DataTable table = new DataTable(); CsvStream csv = new CsvStream(stream); string[] row = csv.GetNextRow(delimiter); if (row == null) { return(null); } if (Headers == CsvHeadersAction.SkipHeaderLine) { row = csv.GetNextRow(delimiter); } if (Headers == CsvHeadersAction.UseAsColumnNames) { //foreach (string header in row) for (int i = 0; i < row.Length; i++) { if (row[i] != null && row[i].Length > 0 && !table.Columns.Contains(row[i])) { table.Columns.Add(row[i], typeof(string)); } else { table.Columns.Add(GetNextColumnHeader(table), typeof(string)); } } row = csv.GetNextRow(delimiter); } while (row != null) { while (row.Length > table.Columns.Count) { table.Columns.Add(GetNextColumnHeader(table), typeof(string)); } table.Rows.Add(row); row = csv.GetNextRow(delimiter); } stream.Close(); stream.Dispose(); return(table); }
public static DataTable Parse(TextReader stream, bool headers) { var stringResourceImporter = new StringResourceImporter(); var table = stringResourceImporter.BuildEmptyStringResourceDataTable(); CsvStream csv = new CsvStream(stream); string[] row = csv.GetNextRow(); if (row == null) { return(null); } if (headers) { foreach (string header in row) { if (header != null && header.Length > 0 && !table.Columns.Contains(header)) { table.Columns.Add(header, typeof(string)); } else { table.Columns.Add(GetNextColumnHeader(table), typeof(string)); } } row = csv.GetNextRow(); } while (row != null) { while (row.Length > table.Columns.Count) { table.Columns.Add(GetNextColumnHeader(table), typeof(string)); } table.Rows.Add(row); row = csv.GetNextRow(); } return(table); }
public static DataTable Parse(TextReader stream, bool headers) { var table = new DataTable(); var csv = new CsvStream(stream); var row = csv.GetNextRow(); if (row == null) { return(null); } if (headers) { foreach (var header in row) { if (!string.IsNullOrEmpty(header) && !table.Columns.Contains(header)) { table.Columns.Add(header, typeof(string)); } else { table.Columns.Add(GetNextColumnHeader(table), typeof(string)); } } row = csv.GetNextRow(); } while (row != null) { while (row.Count > table.Columns.Count) { table.Columns.Add(GetNextColumnHeader(table), typeof(string)); } table.Rows.Add(row); row = csv.GetNextRow(); } return(table); }
public static DataTable Parse(TextReader stream, bool headers) { DataTable table = new DataTable(); CsvStream stream2 = new CsvStream(stream); string[] nextRow = stream2.GetNextRow(); if (nextRow == null) { return(null); } if (headers) { foreach (string str in nextRow) { if (!string.IsNullOrEmpty(str) && !table.Columns.Contains(str)) { table.Columns.Add(str, typeof(string)); } else { table.Columns.Add(GetNextColumnHeader(table), typeof(string)); } } nextRow = stream2.GetNextRow(); } while (nextRow != null) { while (nextRow.Length > table.Columns.Count) { table.Columns.Add(GetNextColumnHeader(table), typeof(string)); } table.Rows.Add(nextRow); nextRow = stream2.GetNextRow(); } return(table); }
public static Hashtable StringSplitCsv( [DekiScriptParam("comma separated values")] string text ) { ArrayList rows = new ArrayList(); int columncount = 0; CsvStream csv = new CsvStream(new StringReader(text)); string[] row = null; do { row = csv.GetNextRow(); if (row != null) { rows.Add(new ArrayList(row)); columncount = Math.Max(columncount, row.Length); } } while(row != null); // ensure that each row has columncount values for (int i = 0; i < rows.Count; ++i) { ArrayList r = (ArrayList)rows[i]; while (r.Count < columncount) { r.Add(string.Empty); } } // set values in result object Hashtable result = new Hashtable(StringComparer.OrdinalIgnoreCase); result.Add("rowcount", rows.Count); result.Add("columncount", columncount); result.Add("values", rows); return(result); }
public static DataTable Parse(TextReader stream, CsvHeadersAction Headers, char delimiter) { DataTable table = new DataTable(); CsvStream csv = new CsvStream(stream); string[] row = csv.GetNextRow(delimiter); if (row == null) return null; if (Headers == CsvHeadersAction.SkipHeaderLine) { row = csv.GetNextRow(delimiter); } if (Headers == CsvHeadersAction.UseAsColumnNames) { //foreach (string header in row) for (int i = 0;i<row.Length;i++) { if (row[i] != null && row[i].Length > 0 && !table.Columns.Contains(row[i])) table.Columns.Add(row[i], typeof(string)); else table.Columns.Add(GetNextColumnHeader(table), typeof(string)); } row = csv.GetNextRow(delimiter); } while (row != null) { while (row.Length > table.Columns.Count) table.Columns.Add(GetNextColumnHeader(table), typeof(string)); table.Rows.Add(row); row = csv.GetNextRow(delimiter); } stream.Close(); stream.Dispose(); return table; }
public static Hashtable StringSplitCsv( [DekiScriptParam("comma separated values")] string text ) { ArrayList rows = new ArrayList(); int columncount = 0; CsvStream csv = new CsvStream(new StringReader(text)); string[] row = null; do { row = csv.GetNextRow(); if(row != null) { rows.Add(new ArrayList(row)); columncount = Math.Max(columncount, row.Length); } } while(row != null); // ensure that each row has columncount values for(int i = 0; i < rows.Count; ++i) { ArrayList r = (ArrayList)rows[i]; while(r.Count < columncount) { r.Add(string.Empty); } } // set values in result object Hashtable result = new Hashtable(StringComparer.OrdinalIgnoreCase); result.Add("rowcount", rows.Count); result.Add("columncount", columncount); result.Add("values", rows); return result; }
public static DataTable Parse(Stream strm, bool headers, int RowsToParse, int HeaderLineNum) { int aHeaderLineNum = HeaderLineNum; DataTable table = new DataTable(); TextReader stream = new StreamReader(strm); // Get Delimiter row String hdr = stream.ReadLine(); // Skip lines before header while (aHeaderLineNum > 1) { hdr = stream.ReadLine(); aHeaderLineNum--; } List <int> lst = new List <int>(); Delimiter = ','; int commapos = hdr.IndexOf(','); if (commapos != -1) { lst.Add(commapos); } int semicolonpos = hdr.IndexOf(';'); if (semicolonpos != -1) { lst.Add(semicolonpos); } int fencepos = hdr.IndexOf('|'); if (fencepos != -1) { lst.Add(fencepos); } int tabpos = hdr.IndexOf('\t'); if (tabpos != -1) { lst.Add(tabpos); } // First found delimiter will be CSV delimiter if (lst.Count > 0) { Delimiter = hdr[lst.Min()]; } //stream.Close(); strm.Seek(0, SeekOrigin.Begin); stream = new StreamReader(strm); CsvStream csv = new CsvStream(stream, Delimiter); string[] row = csv.GetNextRow(); // Skip lines before header aHeaderLineNum = HeaderLineNum; while (aHeaderLineNum > 1) { row = csv.GetNextRow(); aHeaderLineNum--; } if (row == null) { return(null); } if (headers) { foreach (string header in row) { if (header != null && header.Length > 0 && !table.Columns.Contains(header)) { table.Columns.Add(header.Trim(), typeof(string)); } else { table.Columns.Add(GetNextColumnHeader(table), typeof(string)); } } row = csv.GetNextRow(); } int counter = RowsToParse; while (row != null) { while (row.Length > table.Columns.Count) { table.Columns.Add(GetNextColumnHeader(table), typeof(string)); } table.Rows.Add(row); row = csv.GetNextRow(); if (RowsToParse > 0) { counter--; if (counter == 0) { break; } } } stream.Close(); return(table); }