public static string ProcessCSVFile(string csvFileData, bool isFirstRowHeader, IDictionary <string, string> metaData) { string jsonString = "["; var dataTable = CSVReader.ReadCSVData(csvFileData, isFirstRowHeader); bool isFirstLine = true; string metaDataString = CreateMetaDataString(metaData); foreach (DataRow row in dataTable.Rows) { int i = 0; if (isFirstLine == true) { jsonString = jsonString + "{"; isFirstLine = false; } else { jsonString = jsonString + ",{"; } bool isFirstValueLine = true; foreach (DataColumn column in dataTable.Columns) { if (isFirstRowHeader == true) { string rowValue = row[column.ColumnName].ToString(); bool checkNumberBoolDate = CheckNumberBoolDateTime(rowValue); if (checkNumberBoolDate) { if (isFirstValueLine == true) { jsonString = jsonString + "\"TriggerTimeStamp\":\"" + DateTime.Now.ToString() + "\","; jsonString = jsonString + metaDataString + ","; jsonString = jsonString + "\"" + column.ColumnName + "\":" + "\"" + rowValue.Trim() + "\""; isFirstValueLine = false; } else { jsonString = jsonString + ",\"" + column.ColumnName + "\":" + "\"" + rowValue.Trim() + "\""; isFirstValueLine = false; } } else { if (isFirstValueLine == true) { jsonString = jsonString + "\"TriggerTimeStamp\":\"" + DateTime.Now.ToString() + "\","; jsonString = jsonString + metaDataString + ","; jsonString = jsonString + "\"" + column.ColumnName + "\":" + "\"" + rowValue.Trim() + "\""; isFirstValueLine = false; } else { jsonString = jsonString + ",\"" + column.ColumnName + "\":" + "\"" + rowValue.Trim() + "\""; isFirstValueLine = false; } } } else { string rowValue = row[i].ToString(); bool checkNumberBoolDate = CheckNumberBoolDateTime(rowValue.Trim()); if (checkNumberBoolDate) { if (isFirstValueLine == true) { jsonString = jsonString + "\"TriggerTimeStamp\":\"" + DateTime.Now.ToString() + "\","; jsonString = jsonString + metaDataString + ","; jsonString = jsonString + "\"" + "key" + i + "\":" + rowValue.Trim(); isFirstValueLine = false; } else { jsonString = jsonString + ",\"" + "key" + i + "\":" + rowValue.Trim(); isFirstValueLine = false; } } else { if (isFirstValueLine == true) { jsonString = jsonString + "\"TriggerTimeStamp\":\"" + DateTime.Now.ToString() + "\","; jsonString = jsonString + metaDataString + ","; jsonString = jsonString + "\"" + "key" + i + "\":" + "\"" + rowValue.Trim() + "\""; isFirstValueLine = false; } else { jsonString = jsonString + ",\"" + "key" + i + "\":" + "\"" + rowValue.Trim() + "\""; isFirstValueLine = false; } } } i++; } jsonString = jsonString + "}"; } //var reader = new StreamReader(File.OpenRead(@"C:\Users\shg\PCBackup_29thAugust2014\Work\Beckman\SampleDocuments\AU680_Sample CSV files\PLCode.csv")); jsonString = jsonString + "]"; Newtonsoft.Json.JsonSerializerSettings settings = new Newtonsoft.Json.JsonSerializerSettings(); settings.StringEscapeHandling = Newtonsoft.Json.StringEscapeHandling.EscapeHtml; var jsonObj = Newtonsoft.Json.JsonConvert.SerializeObject(jsonString); string JsonFormattedString = Newtonsoft.Json.JsonConvert.DeserializeObject <string>(jsonObj, settings); return(JsonFormattedString); }
/// <summary> /// Convert a CSV-formatted string into a DataTable /// </summary> /// <param name="headerRow">True if the first row contains headers</param> /// <returns>System.Data.DataTable that contains the CSV data</returns> public static DataTable ReadCSVTable(this string input, bool headerRow) { using (CSVReader reader = new CSVReader(input)) return(reader.CreateDataTable(headerRow)); }
public static DataTable ReadCSVData(string csvData, bool headerRow) { using (CSVReader reader = new CSVReader(csvData: csvData)) return(reader.CreateDataTable(headerRow)); }
/// <summary> /// Convert a CSV-formatted string into a list of objects /// </summary> /// <returns>List of objects that contains the CSV data</returns> public static List <object> ReadCSVLine(this string input) { using (CSVReader reader = new CSVReader(input)) return(reader.ReadRow()); }
/// <summary> /// Read a CSV file into a table /// </summary> /// <param name="filename">Filename of CSV file</param> /// <param name="headerRow">True if the first row contains column names</param> /// <returns>System.Data.DataTable object that contains the CSV data</returns> public static DataTable ReadCSVFile(string filename, bool headerRow) { using (CSVReader reader = new CSVReader(new FileInfo(filename))) return(reader.CreateDataTable(headerRow)); }