Linqpad, как вы используете Util.WriteCSV для записи данных в Excel, используя бета-версию LinqPad

Это был мой первый смертельный удар по нему

Util.WriteCsv<DataTable>(myDataTable, filePath);

Исключение, которое я получаю, это «System.Data.DataTable» для «System.Collections.Generic.IEnumerable»


person BraveNewMath    schedule 15.03.2013    source источник


Ответы (1)


Оказывается, последняя бета-версия linqpad (v4.44.9) поддерживает таблицы данных в

Util.WriteCSV 

см. http://www.linqpad.net/beta.aspx.

Тем временем, если вам нужно сгенерировать CSV-файл для таблицы данных в более старых версиях, вы можете следовать приведенным ниже инструкциям:

В итоге я написал специальную процедуру для этого, так как кажется, что бета-версия (4.44.06) ожидает IEnumerable, и даже после того, как я поместил .AsIEnumerable() в myDataTable, это не выходило правильно:

public static void ExportToCSV(DataTable table, string filePath)
{
  var sb = new StringBuilder();
  foreach (DataColumn column in table.Columns)
  {
    sb.Append(column.ColumnName + ",");
  }

  sb.Append(Environment.NewLine);

  foreach (DataRow row in table.Rows)
  {
    for (int i = 0; i < table.Columns.Count; i++)
    {
      sb.Append(row[i].ToString().Replace(",", string.Empty) + ",");
    }
    sb.Append(Environment.NewLine);
  }

 System.IO.File.WriteAllText(filePath, sb.ToString() );
 string.Format("wrote output to {0}", filePath).Dump();

}
person BraveNewMath    schedule 16.03.2013