我需要将数据集导出为CSV文件.
我花了一段时间搜索一组规则,并意识到编写CSV文件时有很多规则和例外.
http://knab.ws/blog/index.php?/archives/3-CSV-file-parser-and-writer-in-C-Part-1.html http://bytes.com/topic/c- sharp/answers/236875-problems-streamwriter-output-csv http://social.msdn.microsoft.com/forums/en-US/csharpgeneral/thread/0073fcbb-adab-40f0-b768-4bba803d3ccd
所以现在不是用逗号分隔字符串的简单过程,我已经搜索了现有的CSV编写器,无论是第三方还是(希望!)都包含在.net框架中.
编辑:新链接:http: //www.thinqlinq.com/Post.aspx/Title/LINQ-to-CSV-using-DynamicObject-and-TextFieldParser
TextFieldParser是一个VB对象(可以从C#引用),它将自动解析CSV文件.:)
我想知道是否有人知道任何方便的.Net(2.0 - > 3.5和4.0)库可用于生成格式正确的CSV文件.
此外,如果有任何规则集用于生成CSV文件.
有很多关于CSV阅读器和解析CSV文件的细节,但是没有多少关于写作(好吧,我知道它正好相反:P).
http://www.codeproject.com/KB/database/CsvReader.aspx
任何帮助将非常感激 :)
我发现了另一篇文章,其中包含一些更详细的CSV规则:http: //www.creativyst.com/Doc/Articles/CSV/CSV01.htm
一个简洁的第三方库是Linq-to-CSV(非框架库):http: //www.codeproject.com/KB/linq/LINQtoCSV.aspx
谢谢大家的帮助.我已经决定最好的解决方案是创建一个简单的静态类,它将进行特殊的字符替换(Chris提到).
如果我需要Linq查询我的CSV文件,我会查看Linq-to-CSV的CodeProjects实现.
再次感谢 :)
Jos*_*ose 48
CsvHelper(我维护的库)也可以通过NuGet获得.
CsvHelper可以自动将您的类对象写入文件.
var myObj = new MyCustomClass
{
Prop1 = "one",
Prop2 = 2
};
var streamWriter = // Create a writer to somewhere...
var csvWriter = new CsvWriter( streamWriter );
// You can write a single record.
csvWriter.WriteRecord( myObj );
// You can also write a collection of records.
var myRecords = new List<MyCustomClass>{ myObj };
csvWriter.WriteRecords( myRecords );
Run Code Online (Sandbox Code Playgroud)
Chr*_*ris 21
如果您的单元格中有逗号,请用双引号括住整个单元格,例如:
cell 1,cell 2,"This is one cell, even with a comma",cell4,etc
Run Code Online (Sandbox Code Playgroud)
如果你想要一个双字引号,可以做两个,例如:
cell 1,cell 2,"This is my cell and it has ""quotes"" in it",cell 4,etc
Run Code Online (Sandbox Code Playgroud)
至于日期,坚持ISO格式,你应该没事(例如yyyy-mm-dd hh:mm:ss)