65.9K
CodeProject 正在变化。 阅读更多。
Home

C# CSV 读取器和写入器

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.86/5 (14投票s)

2010年6月22日

MIT

1分钟阅读

viewsIcon

228929

downloadIcon

14430

提供读取和写入 CSV 文件能力的类库

引言

我已经记不清我参与过多少项目需要我以CSV格式写入数据,并将其提供给用户下载了。在一个最近的项目中,我决定实现一些类,以简化从CSV文件读取和写入的过程。

我在网上搜索了一下,寻找一个简单的解决方案。已经有很多类可以做到这一点,但我发现它们过于复杂。

所以我决定自己构建一个!

Using the Code

以下是一些关于如何使用这些类的示例。这些类有很多构造函数和方法重载,允许从/向文件、字符串和流进行读取/写入。

使用 CsvReader 类

List<List<string>> records = new List<List<string>>();

using (CsvReader reader = new CsvReader(FilePath, Encoding.Default))
{
    while (reader.ReadNextRecord())
        records.Add(reader.Fields);
} 

CsvReader 类具有以下属性

  • TrimColumns - 获取或设置是否应修剪列和标题值
  • HasHeaderRow - 获取或设置CSV内容是否具有标题行
  • Fields - 获取当前记录中的字段
  • FieldCount - 获取当前记录中的字段数

使用 CsvFile 类

  CsvFile file = new CsvFile();
  file.Populate(FilePath, true);  

CsvFile 类具有以下属性

  • Headers - 获取列标题
  • Records - 获取CSV文件中的记录
  • HeaderCount - 获取标题列的数量
  • RecordsCount - 获取CSV文件中的记录数

使用 CsvWriter 类

  CsvFile csvFile = new CsvFile();
  csvFile.Populate(FilePath, true);

  using (CsvWriter writer = new CsvWriter())
  {
     writer.WriteCsv(csvFile, FilePath);
  }

CsvWriter 类具有以下属性

  • ReplaceCarriageReturnsAndLineFeedsFromFieldValues - 获取或设置是否应替换字段值中的回车符和换行符。
  • CarriageReturnAndLineFeedReplacement - 获取或设置回车符和换行符的字符替换。

历史

版本 1.0 (2010-06-22)

  • 1.0:首次发布
© . All rights reserved.