Rakhi S Ответов: 1

Квалификатор текста в CSV с#


public static string ExportToCSV(DataTable dt, string path, string Filename)
       {


           try
           {
               string OutputMsg = "";
               if (string.IsNullOrEmpty(path))
               {
                   OutputMsg = "Path not defined";
                   return OutputMsg;
               }
               else
               {
                   //check the existence of path, if do not exist then create it
                   if (!Directory.Exists(path))
                   {
                       Directory.CreateDirectory(path);
                   }
              }

               if (string.IsNullOrEmpty(Filename))
               {
                   OutputMsg = "Filename is Mandatory";
                   return OutputMsg;
               }
               else
               {
                  using (var CTextWriter = new StreamWriter(path + "/" + Filename))
                   using (var csv = new CsvWriter(CTextWriter))
                   {
                       //seperater
                       csv.Configuration.Delimiter = "^";
                       csv.Configuration.QuoteAllFields = true;
                       if (dt != null)
                       {

                           foreach (DataColumn column in dt.Columns)
                           {
                               csv.WriteField(column.ColumnName, false);


                           }
                           csv.NextRecord();



In this way I am exporting my file to CSV. After generation my result looks like following:

877^False^CS-3a^^^55692^LProducts^PS3N7g1


But now if there will be \n charater in my last column value (PS\n 3N7\n g1)
тогда это рассматривается как другая запись. это моя проблема, я хочу использовать для этого "текстовый квалификатор", который соберет все значения в инвертированные запятые и сделает их единой записью.

Что я уже пробовал:

Я много искал, но не смог найти никакого результата для этого.

1 Ответов

Рейтинг:
0

OriginalGriff

Мы не знаем, что вы используете для генерации ваших CSV-данных, но если вы используете '^' в качестве разделителя столбцов, то ваши данные должны выглядеть следующим образом:

1001^"A text string"^"666"^"After a number as a string"^^"After a blank column
1002^"Another text string"^"777"^"After a number as a string"^^"After a blank column
1003^"A double quote "" in a string"^"888"^"After a number as a string"^^"After a blank column
Где квалификатор текста -'"'
Поэтому проверьте свои данные и посмотрите, как именно они выглядят.


Rakhi S

Спасибо за ваш ответ, но перевернутые запятые, которые у вас есть в каждом столбце значения, мне это нужно. На этот раз никаких перевернутых запятых не будет.

OriginalGriff

"Перевернутые запятые"? О чем ты говоришь?
И поскольку мы понятия не имеем (как я уже говорил ранее), как выглядит код, который вы используете для генерации CSV-данных, мы ничего не можем сделать, чтобы помочь вам на этом этапе.