c# - 将 SQL 结果集转换为 CSV 文件

标签 c# sql excel entity-framework csv

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

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

据我所知,使用 stringbuilder 将数据集/结果集导出/转换为 CSV 相当容易。但是,我想知道,考虑到我有 Epplus 并且能够保存为 Excel - 是否没有更简洁的方法?或者最好是获取数据,使用 stringbuilder 来分隔值并将其用于 CSV?

我知道类似的主题 ( like this one ) 之前已经发布过 - 但我觉得我的问题足够独特,可以发布新帖子。

最佳答案

使用 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

关于c# - 将 SQL 结果集转换为 CSV 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30049405/

相关文章:

java - Apache POI 单元值未出现

vba - 将文件夹中的不同工作簿复制到一个工作簿中的不同工作表中

c# - 父类和子类中的方法名称相同?

c# - 从 PropertyInfo[] 中删除属性

c# - 如何在 WPF 中将枚举转换为本地化枚举结构

C# Outlook - 调用被被叫方拒绝

MYSQL要比较两个表并选择数据

sql - PostgreSQL age() 函数 : different/unexpected results when landing in dfferent month

mysql - MySql 中的查询时间是线性的吗?

excel - SSRS报告导出到Excel : need a column in "Number" format