Nayana Priyankara
Nayana Priyankara

Reputation: 1422

Write to a File using CsvHelper in C#

I tried to write to CSV file using CsvHelper in C#.
This is the link to the library http://joshclose.github.io/CsvHelper/

I used the code in web site.

Here is my code:

var csv = new CsvWriter(writer);
csv.Configuration.Encoding = Encoding.UTF8;
foreach (var value in valuess)
{
    csv.WriteRecord(value);
}

It writes only a part of data to csv file.
Last rows were missing.
Could you please help with this.

Upvotes: 28

Views: 90518

Answers (5)

Redhwan Ghailan
Redhwan Ghailan

Reputation: 19

var configuration = new CsvConfiguration(CultureInfo.InvariantCulture)
          {
              Delimiter = Delimiter
          };
using (var csvWriter = new CsvWriter(writer, configuration))
{
    csvWriter.WriteRecords(itemsData);
    csvWriter.Flush();
}

//This is an example that might help you 

Upvotes: 0

sobelito
sobelito

Reputation: 1625

Adding to @greg's answer:

using (var sr = new StreamWriter(@"C:\out.csv", false, Encoding.UTF8)) {
  using (var csv = new CsvWriter(sr)) {
    csv.WriteRecords(values);
  }
}

Upvotes: 2

Greg R Taylor
Greg R Taylor

Reputation: 3676

You need to flush the stream. The Using statement will flush when out of scope.

using (TextWriter writer = new StreamWriter(@"C:\test.csv", false, System.Text.Encoding.UTF8))
{
    var csv = new CsvWriter(writer);
    csv.WriteRecords(values); // where values implements IEnumerable
}

Upvotes: 44

Nayana Priyankara
Nayana Priyankara

Reputation: 1422

when, I added this code after the loop code is working well

var csv = new CsvWriter(writer);
csv.Configuration.Encoding = Encoding.UTF8;
foreach (var value in valuess)
{
     csv.WriteRecord(value);
}
writer.Close();

The problem occurred because I did not close the Connection

Upvotes: 10

Markus
Markus

Reputation: 22501

Assuming that writer is some kind of TextWriter, you should add a call to flush the contents before closing the writer:

writer.Flush()

If the last lines are missing, this is the most likely reason.

Upvotes: 8

Related Questions