/// <summary> /// Writes a single row to a CSV file. /// </summary> /// <param name="row">The row to be written</param> public void WriteRow(CsvRowModel row) { var builder = new StringBuilder(); bool firstColumn = true; foreach (string value in row) { // Add separator if this isn't the first value if (!firstColumn) { builder.Append(','); } // Implement special handling for values that contain comma or quote // Enclose in quotes and double up any double quotes if (value.IndexOfAny(new char[] { '"', ',' }) != -1) { builder.AppendFormat("\"{0}\"", value.Replace("\"", "\"\"")); } else { builder.Append(value); } firstColumn = false; } row.LineText = builder.ToString(); WriteLine(row.LineText); }
/// <summary> /// This method will help to create the Csv file /// </summary> /// <param name="fileParameter"></param> /// <returns></returns> public async Task <bool> CreateCsvFile(FileParameterModel fileParameter) { //Check and create Directory If It Not Exist var filePath = await Task.Run(() => $"{FileHelper.CreateDirectory(fileParameter.FolderUrl)}//{fileParameter.FileName}"); using (var writer = new CsvFileWriter(filePath)) { //Config to get 100000 from App Setting for (int i = 0; i < fileParameter.TotalRows; i++) { var row = new CsvRowModel { $"{ Guid.NewGuid()}{fileParameter.Delimiter}{RandomString(fileParameter.MinContentLength , fileParameter.MaxContentLength, fileParameter.Pattern)}" }; await Task.Run(() => writer.WriteRow(row)); } } return(await Task.FromResult(true)); }