【发布时间】:2012-07-08 12:43:08
【问题描述】:
我正在尝试将表格转换为逗号分隔的 CSV 文件。我目前是这样实现的:
var csv = new StringBuilder("id,Name,Address,City,State\n");
var delimiter = ",";
var newline = "\n";
using (var db = MyDatabase())
{
var query = from c in db.Customers select c;
foreach(var q in query)
csv.Append(q.id).Append(delimiter)
.Append(q.name).Append(delimiter)
.Append(q.address).Append(delimiter)
.Append(q.city).Append(delimiter)
.Append(q.state).Append(newline);
}
这会创建一个 csv 罚款。但我的问题是,有没有一种更简化的方法可以实现这一点而不单独指定每一列?在某些情况下,我想做一个全选,但是表格有很多列,这似乎有点笨拙。
【问题讨论】:
-
当您的 CSV 文件到达 123 Main St., Suite 200 这样的地址时会发生什么情况?制作 CSV 文件比附加一些原始数据和逗号更重要。不要重新发明轮子。 .Net 有许多 CSV 类。
-
例如,CsvHelper 和 FileHelpers。见stackoverflow.com/questions/1941392/…
-
好点,但在这种情况下,我所做的只是将使用 sql 脚本完成的旧手动方式自动化,因此字段中没有逗号。这些“众多” csv 类的任何示例?谢谢。
-
这是我写的一个辅助类。它可能对您的任务有所帮助。 Reading and Writing CSV Files in C#.
标签: c# linq-to-sql csv