我需要将数据集导出为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
所以现在这不是一个用逗号分隔字符串的简单过程,我已经搜索了第3方或.net框架中包含的现有CSV编写器(希望如此!)。
编辑:新链接: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
谢谢大家的帮助。我决定最好的解决方案是创建一个简单的静态类,该类将进行特殊字符替换(克里斯提到)。
如果需要Linq查询我的CSV文件,请查看Linq-to-CSV的CodeProjects实现。
再次感谢 :)
如果您的单元格中有逗号,请用双引号将整个单元格括起来,例如:
cell 1,cell 2,"This is one cell, even with a comma",cell4,etc
并且,如果您想要字面双引号,请执行其中两个,例如:
cell 1,cell 2,"This is my cell and it has ""quotes"" in it",cell 4,etc
至于日期,请坚持使用ISO格式,并且应该没问题(例如yyyy-mm-dd hh:mm:ss)