CsvHelper завернуть все Valus с кавычками - PullRequest
0 голосов
/ 01 января 2019

Я использую CsvHelper. Мне нужно заключить все значения в кавычки.Это возможно?

Данные = это список

 using (StreamWriter textWriter = new StreamWriter(path))
            {
                textWriter.BaseStream.Write(p, 0, p.Length);
                // var dt = new DataTable();
                var csv = new CsvWriter(textWriter);
                csv.WriteRecords(Data);
                textWriter.Flush();
                textWriter.Close();
            }

Спасибо

Ответы [ 2 ]

0 голосов
/ 03 января 2019

Существует значение конфигурации, называемое ShouldQuote, где на уровне поля можно определить, следует ли его заключать в кавычки.

void Main()
{
    var records = new List<Foo>
    {
        new Foo { Id = 1, Name = "one" },
        new Foo { Id = 2, Name = "two" },
    };

    using (var writer = new StringWriter())
    using (var csv = new CsvWriter(writer))
    {
        csv.Configuration.ShouldQuote = (field, context) => true;
        csv.WriteRecords(records);

        writer.ToString().Dump();
    }
}

public class Foo
{
    public int Id { get; set; }
    public string Name { get; set; }
}

Вывод:

"Id","Name"
"1","one"
"2","two"
0 голосов
/ 02 января 2019

Просто нужно добавить объект конфигурации.как это

CsvHelper.Configuration.CsvConfiguration config = new CsvHelper.Configuration.CsvConfiguration();
               config.QuoteAllFields = true;
                var csv = new CsvWriter(textWriter, config);
...