版本需要在16.0下面。 不然配置的方式变了。
分隔符
csv.Configuration.Delimiter = ",";
此配置前文已经提到过,是否将第一行作为标题
csv.Configuration.HasHeaderRecord = false;
是否忽略空行,默认 true
csv.Configuration.IgnoreBlankLines = false;
无法忽略一个仅包含空格或 , 的行。
是否允许注释,注释以 # 开头。
csv.Configuration.AllowComments = true;
获取或设置用于表示注释掉的行的字符。默认是 #。
csv.Configuration.Comment = '/';
设置一个函数,该函数会在数据不正确时触发,可用于记录日志。
获取或设置一个值,该值指示在解析时是否应忽略引号并将其与其他任何字符一样对待。
默认是 false,如果字符串中有引号,必须是 3 个 " 连在一起,读取到的字符串中才会有一个 ",如果是 1 个则忽略,2 个则报错。
如果为 true,则会将 " 当做字符串原样返回。
csv.Configuration.IgnoreQuotes = true;
CsvWriter 中是没有这个属性的,一旦字符串中包含 ",写出来就是 3 个 " 连在一起。
去除字段首尾空格
csv.Configuration.TrimOptions = TrimOptions.Trim;
PrepareHeaderForMatch 定义了属性名称与标题进行匹配的函数。标题和属性名称均通过该函数运行。此功能可用于删除标题中的空格,或者当标题和属性名称大小写不一致时统一大小写后比较。
csv.Configuration.PrepareHeaderForMatch = (string header, int index) => header.ToLower();
较新的版本 如 30.0.1 不允许 按上面的方式来配置。
var writer = new StreamWriter("d://malema.csv");
var configuration = new CsvHelper.Configuration.CsvConfiguration(CultureInfo.InvariantCulture) {Delimiter=";"};
var csv = new CsvWriter(writer, configuration);