public void TestWrite() { string expectedResult = @"""1"",""2"",""3"",NULL ""a1"",""b1"",""NULL"",""c1"" """","""","""","""" ""x1"",NULL,""y1"",""z1"" """","""","""","""" ""fghi"",""jklm"",""nopq"",""rstu"" """","""","""","""""; var csv = new List <string[]>() { new string[] { "1", "2", "3", null }, new string[] { "a1", "b1", "NULL", "c1" }, new string[] { "", "", "", "" }, new string[] { "x1", null, "y1", "z1" }, new string[] { "", "", "", "" }, new string[] { "fghi", "jklm", "nopq", "rstu" }, new string[] { "", "", "", "" } }; var settings = new CsvWriterSettings() { ColumnSeparator = ',', Encoding = new UTF8Encoding(false), NullValue = "NULL", TextQualification = CsvTextQualification.Always, TextQualifier = '"' }; var stream = new MemoryStream(); using (var writer = new CsvWriter(stream, settings)) { foreach (var line in csv) { writer.WriteRow(line); } } string result = settings.Encoding.GetString(stream.ToArray()); Console.WriteLine("Expects:"); Console.WriteLine(expectedResult); Console.WriteLine(); Console.WriteLine("Result:"); Console.WriteLine(result); Assert.AreEqual(result.Trim(), expectedResult); }
private CsvWriter(TextWriter writer, CsvWriterSettings settings, bool disposed) { if (writer == null) { throw new ArgumentNullException("writer"); } this.writer = writer; settings = settings ?? new CsvWriterSettings(); this.delimiter = settings.RecordDelimiter.AsNewline(); this.separator = settings.FieldDelimiter; this.quotation = settings.QuotationCharacter; this.quotationString = settings.QuotationCharacter.ToString(); this.quoteField = settings.QuoteField; this.escapedQuotation = this.quotationString + this.quotationString; this.disposed = disposed; }
public void TestWrite() { var expectedResult = new StreamReader( Assembly.GetExecutingAssembly().GetManifestResourceStream("Uncomplicated.Csv.UnitTest.test-write-with-qualifiers.csv") , true).ReadToEnd(); var src = new StreamReader( Assembly.GetExecutingAssembly().GetManifestResourceStream("Uncomplicated.Csv.UnitTest.test-write-with-qualifiers.json") , true).ReadToEnd(); var jsonSrc = JToken.Parse(src); var settings = new CsvWriterSettings() { ColumnSeparator = ',', Encoding = new UTF8Encoding(false), NullValue = "NULL", NewLineMode = CsvNewLineMode.Windows, TextQualification = CsvTextQualification.AsNeeded, TextQualifier = '"', ShouldUseTextQualifiers = (defaultAction, cell) => defaultAction || cell.Contains("a") }; var stream = new MemoryStream(); using (var writer = new CsvWriter(stream, settings)) { foreach (var line in jsonSrc) { var arr = line.Select(s => s.Type == JTokenType.Null ? null : s.ToString()).ToList(); writer.WriteRow(arr); } } string result = settings.Encoding.GetString(stream.ToArray()); Console.WriteLine("Expects:"); Console.WriteLine(expectedResult); Console.WriteLine(); Console.WriteLine("Result:"); Console.WriteLine(result); Assert.AreEqual(result, expectedResult); }
static void Write(string path) { CsvWriterSettings settings = new CsvWriterSettings(); settings.ColumnSeparator = ';'; settings.Encoding = Encoding.UTF8; settings.NewLineMode = CsvNewLineMode.Windows; settings.TextQualification = CsvTextQualification.AsNeeded; settings.TextQualifier = '"'; using (Stream stream = File.Create(path)) using (CsvWriter writer = new CsvWriter(stream, settings)) { writer.WriteRow("header1", "header2", "header3"); writer.WriteRow("row1column1", "row1column2", "row1column3"); writer.WriteRow("row2column1", "row2column2", "row2column3"); } }
/// <summary> /// Initializes a new <see cref="CsvWriter"/> with the specified path to output. /// </summary> /// <param name="writer">The writer.</param> /// <param name="settings">The settings.</param> public CsvWriter(TextWriter writer, CsvWriterSettings settings = null) : this(writer, settings, true) { }
/// <summary> /// Initializes a new <see cref="CsvWriter"/> with the specified file stream. /// </summary> /// <param name="stream">The file stream.</param> /// <param name="encoding">The encoding.</param> /// <param name="settings">The settings.</param> public CsvWriter(Stream stream, Encoding encoding, CsvWriterSettings settings = null) : this(new StreamWriter(stream, encoding), settings, false) { }
/// <summary> /// Initializes a new <see cref="CsvWriter"/> with the specified file stream. /// </summary> /// <param name="stream">The file stream.</param> /// <param name="settings">The settings.</param> public CsvWriter(Stream stream, CsvWriterSettings settings = null) : this(new StreamWriter(stream), settings, false) { }
/// <summary> /// Initializes a new <see cref="CsvWriter"/> with the specified path to output. /// </summary> /// <param name="path">The path to file to write in.</param> /// <param name="encoding">The encoding.</param> /// <param name="settings">The settings.</param> public CsvWriter(string path, Encoding encoding, CsvWriterSettings settings = null) : this(new StreamWriter(path, false, encoding, 0x400), settings, false) { }
/// <summary> /// Initializes a new <see cref="CsvWriter"/> with the specified path to output. /// </summary> /// <param name="path">The path to file to write in.</param> /// <param name="settings">The settings.</param> public CsvWriter(string path, CsvWriterSettings settings = null) : this(new StreamWriter(path), settings, false) { }