将SQL结果集转换为CSV文件

时间:2015-05-05 09:41:36

标签: c# sql excel entity-framework csv

我在 C#工作,需要使用 Entity Framework 6 。我有一个调用存储过程的服务(使用Dbcontext)并将结果放在 IList 中。然后我有一个使用此服务的控制器。现在我最初将结果与 Epplus 结合使用,将其保存为Excel / Xlsl文件 - 这完全符合预期。

但是现在,我需要将其另存为CSV文件。我找到了几个链接,例如thisthis将Excel转换为CSV (但我现在可以跳过此步骤,因为我可以转换结果集为CSV,不需要excel文件),我也发现了这个link

据我所知,使用 stringbuilder 将数据集/结果集导出/转换为 CSV 相当容易。但是,我想知道,鉴于我有 Epplus 并且能够保存为Excel- 是不是更清洁的方式?或者最好是获取数据,使用stringbuilder以逗号分隔值并将其用于CSV?

我之前已经发布了相似的主题(like this one) - 但我觉得我的问题对于新帖子来说足够独特。

1 个答案:

答案 0 :(得分:-1)

使用EPPlus并不是一种更简洁的方法。您只需要更多代码即可完成相同的结果。创建CSV文件只不过是在其中编写带逗号的文本文件。那么为什么不这样做呢?

StringBuilder sb = new StringBuilder();
foreach (DataRow dr in yourDataSet) 
{
  List<string> fields = new List<string>();
  foreach (object field in dr.ItemArray) 
  {
     fields.Add(field);
  }
  sb.Append(String.Join(",", fields) + Environment.NewLine);
}

//and save.. sb.ToString() as a .csv file